Sun Java System Messaging Server 6 2004Q2 管理ガイド |
第 6 章
シングルサインオン (SSO) の有効化シングルサインオンとは、エンドユーザーからの 1 回の認証 (つまり、ユーザー ID とパスワードを使用したログイン) に対し、複数のアプリケーションへのアクセス権を付与する機能のことです。Sun Java System Identity Server は、Sun Java System サーバーの SSO に使用される正規のゲートウェイです。SSO が設定されたほかのサーバーにアクセスするには、Identity Server にログインする必要があります。
たとえば、設定が適切なら、ユーザーは Sun Java System Identity Server のログイン画面でサインインでき、再度サインインすることなく別のウィンドウで Messenger Express にアクセスできます。同様に、Sun Java System Calendar Server の設定が適切なら、ユーザーは Sun Java System Identity Server のログイン画面でサインインでき、その後、再度サインインすることなく別のウィンドウで Calendar にアクセスできます。
Messaging Server には、SSO を配備する方法が 2 つあります。1 つは Sun Java System Identity Server を使用する方法、もう 1 つは通信サーバーの信頼できるサークル技術を使用する方法です。信頼できるサークルを使用することは、SSO の実装方法として長く採用されてきました。信頼できるサークルには Identity Server SSO では使用できない機能もありますが、今後の開発では Identity Server に照準が合わせられるため、この方法を使用することはお勧めしません。ただし、この章では、次の節で両方の方法について説明します。
Sun Java System サーバー用の Identity Server SSOこの節では、Identity Server を使用する SSO について説明します。この章には、以下の節があります。
SSO の制限事項と注意事項
Messaging Server を設定して SSO をサポートする
Messaging Server SSO は、4 つの configutil パラメータによってサポートされます。4 つのパラメータのうち、Messaging Server で SSO を有効にするには、local.webmail.sso.amnamingurl の 1 つのみが必要とされます。SSO を有効にするには、このパラメータを、Identity Server がネーミングサービスを実行している URL に設定します。通常、この URL は http://server/amserver/namingservice となります。
例:configutil -o local.webmail.sso.amnamingurl -v http://sca-walnut:88/amserver/namingservice
注
Identity Server SSO は、古い SSO メカニズムを有効にする local.webmail.sso.enable を確認しません。local.webmail.sso.enable は off のままにしておくか、解除してください。これ以外の設定では、古い SSO メカニズムに必要とされる存在しない設定パラメータについての警告メッセージが記録されます。
表 6-3 で示されている SSO の設定パラメータは configutil コマンドを使用して変更できます。
SSO のトラブルシューティング
SSO に関して問題がある場合は、まず Web メールのログファイル msg_svr_base/log/http でエラーをチェックする必要があります。ログレベルを上げると作業がしやすくなります (configutil -o logfile.http.loglevel -v debug)。これで解決しない場合は、msg_svr_base/log/http_sso の amsdk メッセージをチェックしてから、amsdk ログレベルを上げてください (configutil -o local.webmail.sso.amloglevel -v 5)。サーバーを再起動しないとログレベルの変更が反映されないことに注意してください。
SSO の問題が解決しない場合は、Identity Server と Messaging Server の両方について、完全指定ホスト名をログイン時に使用していることを確認してください。cookie は同一ドメインのサーバー間でのみ共有され、ブラウザはローカルサーバー名に使われるドメインを認識していないため、ブラウザで完全指定ホスト名を使用しないと SSO は機能しません。
信頼できるサークル SSO (従来システム)この節では、信頼できるサークル SSO について説明します。この方法による SSO を使用することはお勧めしません。今後の開発では Identity Server に照準が合わせられるためです。ただし、現時点では、信頼できるサークル SSO では使用可能で、Identity Server SSO では使用不可な機能もあります。この節には、以下の項があります。
信頼できるサークル SSO の概要と定義
SSO の配備に先立ち、次の用語を理解しておくことは重要です。
- SSO : シングルサインオン。1 つのアプリケーションにサインインするとほかのアプリケーションにもアクセスできること。ユーザー ID はすべてのアプリケーションにおいて同じ
- 信頼できるアプリケーション: SSO スキーム (SSO プレフィックス) を共有し、互いの cookie と確認を信頼し合うアプリケーション群。ピア SSO アプリケーションとも呼ばれる
- 信頼できるサークル: 信頼できるアプリケーションのグループ。同一の SSO プレフィックスを共有する
- SSO プレフィックス: SSO を配備する担当者によって定義され、アプリケーションで認識されている文字列。同一の信頼できるサークル内に存在するほかのアプリケーションで生成された cookie の検出に使用される。異なるプレフィックスを持つアプリケーションは同一サークル内に存在しないため、このようなアプリケーション間を移動する場合、ユーザーは再認証する必要がある。構成設定でプレフィックスには最後に「-」が付く場合がある
- アプリケーション ID (appid): SSO を配備する担当者によって SSO サークル内の各アプリケーションに定義された一意の文字列
- SSO cookie: ユーザーがあるアプリケーションで認証済みであることをブラウザが記憶するために使用されるトークン。cookie 名は、SSO_prefix-application ID という形式をとる。cookie の値は SSO キーであり、通常、アプリケーションによって生成されるセッション ID となる
- cookie ドメイン: アプリケーションが cookie の送信を制限されているドメイン。これは DNS で意味するところのドメインである
- 確認 URL: あるアプリケーションによって cookie の確認に使用され、別のアプリケーションによって検出される URL
信頼できるサークル SSO アプリケーション
SSO を実装する前に、信頼できるサークルに含めるアプリケーションを考慮する必要があります。信頼できるサークルに含めることのできるアプリケーションは、Messenger Express (Messenger Express Multiplexor が付属された、または付属されていない)、Calendar Express、および旧バージョンのメッセージング用 iPlanet Delegated Administrator (Sun LDAP Schema 1 しかサポートしないので推奨しない) です。
表 6-2 に、SSO を介して互いにアクセス可能なアプリケーションを示します。ユーザーの視点でとらえると、行見出しで示されているアプリケーションのいずれかにログインし、ユーザー ID とパスワードを再入力せずに列見出しで示されているアプリケーションにアクセスできた場合、SSO は機能します。
信頼できるサークル SSO の制限事項
- 同時に実行される SSO アプリケーションは、同一ドメインに存在する必要がある
- SSO アプリケーション群には、互いの SSO の確認 URL へのアクセス権が与えられている必要がある
- ブラウザは cookie をサポートしている必要がある
- セキュリティのためには、ブラウザが実行されている共有マシン上で SSO を使用しない
- 別の ID に切り替えるには、ブラウザを再起動する必要がある
- Messenger Express と Sun Java System Calendar Server の両方でシングルサインオフが有効になっている場合に Sun Java System Calendar Server からログアウトすると、本来ならば Messenger Express には再度ログインする必要がある。Messenger Express からログアウトすると、Sun Java System Calendar Server に再度ログインする必要がある。ただし、現在のところこのように機能しない。一方をログアウトしても、もう一方ではログインされたままの場合がある
信頼できるサークル SSO 配備の例
最も単純な SSO 配備の場合、Messenger Express と メッセージング用 iPlanet Delegated Administrator のみが使用されます。これより複雑な場合は、Calendar Express (同一マシン上または別のマシン上) が追加されます。追加するには、同一の信頼できるサークル内に存在できるように、同一の SSO プレフィックスを使用します。図 6-1 はこのことを示しています。
図 6-1 単純な SSO 配備
さらに複雑な配備では、Messenger Express Multiplexors およびロードバランサが追加されます。
図 6-2 複雑な SSO 配備
信頼できるサークル SSO の設定
この節では、Messenger Express、メッセージング用 iPlanet Delegated Administrator、および Calendar Manager 用の SSO の設定について説明します。
- Messenger Express に SSO の設定をします。
- 適切な SSO configutil パラメータを設定します。
Messenger Express で Delegated Administrator とのシングルサインオンを有効にするには、次のように各パラメータを設定します (デフォルトのドメインは siroe.com と仮定)。パラメータの詳細については、表 6-3 を参照してください。設定を行うにはルートユーザーである必要があります。cd で instance_root に移動します。
- 設定を変更後、Messenger Express http サーバーを再起動します。
cd instance_root
./stop-msg http
./start-msg http- Directory Server の SSO を設定します。
- ディレクトリでプロキシユーザーアカウントを作成します。
プロキシユーザーアカウントを使って、Delegated Administrator はプロキシ認証を行うために Directory Server にバインドできます。次の LDIF コード (proxy.ldif) を使って、ldapadd を使うプロキシユーザーアカウントのエントリを作成できます。
dn: uid=proxy, ou=people, o=siroe.com, o=isp
objectclass: top
objectclass: person
objectclass: organizationalperson
objectclass: inetorgperson
uid: proxy
givenname: Proxy
sn: Auth
cn: Proxy Auth
userpassword: proxypasswordldapadd -h mysystem.siroe.com -D "cn=Directory Manager" -w password -v -f proxy.ldif
- プロキシユーザーアカウント認証に適切な ACI を作成します。
ldapmodify ユーティリティを使用して、Delegated Administrator のインストール時に作成した各サフィックスの ACI を作成します。
osiroot - ユーザーデータを保存するために入力したサフィックス (デフォルトは o=isp)。osiroot は組織ツリーのルートです。
dcroot - ドメイン情報を保存するために入力したサフィックスです (デフォルトは o=internet)。
osiroot - 設定情報を保存するために入力したサフィックス。これはユーザーデータを保存するために入力した値と同一になります。
以下に、先に作成したプロキシユーザーの osiroot の ACI エントリ (aci1.ldif) の例を示します。
dn: o=isp
changetype: modify
add: aci
aci: (target="ldap:///o=isp")(targetattr="*")(version 3.0; acl
"proxy";allow (proxy) userdn="ldap:///uid=proxy, ou=people,
o=siroe.com, o=isp";)ldapmodify -h siroe.com -D "cn=Directory Manager" -w password -v -f aci1.ldif
dcroot に同様の ACI エントリ (aci2.ldif) を作成します。
dn: o=internet
changetype: modify
add: aci
aci: (target="ldap:///o=internet")(targetattr="*")(version 3.0; acl "proxy";allow (proxy) userdn="ldap:///uid=proxy, ou=people, o=siroe.com, o=isp";)ldapmodify -h siroe.com -D "cn=Directory Manager" -w password -v -f aci2.ldif
- Delegated Administrator を設定します。
- プロキシユーザー証明書およびコンテキストの cookie 名を Delegated Administrator resource.properties ファイルに追加します。
Delegated Administrator の iDA_server_root/nda/classes/netscape/nda/servlet/resource.properties ファイルの次のエントリのコメントを解除し、修正します。
LDAPDatabaseInterface-ldapauthdn=Proxy_Auth_DN
LDAPDatabaseInterface-ldapauthpw=Proxy_Auth_Password
NDAAuth-singleSignOnId=SSO_Prefix-
NDAAuth-applicationId=DelAdminID例 :
LDAPDatabaseInterface-ldapauthdn=
uid=proxy, ou=people, o=siroe.com, o=isp
LDAPDatabaseInterface-ldapauthpw=proxypassword
NDAAuth-singleSignOnId=ssogrp1-
NDAAuth-applicationId=ida- 対象となるサーバーの確認 URL を追加します。
受け取るシングルサインオン cookie を確認するには、Delegated Administrator にその連絡先を指定しておく必要があります。対象となるすべてのサーバーに、確認 URL を指定します。
次の例では、Messenger Express がインストールされており、そのアプリケーション ID が msg5 であると仮定しています。Delegated Administrator の iDA_server_root/nda/classes/netscape/nda/servlet/resource.properties ファイルを編集し、以下のようなエントリを追加します。
verificationurl-ssogrp1-msg5=http://webmail_hostname:port/VerifySSO?
verificationurl-ssogrp1-ida=http://iDA_hostname:port/VerifySSO?
verificationurl-ssogrp1-ics50=http://iCS_hostname:port/VerifySSO?- Delegated Administrator のシングルサインオン cookie 情報を追加し、UTF8 パラメータのエンコーディングを有効にします。
- Messenger Express を再起動します。
手順 1a 〜 2c の説明に従って設定を変更したら、その変更内容が反映されるように Messenger Express を再起動します。
WebServer_Root/https-instance_name/stop
WebServer_Root/https-instancename/start- SSO グループに Calendar を配備している場合は、Calendar Server を設定します。
ics.conf を編集し、以下を追加します。
sso.appid = "ics50"
sso.appprefix = "ssogrp1"
sso.cookiedomain = ".red.iplanet.com"
sso.enable = "1"
sso.singlesignoff = "true"
sso.userdomain = "mysystem.red.iplanet.com"
sso.ims5.url="http://mysystem.red.iplanet.com:80/VerifySSO?"
sso.ida.url=http://mysystem.red.iplanet.com:8080/VerifySSO?- Calendar Server を再起動します。
start-cal
- Messenger Express http サーバーを再起動します。
msg_svr_base/sbin/stop-msg http
msg_svr_base/sbin/start-msg httpMessenger Express 信頼 SSO 設定のパラメータ
configutil コマンドを使うと、Messenger Express のシングルサインオン設定パラメータを変更できます。表 6-3 に、パラメータを示します。configutil の詳細については、『Messaging Server Reference Manual』を参照してください。
表 6-3 信頼できるサークルのシングルサインオンパラメータ
パラメータ
説明
local.webmail.sso.enable
ログインページが取り込まれたときにクライアントが提示する SSO cookie を受け入れ確認する機能、ログイン成功時に SSO cookie を返す機能、ほかの SSO パートナーからの要求に応答して独自の cookie を確認する機能など、すべてのシングルサインオン機能を有効または無効にする
ゼロ以外の値に設定した場合、サーバーはすべての SSO 機能を実行する
ゼロに設定した場合、サーバーはどの SSO 機能も実行しない
デフォルト値はゼロ
local.webmail.sso.prefix
このパラメータの文字列値は、Messenger Express HTTP サーバーによって設定された SSO cookie をフォーマットするときのプレフィックスとして使用される。このプレフィックスの付いた SSO cookie だけがサーバーによって認識され、ほかの SSO cookie はすべて無視される
このパラメータの値が null (空白) の場合は、事実上、サーバー上のすべての SSO 機能が無効になる
デフォルト値は null (空白)
この文字列は、メッセージング用 iPlanet Delegated Administrator の resource.properties ファイルで使用されている文字列から末尾に付いている「-」を除いたものと一致する必要がある
例 :NDAAuth-singleSignOnID=ssogrp1-
この場合、ここで設定する値は ssogrp1 である
local.webmail.sso.id
このパラメータの文字列値は、Messenger Express HTTP サーバーによって設定された SSO cookie をフォーマットするときのアプリケーション ID として使用される。デフォルト値は null (空白)
これは任意の文字列である。この値は Delegated Administrator の resource.properties ファイルに指定した値と一致する必要がある。resource.properties での対応するエントリは次のようになる
Verifycationurl-XXX-YYY=http://webmailhost:webmailport/VerifySSO?
XXX は、上記の local.webmail.sso.prefix 値セット、YYY は、ここで設定される local.webmail.sso.id の値である
local.webmail.sso.
cookiedomainこのパラメータの文字列値は、Messenger Express HTTP サーバーによって設定されたすべての SSO cookie の cookie ドメイン値を設定するために使用される。デフォルト値は null (空白)
このドメインは、Messenger Express ブラウザでサーバーへのアクセスに使用される DNS ドメインと一致する必要がある。ホストしているドメインの名前ではない
local.webmail.sso.
singlesignoffこのパラメータの整数値がゼロ以外に設定されている場合は、クライアントがログアウトするときに、local.webmail.sso.prefix の値に一致するプレフィックス値を持つクライアント上の SSO cookie がすべて消去される
ゼロに設定されている場合は、クライアントがログアウトするときに、Messenger Express がその独自の SSO cookie を消去する
デフォルト値はゼロ
local.sso.appid.verifyurl
ピア SSO アプリケーションの確認 URL 値を設定する。appid は、処理される SSO cookie を生成するピア SSO アプリケーションのアプリケーション ID である。たとえば、Delegated Administrator のデフォルトの appid は、nda45 であり、実際の値は Delegated Administrator の resource.properties ファイルのエントリ NDAAuth-applicationID で指定されている
信頼されている各 ピア SSO アプリケーションに対し、1 つのパラメータが定義されている必要がある。確認 URL の標準形は次のようになる
http://nda-host:port/VerifySSO?
複数の Messenger Express Multiplexors と Messenger Express を実行している Message Store サーバーの前で、または Calendar フロントエンドの前でロードバランサを使用する場合、各物理的システムに異なる appid を verifyurl にある実際のホスト名とともに割り当てること。これによって、cookie の確認に正しいシステムが使用される