Sun Java System Messaging Server 6 2005Q4 管理ガイド

第 6 章 シングルサインオン (SSO) の有効化

シングルサインオンとは、エンドユーザーからの 1 回の認証 (つまり、ユーザー ID とパスワードを使用したログイン) に対し、複数のアプリケーションへのアクセス権を付与する機能のことです。Sun Java System Access Manager (旧称 Identity Server) は、Sun Java System サーバーの SSO に使用される正規のゲートウェイです。SSO が設定されたほかのサーバーにアクセスするには、Access Manager にログインする必要があります。

たとえば、設定が適切なら、ユーザーは Sun Java System Access Manager のログイン画面でサインインでき、再度サインインすることなく別のウィンドウで Messenger Express にアクセスできます。同様に、Sun Java System Calendar Server の設定が適切なら、ユーザーは Sun Java System Access Manager のログイン画面でサインインでき、その後、再度サインインすることなく別のウィンドウで Calendar Server にアクセスできます。

Messaging Server には、SSO を配備する方法が 2 つあります。1 つは Sun Java System Access Manager を使用する方法、もう 1 つは通信サーバーの信頼できるサークル技術を使用する方法です。信頼できるサークルを使用することは、SSO の実装方法として長く採用されてきました。信頼できるサークルには Access Manager SSO では使用できない機能もありますが、今後の開発では Access Manager に照準が合わせられるため、この方法を使用することはお勧めしません。ただし、この章では、次の節で両方の方法について説明します。

Sun Java System サーバー用の Access Manager SSO

この節では、Access Manager を使用する SSO について説明します。この章には、次の節があります。

SSO の制限事項と注意事項

Messaging Server を設定して SSO をサポートする

Messaging Server SSO は、4 つの configutil パラメータによってサポートされます。4 つのパラメータのうち、Messaging Server で SSO を有効にするには、local.webmail.sso.amnamingurl の 1 つのみが必要とされます。SSO を有効にするには、このパラメータを、Access Manager がネーミングサービスを実行している URL に設定します。通常、この URL は http://server/amserver/namingservice となります。次に例を示します。


configutil -o local.webmail.sso.amnamingurl -v 
http://sca-walnut:88/amserver/namingservice

注 –

Access Manager SSO は、古い SSO メカニズムを有効にする local.webmail.sso.enable を確認しません。local.webmail.sso.enableoff のままにしておくか、解除してください。これ以外の設定では、古い SSO メカニズムに必要とされる存在しない設定パラメータについての警告メッセージが記録されます。


表 6–3 で示されている SSO の設定パラメータは configutil コマンドを使用して変更できます。

表 6–1 Access Manager のシングルサインオンパラメータ

パラメータ 

説明 

local.webmail.sso.amnamingurl

Access Manager がネーミングサービスを実行する URL です。Access Manager を使用するシングルサインオンに必須の変数です。通常、この URL は http://server/amserver/namingservice です。

デフォルト: 設定なし。 

local.webmail.sso.amcookiename

Access Manager の cookie 名です。デフォルトでは、Access Manager のセッションハンドルは iPlanetDirectoryPro という cookie に保存されます。Access Manager が別の cookie 名を使用するように設定されている場合は、その名前を Messaging Server のこのパラメータに設定する必要があります。これによって、Messaging Server でシングルサインオンを処理する場合の検索対象を指定できます。IS がデフォルト設定の場合は、デフォルト値はそのままにしておく必要があります。

デフォルト: iPlanetDirectoryPro

local.webmail.sso.amloglevel

AMSDK ログレベルです。Messaging Server で使用される SSO ライブラリには、Messaging Server とは別の独自のロギングメカニズムがあります。SSO ライブラリのメッセージは、msg_svr_base/log の下にある http_sso と呼ばれるファイルに記録されます。デフォルトでは、info 以上のメッセージのみが記録されますが、ログレベルを 1 〜 5 の値 (1 = errors、2 = warnings、3 = info、4 = debug、5 = maxdebug) に設定することで、ログレベルを上げることは可能です。ライブラリでのメッセージの重要性の概念は Messaging Server と異なること、また、レベルを debug に設定すると無意味なデータが大量に記録されることに注意してください。さらに、http_sso ログファイルは、共通の Messaging Server ログコードで管理されないこと、クリーンアップされたりロールオーバーされたりすることがないことにも注意してください。デフォルトよりも高いログレベルに設定した場合は、システム管理者の責任でクリーンアップを行います。

