シングルサインオンとは、エンドユーザーが認証 (つまりユーザー ID とパスワードによるログイン) を一度行うと複数のアプリケーションにアクセスできるようになることです。Sun JavaTM System Access Manager は、Sun Java System サーバーの SSO 用として使用される、公式のゲートウェイです。つまり、Access Manager にログインしないと、SSO 用に設定されたほかのサーバーにアクセスできません。
たとえば、適切に設定されている場合、Access Manager ログイン画面でサインインすれば、別のウィンドウで Instant Messenger にアクセスする際に再度サインインする必要がなくなります。同様に、Sun Java System Calendar Server が適切に設定されている場合、Access Manager ログイン画面でサインインすれば、別のウィンドウでカレンダにアクセスする際に再度サインインする必要がなくなります。
Messaging Server など、その他の Communications Suite サーバーでは、SSO の配備方法が 2 つ用意されています。1 つ目は Access Manager を使用する方法、2 つ目はトラストサークル技術を使用する方法です。トラストサークルを使用する方法は従来の SSO 実装方法であり、Instant Messaging では使用されません。この方法は Access Manager SSO では利用できない機能をいくつか備えていますが、今後の開発はすべて Access Manager に基づいて行われます。この章では、Access Manager を使って Instant Messaging の SSO を有効にする方法について、次の各節で説明します。
Instant Messenger のセッションが有効なのは、Access Manager のセッションが有効になっている間だけです。ユーザーが Access Manager からログアウトした場合、そのユーザーが新しい要求をサーバーに送信するとすぐに、その Instant Messenger セッションが自動的に閉じられます (シングルサインオフ)。
連携動作する SSO アプリケーションが同じ DNS ドメイン内に存在している必要があります。
SSO アプリケーションが Access Manager の検証 URL (ネームサービス) にアクセスできる必要があります。
ブラウザの Cookie が有効になっている必要があります。
2 つの iim.conf パラメータが Instant Messaging SSO をサポートします。
表 5–1 Instant Messaging シングルサインオンパラメータ
パラメータ |
説明 |
---|---|
iim_server.usesso |
Instant Messaging サーバーが認証時に SSO プロバイダに依存すべきかどうかを決定します。Access Manager Session API を使えば、Instant Messaging サーバーは、クライアントから送信されてきたセッション ID を検証できます。 可能な値は次のとおりです。 0 – SSO プロバイダを使用しません。 1 – SSO プロバイダを使用します。ただし、SSO 検証が失敗した場合には LDAP を使用します。 -1 – SSO プロバイダのみを使用し、SSO 認証が失敗しても LDAP 認証を試みません。 デフォルト: configure ユーティリティーの実行時に SSO 向けに Access Manager を使用することを選択した場合は 1。それ以外の場合のデフォルト値は、0 です。 |
iim_server.ssoprovider |
com.sun.im.provider.SSOProvider インタフェースを実装するクラスを指定します。iim_server.usesso が 0 と等しくなく、かつこのオプションが設定されていない場合、サーバーは、Instant Messaging の内部で定義されたデフォルトの Access Manager ベースの SSO プロバイダを使用します。通常、このパラメータは変更しません。 デフォルト: なし |
Access Manager SDK が Instant Messaging サーバーと同じホスト上にインストールされていることを確認します。
詳細は、『Sun Java Communications Suite 5 インストールガイド』を参照してください。
Instant Messaging サービスが組織に割り当てられていることを、Access Manager コンソール (amconsole) で確認します。
Messaging Server など、その他の Communications Suite サーバー製品を配備内で使用している場合、Access Manager– ベースのサービスを Instant Messaging 用に手動で設定する必要がある可能性があります。
手順については、「シングルサインオンおよびポリシー管理をサポートするための Access Manager のサブ組織への Instant Messaging および Presence サービスの追加」を参照してください。
configure ユーティリティーを実行します。
手順については、「インストール後に Instant Messaging を設定する」を参照してください。
Access Manager を SSO 用に使用するかどうかのプロンプトが表示されたら、「はい」を選択します。
iim.policy.module パラメータを identity に設定します。
Instant Messaging サーバーを再起動します。
imadmin start
SSO に問題がある場合に最初にすべきことは、xmppd.log サーバーログファイルとクライアントログファイルにエラーが含まれていないかチェックすることです。ロギングレベルを上げると作業が容易になる可能性があります。新しいロギングレベルは、サーバーを再起動しないと有効になりません。
Instant Messaging サービスが組織とその親組織に割り当てられていることを、Access Manager コンソール (amconsole) で確認します。詳細は、「シングルサインオンおよびポリシー管理をサポートするための Access Manager のサブ組織への Instant Messaging および Presence サービスの追加」を参照してください。
iim.conf 内で im_server.usesso パラメータが 0 に設定されていないことを確認します。このパラメータについては、表 5–1を参照してください。これが 0 に設定されている場合は、「Instant Messaging の SSO を有効にする」の手順を実行します。
Instant Messaging に直接ログインできない場合、次のいずれかに類似したエラーが xmppd.log 内に含まれていないか確認します。
DEBUG xmppd [com.sun.im.service.util.Worker3] Service \\ URL not found:session.com.iplanet.sso.SSOException: Service URL not found: |
INFO xmppd [com.sun.im.service.util.Worker 3] [Identity] \\ Failed to create SSO token for USERNAME |
INFO xmppd [org.netbeans.lib.collab.util.Worker 1] [LDAP] \\ pops does not have required objectclass for storing to ldap |
これらのエラーのいずれかが存在する場合は、次の手順で問題を解決します。
amconsole
からユーザーを作成し、そのユーザーに認証、設定、Instant Messaging、および Presence サービスを追加します。
作成したユーザーを使ってログインを試みます。
amldapuser のパスワードが amconsole
から正しく設定されていることを確認します。
o=siroe.com などのドメインに認証設定サービスインスタンスが含まれているかどうかをチェックします。
認証設定サービスインスタンスの認証モジュールが LDAP またはメンバーシップに設定されているかどうかをチェックします。その値は REQUIRED/SUFFICIENT の状態を示しているべきです。
Instant Messaging がサポートするログインは、ユーザー名とパスワードによるログインだけです。認証チェーンを使用している場合、それを無効にしないと Instant Messaging を使用できません。
LDAP またはメンバーシップ認証モジュールで、CORE の amldapuser パスワードを入力します。
コア認証モジュール設定の「組織認証設定」ドロップダウンメニューと「管理者認証設定」ドロップダウンメニューの下で、新しく作成された ldapService 認証設定サービスインスタンスを選択します。
再度ログインします。