デフォルト: 3 

local.webmail.sso.singlesignoff

Messaging Server から Access Manager へのシングルサインオフです。Access Manager は中央の認証オーソリティーであるため、シングルサインオフは常に Access Manager から Messaging Server の順で有効になります。このオプションを使用すると、サイトで Web メールの logout ボタンによって Access Manager からもユーザーを (カスタマイズ作業を保存して) ログアウトするかどうか設定できます。デフォルトでは、このオプションは有効になっています。このオプションを無効にした場合、デフォルトの Web メールクライアントからログアウトしたユーザーは自動的に再度ログインされます。ログアウトはルートドキュメントを参照し、ルートドキュメントは Access Manager cookie が存在していてそれが有効である限り受信箱画面を参照するためです。したがって、このオプションを無効に設定したサイトでは、Web メールのログアウト時に発生するアクションをカスタマイズする必要があります。

デフォルト: はい 

SSO のトラブルシューティング

SSO に関して問題がある場合は、まず Web メールのログファイル msg_svr_base/log/http でエラーをチェックする必要があります。ログレベルを上げると作業がしやすくなります (configutil -o logfile.http.loglevel -v debug)。これで解決しない場合は、msg_svr_base/log/http_ssoamsdk メッセージをチェックしてから、amsdk ログレベルを上げてください (configutil -o local.webmail.sso.amloglevel -v 5)。サーバーを再起動しないとログレベルの変更が反映されないことに注意してください。

SSO の問題が解決しない場合は、Access Manager と Messaging Server の両方について、完全修飾ホスト名をログイン時に使用していることを確認してください。cookie は同一ドメインのサーバー間でのみ共有され、ブラウザはローカルサーバー名に使われるドメインを認識していないため、ブラウザで完全修飾ホスト名を使用しないと SSO は機能しません。

信頼できるサークル SSO (従来システム)

この節では、信頼できるサークル SSO について説明します。この方法による SSO を使用することはお勧めしません。今後の開発では Access Manager に照準が合わせられるためです。ただし、現時点では、信頼できるサークル SSO では使用可能で、Access Manager SSO では使用不可な機能もあります。この節には、次の項があります。

信頼できるサークル SSO の概要と定義

SSO の配備に先立ち、次の用語を理解しておくことは重要です。

信頼できるサークル SSO アプリケーション

SSO を実装する前に、信頼できるサークルに含めるアプリケーションを考慮する必要があります。信頼できるサークルに含めることのできるアプリケーションは、Messenger Express (Messenger Express Multiplexor が付属された、または付属されていない)、Calendar Express、および旧バージョンのメッセージング用 iPlanet Delegated Administrator (Sun LDAP Schema 1 しかサポートしないので推奨しない) です。

表 6–2 に、SSO を介して互いにアクセス可能なアプリケーションを示します。ユーザーの視点でとらえると、行見出しで示されているアプリケーションのいずれかにログインし、ユーザー ID とパスワードを再入力せずに列見出しで示されているアプリケーションにアクセスできた場合、SSO は機能します。

表 6–2 SSO の相互運用性

                                    アクセス先:  

 

アクセス元:  

Calendar Express 

Messenger Express 

Messenger Express Multiplexor 

Delegated Administrator 

Calendar Express 

SSO 

SSO 

SSO 

SSO 

Messenger Express 

SSO 

なし 

なし 

SSO 

Messenger Express Multiplexor 

SSO 

なし 

なし 

SSO 

Delegated Administrator 

SSO 

SSO 

SSO 

なし 

信頼できるサークル SSO の制限事項

信頼できるサークル SSO 配備の例

もっとも単純な SSO 配備の場合、Messenger Express と Delegated Administrator のみが使用されます。これより複雑な場合は、Calendar Express (同一マシン上または別のマシン上) が追加されます。追加するには、同一の信頼できるサークル内に存在できるように、同一の SSO プレフィックスを使用します。図 6–1 はこのことを示しています。

図 6–1 単純な SSO 配備

この図は、単純な SSO 配備を示しています。

さらに複雑な配備では、Messenger Express Multiplexors およびロードバランサが追加されます。

図 6–2 複雑な SSO 配備

この図は、複雑な SSO 配備を示しています。

信頼できるサークル SSO の設定

この節では、Messenger Express、Delegated Administrator、および Calendar Manager 用の SSO の設定について説明します。

ProcedureMessenger Express、Delegated Administrator、および Calendar Manager 用の SSO を設定するには

手順
  1. Messenger Express に SSO の設定をします。

    1. 適切な SSO configutil パラメータを設定します。

      Messenger Express で Delegated Administrator とのシングルサインオンを有効にするには、次のように各パラメータを設定します (デフォルトのドメインは siroe.com と仮定)。パラメータの詳細については、表 6–3 を参照してください。設定を行うにはルートユーザーである必要があります。cdinstance_root に移動します。


      configutil -o local.webmail.sso.enable -v 1
      configutil -o local.webmail.sso.prefix -v ssogrp1
      

      ssogrp1 は iDA で使用されるデフォルトの SSO プレフィックスです。別のプレフィックスを選択することもできますが、デフォルトを使用すると iDA や iCS を設定するときにプレフィックスを入力せずに済みます。


      configutil -o local.webmail.sso.id -v ims5
      

      ims5 は Messenger Express (ME) をほかのアプリケーションから識別するために付ける名前です。


      configutil -o local.webmail.sso.cookiedomain -v “.siroe.com”
      

      上記のドメインは、ME/ブラウザクライアントでサーバーとの接続に使用されるドメインと一致する必要があります。したがって、このサーバー上のホストしているドメインが xyz.com と呼ばれている場合でも、DNS にある実際のドメインを使用する必要があります。 この値はピリオドで始まります。


      configutil -o local.webmail.sso.singlesignoff -v 1
      configutil -o local.sso.ApplicationID.verifyurl -v \
      "http://ApplicationHost:port/VerifySSO?"
      

      ApplicationID は SSO アプリケーションに付ける名前です (例: Delegated Administrator には ida、Calendar Server には ics50 など)。ApplicationHost:port は、アプリケーションのホストとポート番号です。Messaging Server 以外の各アプリケーションごとに、これらの行のいずれかがあります。次に例を示します。


      configutil -o local.sso.ida.verifyurl -v \
      "http://siroe.com:8080/VerifySSO?"
      
    2. 設定を変更後、Messenger Express http サーバーを再起動します。


      cd instance_root./stop-msg http
      ./start-msg http
      
  2. Directory Server の SSO を設定します。

    1. ディレクトリでプロキシユーザーアカウントを作成します。

      プロキシユーザーアカウントを使って、Delegated Administrator はプロキシ認証を行うために Directory Server にバインドできます。次の LDIF コード (proxy.ldif) を使って、ldapadd を使うプロキシユーザーアカウントのエントリを作成できます。

      ldapadd -h mysystem.siroe.com -D "cn=Directory Manager" -w password -v -f proxy.ldif


      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: proxypassword
    2. プロキシユーザーアカウント認証に適切な 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
      
  3. Delegated Administrator を設定します。

    1. プロキシユーザー証明書およびコンテキストの cookie 名を Delegated Administrator resource.properties ファイルに追加します。

      Delegated Administrator の 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=cesta.com,o=isp
      LDAPDatabaseInterface-ldapauthpw=proxypassword
      NDAAuth-singleSignOnId=ssogrp1-
      NDAAuth-applicationId=ida

      resource.properties ファイルは、次の場所に保存されています。

      iDA_svr_base/nda/classes/netscape/nda/servlet/

    2. 対象となるサーバーの確認 URL を追加します。

      受け取るシングルサインオン cookie を確認するには、Delegated Administrator にその連絡先を指定しておく必要があります。対象となるすべてのサーバーに、確認 URL を指定します。

      次の例では、Messenger Express がインストールされており、そのアプリケーション ID が msg5 であると仮定しています。Delegated Administrator の 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?

      resource.properties ファイルは、次のディレクトリにあります。

      iDA_svr_base/nda/classes/netscape/nda/servlet/

  4. Delegated Administrator のシングルサインオン cookie 情報を追加し、UTF8 パラメータエンコーディングを有効にします。

    1. Delegated Administrator のコンテキスト識別子を定義します。

      servlets.properties ファイルを編集し、servlet.*.context=ims50 というテキストを含んでいるすべての行のコメントを解除します。 * は任意の文字列を示しています。

      servlets.properties ファイルは、次の場所にあります。

      Web_Svr_Base/https-instancename/config/

    2. Enterprise Server 設定のコンテキストの cookie 名を指定します。

      Enterprise Server の contexts.properties ファイルを編集し、ファイルの下部の #IDACONF-Start 行の前に次の行を追加します。

      context.ims50.sessionCookie=ssogrp1-ida

      contexts.properties ファイルは、次の場所にあります。

      Web_Svr_Base/https-instancename/config/

    3. ims5 コンテキストの UTF8 パラメータエンコーディングを有効にします。

      Enterprise Server 設定の ims5 コンテキストの UTF8 パラメータエンコーディングを有効にするには、Enterprise Server の contexts.properties ファイルに次のエントリを追加します。

      context.ims50.parameterEncoding=utf8

  5. Messenger Express を再起動します。

    手順 1a 〜 2c の説明に従って設定を変更したら、その変更内容が反映されるように Messenger Express を再起動します。


    Web_Svr_Base/https-instance_name/stop
    Web_Svr_Base/https-instancename/start
    
  6. 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?
  7. Calendar Server を再起動します。

    start-cal

  8. Messenger Express http サーバーを再起動します。


    msg_svr_base/sbin/stop-msg http
    msg_svr_base/sbin/start-msg http
    

Messenger Express 信頼 SSO 設定のパラメータ

Messenger Express のシングルサインオン設定パラメータは、configutil コマンドを使用して変更できます。「Messenger Express 信頼 SSO 設定のパラメータ」に、パラメータを示します。configutil の詳細については、『Sun Java System Messaging Server 6 2005Q4 Administration Reference』を参照してください。

表 6–3 信頼できるサークルのシングルサインオンパラメータ

パラメータ 

説明 

local.sso.appid .verifyurl

ピア SSO アプリケーションの確認 URL 値を設定します。appid は、処理される SSO cookie を生成するピア SSO アプリケーションのアプリケーション ID です。たとえば、Delegated Administrator のデフォルトの appidnda45 であり、実際の値は Delegated Administrator の resource.properties ファイルのエントリ NDAAuth-applicationID で指定されています。

信頼されている各ピア SSO アプリケーションに対し、1 つのパラメータが定義されている必要があります。確認 URL の標準形は次のようになります。 

http://nda-host:port/VerifySSO?

複数の Messenger Express Multiplexor と(Messenger Express を実行している) Message Store サーバーの前で、または Calendar フロントエンドの前でロードバランサを使用する場合、各物理的システムに、異なる appidverifyurl にある実際のホスト名とともに割り当ててください。これによって、cookie の確認に正しいシステムが使用されます


local.webmail.sso.
cookiedomain

このパラメータの文字列値は、Messenger Express HTTP サーバーによって設定されたすべての SSO cookie の cookie ドメイン値を設定するために使用されます。デフォルト値は null (空白) です。 

このドメインは、Messenger Express ブラウザでサーバーへのアクセスに使用される DNS ドメインと一致する必要があります。ホストしているドメインの名前ではありません。 

local.webmail.sso.enable

ログインページが取り込まれたときにクライアントが提示する SSO cookie を受け入れ確認する機能、ログイン成功時にクライアントに SSO cookie を返す機能、ほかの SSO パートナーからの要求に応答して独自の cookie を確認する機能など、すべてのシングルサインオン機能を有効または無効にします。 

ゼロ以外の値に設定した場合、サーバーはすべての SSO 機能を実行します。 

ゼロに設定した場合、サーバーはどの SSO 機能も実行しません。 

デフォルト値はゼロです。 

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.prefix

このパラメータの文字列値は、Messenger Express HTTP サーバーによって設定された SSO cookie をフォーマットするときのプレフィックスとして使用されます。このプレフィックスの付いた SSO cookie だけがサーバーによって認識され、ほかの SSO cookie はすべて無視されます。 

このパラメータの値が null (空白) の場合は、事実上、サーバー上のすべての SSO 機能が無効になります。 

デフォルト値は null (空白) です。 

この文字列は、Delegated Administrator の resource.properties ファイルで使用されている文字列から末尾に付いている「-」を除いたものと一致する必要があります。次に例を示します。

NDAAuth-singleSignOnID=ssogrp1-

この場合、ここで設定する値は ssogrp1 です。


local.webmail.sso.
singlesignoff

このパラメータの整数値がゼロ以外に設定されている場合は、クライアントがログアウトするときに、local.webmail.sso.prefix の値に一致するプレフィックス値を持つクライアント上の SSO cookie がすべて消去されます。 

ゼロに設定されている場合は、クライアントがログアウトするときに、Messenger Express がその独自の SSO cookie を消去します。 

デフォルト値はゼロです。