Open Federation

How Do I... FAQ

  1. Liberty ID-FF のサンプルはどのように設定して実行したらよいですか?

  2. Liberty ID-WSF のサンプルはどのように設定して実行したらよいですか?

  3. SAML v1.x を使って署名をつけるにはどうすればよいですか?

  4. Liberty ID-FF を使って署名をつけるにはどうすればよいですか?

  5. どのようにしてキーストアを設定したらよいですか?

  6. SAML v1.x と ssoadm コマンドを使ってどのようにシングルサインオンを設定したらよいですか?

  7. Liberty ID-FF と ssoadm コマンドを使ってどのようにシングルサインオンを設定したらよいですか?

  8. SAML v2 と ssoadm コマンドを使ってどのようにシングルサインオンを設定したらよいですか?

  9. SAML v2 を使って署名をつけて暗号化するにはどう設定したらよいですか?

  10. 認証 Web サービスを用いた認証を設定するにはどうしたらよいですか?

  11. X509、Bearer および SAML トークンを発行するのにディスカバリサービスをどのように設定したらよいですか?

  12. ssoadm コマンドを使ってポリシー Agents 3.0 のプロファイルを設定するにはどうしたらよいですか?

  13. フェイルオーバーを行うには OpenSSO 設定データストアをどのように設定したらよいですか?

  14. AIX 上で Websphere 6.1 にどのようにして OpenSSO を配備したらよいですか?

  15. アイデンティティー Web サービスを用いて OpenSSO 上でどのように認証を設定したらよいですか?

  16. アイデンティティー Web サービスを用いて OpenSSO 上でどのように認可を設定したらよいですか?

  17. SAMLv2 IDP プロキシをどのように設定したらよいですか?

  18. configurator.jsp を用いずに OpenSSO を設定するにはどのようにしたらよいですか?

  19. リソースが J2EE ポリシーエージェントで保護されている場合に SAMLv2 セッションをアップグレードするにはどうしたらよいですか? (未翻訳)

Q: Liberty ID-FF のサンプルはどのように設定して実行したらよいですか?

Liberty ID-FF サンプルは ID-FF プロトコルを用いて 2 つの OpenSSO インスタンス間で単一ユーザーを連携する際に行われるインタラクションについてデモします。 ID-FF サンプルを配備するパートと実行するパートの 2 つあります。 以下の両方のセクションで説明されている手順を完了させてください。

Liberty ID-FF サンプルの設定手順

Liberty ID-FF サンプルを設定するには 2 つの OpenSSO インスタンスが必要です。 各インスタンスごとに opensso.war を配備し、設定します。

  • machine-IDP はアイデンティティープロバイダとして設定します。

  • machine-SP はサービスプロバイダとして設定します。


始める前に

  • 片方のインスタンスの cookie 名をデフォルトのものから変更する。 たとえば、machine-IDP のコンソールにアクセスし、cookie 名を デフォルトの値とは違うものに変更する。(デフォルト値は "iPlanetDirectoryPro" です。) 変更後、Web コンテナを再起動する。

  • machine-IDPmachine-SP を同じホスト上で、2 つの異なる Web コンテナに 配備して実行させる場合には、WAR ファイルをそれぞれのインスタンスに配備する際には異なる URI 上に配備する。


Liberty ID-FF サンプルを配備する手順は次のとおりです。
実行する手順については、Liberty ID-FF サンプルの実行手順 にて説明します。

  1. opensso.war をダウンロードするかワークスペースでビルドします。

  2. machine-IDP にて opensso.war を配備します。

    このインスタンスはアイデンティティープロバイダとして設定されます。

  3. machine-IDP にて設定ページにアクセスします:

    machine-IDP_protocol://machine-IDP_host:machine-IDP_port/machine-IDP_deploy_uri

    適切な値を入力してインスタンスを設定します。

  4. machine-SP にて opensso.war を配備します。

    このインスタンスはサービスプロバイダとして設定されます。

  5. machine-SP にて設定ページにアクセスします:

    machine-SP_protocol://machine-SP_host:machine-SP_port/machine-SP_deploy_uri

    適切な値を入力してインスタンスを設定します。

  6. machine-IDP 上でサンプルの configure.jsp にアクセスします。

    machine-IDP_protocol://machine-IDP_host:machine-IDP_port/machine-IDP_deploy_uri/samples/idff/idp/configure.jsp

    リモートのサービスプロバイダに関する各フィールドに値を入力し、終わったら Configure をクリックします。

Protocol

machine-SP で使われているプロトコル(例えば http または https)

Host

machine-SP のホスト名

Port

machine-SP のポート番号

Deployment URI

machine-SP で OpenSSO を配備した URI(例 /opensso-sp)

    上記の設定にしたがって、machine-IDP は ホストアイデンティティープロバイダとして以下の URI で設定され:

    machine-IDP_protocol://machine-IDP_host:machine-IDP_port/machine-IDP_deploy_uri

    また

    machine-SP はリモートサービスプロバイダとして以下の URI で設定されます:

    machine-SP_protocol://machine-SP_host:machine-SP_port/machine-SP_deploy_uri

    さらに、sampleidffcot という名前でトラストサークルが作成され、上の 2 つのプロバイダがメンバーとして割り当てられます。

  1. machine-SP 上でサンプルの configure.jsp にアクセスします。

    machine-SP_protocol://machine-SP_host:machine-SP_port/machine-SP_deploy_uri/samples/idff/sp/configure.jsp

    リモートのアイデンティティープロバイダに関する各フィールドに値を入力し、終わったら Configure をクリックします。

Protocol

machine-IDP で使われているプロトコル(例えば http または https)

Host

machine-IDP のホスト名

Port

machine-IDP のポート番号

Deployment URI

machine-IDP で OpenSSO を配備した URI(例 /opensso-idp)

    上記の設定にしたがって、 machine-SP はホストサービスプロバイダとして設定以下の URI で設定され、:

    machine-SP_protocol://machine-SP_host:machine-SP_port/machine-SP_deploy_uri

    また

    machine-IDP はリモートアイデンティティープロバイダとして以下の URI で設定されます:

    machine-IDP_protocol://machine-IDP_host:machine-IDP_port/machine-IDP_deploy_uri

    さらに、 sampleidffcot という名前でトラストサークルが作成され、上の 2 つのプロバイダがメンバーとして割り当てられます。

  1. machine-IDP 上で OpenSSO のログインページにアクセスします:

    machine-IDP_protocol://machine-IDP_host:machine-IDP_port/machine-IDP_deploy_uri/UI/Login

  2. Top level administrator (デフォルトでは amadmin)でログインし、idpuser という名前でユーザーを作成し、ログアウトします。

  3. machine-SP 上で OpenSSO のログインページにアクセスします:

    machine-SP_protocol://machine-SP_host:machine-SP_port/machine-SP_deploy_uri/UI/Login

  4. Top level administrator (デフォルトでは amadmin)でログインし、spuser という名前でユーザーを作成し、ログアウトします。

  5. 引き続き、

    Liberty ID-FF サンプルの実行手順 で記述されている手順を行います。

Liberty ID-FF のサンプルはどのように実行したらよいですか?

Liberty ID-FF サンプルの設定手順 で記述されている手順は完了しているものとします。
以下の手順では、さきほど作成したユーザーをどのようにして連携させるかについて説明します。

  1. machine-SP 上で OpenSSO のログインページにアクセスし、

    machine-SP_protocol://machine-SP_host:machine-SP_port/machine-SP_deploy_uri/UI/Login

    spuser でログインします。

  2. machine-SP 上でサンプルのサービスプロバイダのホームページにアクセスします。

    machine-SP_protocol://machine-SP_host:machine-SP_port/machine-SP_deploy_uri/samples/idff/sp/index.jsp

  3. Federate リンクをクリックします。

  4. 表示されているリストから machine-IDP を選択し、 Submit をクリックします。

    machine-IDP の OpenSSO のログインページにリダイレクトされます。

  5. idpusermachine-IDP にログインします。

    machine-SP にリダイレクトされます。

  6. Continue をクリックします。.

    サービスプロバイダホームページにリダイレクトされます。 これにより、spuseridpuser の間での連携が確立されたことが確認できます。


    オプションの設定

    この時点で, machine-IDP との通信用に名前識別子を作成するために machine-SP を設定することができます。

    1. サービスプロバイダのホームページで Register Name Identifier をクリックします。

    2. IDP リストから machine-IDP を選択します。

    3. Submit をクリックします。

      ページが表示されます。

    4. 表示されたページで Continue をクリックすると、サービスプロバイダのホームページに戻ります。

      サービスプロバイダのホームページに戻ったことで、名前識別子が作成されたことが確認できます。


    サービスプロバイダのホームページで Logout をクリックします。

    ユーザーのログアウトに成功したことを示すメッセージが表示されます。

  7. サービスプロバイダのホームページで Continue をクリックします。

    これによりシングルサインオンのプロセスが開始され、 machine-IDP のログインページにリダイレクトされます。

  8. machine-IDPidpuser でログインします。

    シングルサインオンに成功すると、ユーザートークンが machine-SP 上に作成され、サービスプロバイダのホームページに戻ります。

  9. サービスプロバイダのホームページで Terminate Federation をクリックします。

    これにより、連携を終了させるプロセスが開始されます。

  10. 表示されているリストから machine-IDP を選択し、 Submit をクリックします。

    連携が終了したことを示すメッセージが表示されます。

  11. Continue をクリックします。

    サービスプロバイダのホームページに戻ります。これで、 idpuserspuser の間の連携が終了したことが確認できます。
    ここでもう一度 Federate をクリックして連携を開始することもできます。

Q: Liberty ID-WSF のサンプルはどのように設定して実行したらよいですか?

Liberty ID-WSF のサンプルは Web サービスクライアント (WSC) と Web サービスプロバイダ (WSP) の間のインタラクションについてデモします。 とくに、 ディスカバリサービスをどのように照会し更新するか、個人プロファイルサービスをどのように照会し更新するかについてデモします。 さらに、このサンプルを用いて個人プロファイルサービス属性にアクセスするためにポリシー主導のインタラクションを設定することができます。

手順は、Liberty ID-WSF サンプルを配備するパートと実行するパートの 2 つあります。次の両方のセクションで記述されている手順を完了させてください。

Liberty ID-WSF サンプルの設定手順

Liberty ID-WSF のサンプルを設定するには、2 つの OpenSSO インスタンスと 1 つの OpenSSO クライアントインスタンスにアクセスする必要があります。

  • machine-A: アイデンティティープロバイダ、ディスカバリサービスおよび個人プロファイルサービスとして設定します。

  • machine-B: サービスプロバイダとして設定します。

  • machine-C: Web サービスクライアントとして設定します。

以下では、 opensso.warmachine-Amachine-B に配備し、 fam-client-jdk15.war あるいは fam-client-jdk14.warmachine-C に配備します。 fam-client-jdk1x.war には Web サービスクライアントのサンプルが含まれています。


始める前に

  • 片方のインスタンスの cookie 名をデフォルトのものから変更する。 たとえば、machine-A のコンソールにアクセスし、cookie 名を デフォルトの値とは違うものに変更する。(デフォルト値は "iPlanetDirectoryPro" です。) 変更後、Web コンテナを再起動する。

  • machine-Amachine-B を同じホスト上で、2 つの異なる Web コンテナに 配備して実行させる場合には、WAR ファイルをそれぞれのインスタンスに配備する際には異なる URI 上に配備する。


Liberty ID-WSF サンプルを配備する手順は次のとおりです。
実行する手順については、 Liberty ID-WSF サンプルの実行手順 にて説明します。

  1. opensso.warmachine-A に配備し、 アイデンティティープロバイダとして動かすために Liberty ID-FF サンプルを設定します。

    詳細については Liberty ID-FF サンプルの設定手順 を参照してください。

  2. opensso.warmachine-B に配備し、 サービスプロバイダとして動かすために Liberty ID-FF サンプルを設定します。

    詳細については Liberty ID-FF サンプルの設定手順 を参照してください。

  3. machine-Amachine-B のそれぞれにユーザーアカウントを作成します。.

  4. 2 つのアカウントを連携しシングルサインオンの設定を完了させます。

    詳細については Liberty ID-FF サンプルの実行手順 を参照してください。

  5. fam-client-jdk15.war あるいは fam-client-jdk14.warmachine-C に配備します。

    machine-C でサンプルを配備した URI にアクセスします。
    machine-C_protocol://machine-C_host:machine-C_port/machine-C_deploy_uri/Configurator.jsp

    Machine-B のプロトコル、ホスト名、ポート番号、配備 URI、デバッグディレクトリ、ユーザー名(UrlAccessAgent)とパスワード(OpenSSO 設定時に指定したもの) を入力し、保存します。
    保存が完了すると、$HOME/OpenSSOClient/ ディレクトリに *****AMConfig.properties というファイルが作られます。
    cookie 名をデフォルト以外に設定している場合は、com.iplanet.am.cookie.name の値を修正し、念のため machine-C の web コンテナを再起動します。

  6. 次に、machine-C で 次の URL にアクセスします。
    machine-C_protocol://machine-C_host:machine-C_port/machine-C_deploy_uri/wsc/configure.jsp

  7. machine-A に関して次の値を入力します。

IDP Protocol

machine-A の Web コンテナで使用しているプロトコル (例 http または https)

IDP Host

machine-A のホスト名

IDP Port

machine-A のポート番号 ( 例 8080)

IDP Deployment URI

machine-A で OpenSSO を配備した URI (例 /opensso-idp)

Liberty ID-WSF サンプルの実行手順

Liberty ID-WSF サンプルの設定手順 が完了している状態で、次の URL にアクセスすると、
表示されたページにて "Add PP Resource Offering" や "Send Discovery Lookup" などを試すことができます。

machine-C_protocol://machine-C_hostname:port/deployment_uri/wsc/index.jsp

操作例: (事前に ResourceOffering が設定されてない場合)
  1. テキストフィールドに IDP User DN を指定します。(例 id=idpuser,ou=user,dc=opensso,dc=java,dc=net)
  2. "Add PP Resource Offering" をクリックします。
  3. "Discovery Service Modification" ページが表示されますので、そのまま "Send Discovery Update Request" をクリックします。
  4. 結果が表示されます。
  5. "Return to index.jsp" をクリックします。
  6. "Send Discovery Lookup" をクリックします。
  7. "Discovery Service Query Sample"ページが表示されますので、そのまま "Send Discovery Lookup Request" をクリックします。
  8. 結果が表示され、先ほど追加した ResourceOffering が表示されているはずです。
  9. "Remove This PP Resource Offering from Discovery Service" をクリックします。
  10. "Discovery Service Modification" ページが表示されますので、そのまま "Send Discovery Update Request" をクリックします。
  11. 結果が表示されます。"Return to index.jsp" をクリックします。
  12. 再度、"Send Discovery Lookup" をクリックします。
  13. "Discovery Service Query Sample"ページが表示されますので、そのまま "Send Discovery Lookup Request" をクリックします。
  14. 今度は該当する ResourceOffering がないため、 "No ResourceOffering found." と表示されるはずです。

以下の手順は必須の設定ではありませんので、必要に応じて行ってください。:

1. 個人プロファイルサービスを照会したり更新したりする際にユーザーインタラクションを有効にする方法

  1. 次のコマンドを実行して、個人プロファイルサービスに対するすべての照会および更新アクションに対してポリシー評価を有効にします。

    • ssoadm set-attr-defs -s sunIdentityServerLibertyPPService -u amadmin -f admin_password_file_name -t Global -a "sunIdentityServerPPisQueryPolicyEvalRequired=true"

    • ssoadm set-attr-defs -s sunIdentityServerLibertyPPService -u amadmin -f admin_password_file_name -t Global -a "sunIdentityServerPPisModifyPolicyEvalRequired=true"

  2. 以下の手順で個人プロファイルサービス用のポリシーを作成します。

    • machine-A の OpenSSO のログインページにアクセスします:

      machine-A_protocol://machine-A_host:machine-A_port/machine-A_deploy_uri/UI/Login

      Top-Level 管理者 (デフォルトでは amadmin) でログインします。

    • 最上位のレルムをクリックします。

    • 「ポリシー」タブをクリックします。

    • 「新規ポリシー」をクリックします。

    • ポリシー名を入力します。

    • 「ルール」のところで「新規」をクリックします。

    • 「Liberty 個人プロファイルサービス (リソース名あり)」を選択し、「次へ」をクリックします。

    • 名前フィールドにルール名を入力します。

    • リソース名フィールドに * (アスタリスク) を入力します。

    • アクションのところで MODIFY と QUERY のチェックボックスを選択します。

    • それぞれ値のドロップダウンメニューから interactForConsent を選択し、「終了」をクリックします。

    • 対象のところで「新規」をクリックします。

    • 「認証済みユーザー」を選択し、「次へ」をクリックします。

    • 名前を入力し、「終了」をクリックします。

    • 「了解」をクリックしてポリシーを保存します。

    これで認証済みのユーザーだけが個人プロファイルサービスへのアクセスを許可され、個人プロファイルの照会や更新を試みると、
    「User Interaction Required」というページが表示されて、そこで照会や更新を許可するかどうかを選択できます。

2. ディスカバリブートストラップのセッションコンテキストで名前識別子の暗号化を有効にする方法

  1. machine-A で以下の手順を実行します。

    1. amadmin で OpenSSO にログインし、「Web サービス」タブをクリックし、「ディスカバリサービス」タブに移動します。

    2. 「プロバイダ ID」の値を machine-A_protocol://machine-A_host:machine-A_port/machine-A_deploy_uri と設定します。

    3. 「ブートストラップ用のセッションコンテキスト内での名前識別子の暗号化」の隣の有効チェックボックスをチェックし、「保存」をクリックします。

    4. 「ブートストラップのリソースオファリング」で「urn:liberty:disco:2003-08」をクリックします。

    5. 「サービス記述」の「urn:liberty:security:2003-08:null:null」の横の「編集」をクリックします。

    6. 「urn:liberty:security:2003-08:null:SAML」を選択可能リストから選んで「追加」をクリックします。「urn:liberty:security:2003-08:null:null」を選択リストから選んで、「削除」をクリックします。

    7. 「保存」をクリックします。

      「サービスインスタンス」の下にある「プロバイダ ID」の値を %SERVER_PROTO%://%SERVER_HOST%:%SERVER_PORT%%SERVER_URI% に変更します。

    8. 「AuthorizeRequester」のチェックボックスをチェックし、「urn:liberty:security:2003-08:null:SAML」を選択して、「保存」をクリックします。

    9. ディスカバリサービスのページでもう一度「保存」をクリックします。

    10. 「設定」タブに移動し、「グローバル」タブをクリックします。

    11. 「Liberty ID-WSF セキュリティーサービス」をクリックします。

    12. 「デフォルトの WSC 証明書エイリアス」、「信頼できる発行局の署名証明書エイリアス」、「信頼できる証明書発行局の署名証明書エイリアス」の値フィールドに「test」と入力し、保存します。

    13. 次のコマンドを実行してアイデンティティプロバイダのメタデータを削除します。

      ssoadm delete-entity -y machine-A_entityid -u amadmin -f admin_password_file_name -c metadata_spec

machine-A_entityid

プロバイダのエンティティ ID のフォーマットは machine-A_protocol://machine-A_host:machine-A_port/machine-A_deploy_uri です。
例) http://happy1.red.sun.com:8080/opensso-idp

metadata_spec

idffsaml2 のいずれかを指定できます。 ここでは idff を指定します。

    1. 次のコマンドを実行してサービスプロバイダのメタデータを削除します。

      ssoadm delete-entity -y machine-B_entityid -u amadmin -f admin_password_file_name -c metadata_spec

machine-B_entityid

プロバイダのエンティティ ID のフォーマットは machine-B_protocol://machine-B_host:machine-B_port/machine-B_deploy_uri です。
例) http://happy2.red.sun.com:8080/opensso-sp

metadata_spec

idffsaml2 のいずれかを指定できます。 ここでは idff を指定します。

    1. 次のコマンドを実行してアイデンティティプロバイダのメタデータファイルを作成します。

      ssoadm create-metadata-templ -u amadmin -f admin_password_file_name -y machine-A_entityid -m /tmp/idpm -x /tmp/idpx -i /idp -b test -g test -c idff

    2. /tmp/idpx ファイルを編集し、enableNameIDEncryption 属性の値を true にします。

    3. 次のコマンドを実行します。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m /tmp/idpm -x /tmp/idpx -t sampleidffcot -c idff

    4. ここまでの手順が完了したら、先に C の節に書かれているサービスプロバイダに対する設定を行ってください。
    5. machine-B で作成された /tmp/spm/tmp/spxmachine-A の /tmp ディレクトリにコピーし、 /tmp/spx を編集して、hosted の値を 0 にします。

    6. 次のコマンドを実行して machine-B からコピーしたメタデータファイルをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m /tmp/spm -x /tmp/spx -t sampleidffcot -c idff

  1. machine-B で以下の手順を実行します。

    1. 次のコマンドを実行してアイデンティティプロバイダのエンティティを削除します。

      ssoadm delete-entity -y machine-A_entityid -u amadmin -f admin_password_file_name -c idff

    2. 次のコマンドを実行してサービスプロバイダのエンティティを削除します。

      ssoadm delete-entity -y machine-B_entityid -u amadmin -f admin_password_file_name -c idff

    3. 次のコマンドを実行してサービスプロバイダのメタデータファイルを作成します。

      ssoadm create-metadata-templ -u amadmin -f admin_password_file_name -y machine-B_entityid -m /tmp/spm -x /tmp/spx -s /sp -a test -r test -c idff

    4. 次のコマンドを実行して作成したメタデータファイルをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m /tmp/spm -x /tmp/spx -t sampleidffcot -c idff

    5. machine-A で作成された /tmp/idpm/tmp/idpxmachine-B の /tmp ディレクトリにコピーし、/tmp/idpx の hosted の値を 0 にします。

    6. 次のコマンドを実行して、アイデンティティプロバイダのエンティティをトラストサークルにインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m /tmp/idpm -x /tmp/idpx -t sampleidffcot -c idff

  1. 両方のマシンで Web コンテナを再起動します。これで、ディスカバリブートストラップのセッションコンテキストで名前識別子の暗号化が有効になりました。

Q: SAML v1.x を使って署名をつけるにはどうすればよいですか?

SAML POST プロファイルを使うと自動的に署名がつけられます。
以下の手順では、SAML v1.x SAML アーティファクトプロファイルを用いて署名をつける方法を説明します。

  1. すべての SAML 応答に署名をつけるには、以下のコマンドを実行します。

    ssoadm set-attr-defs -s iPlanetAMSAMLService -t global -u amadmin -f admin_password_file_name --attributevalues iplanet-am-saml-signresponse=true -d

  2. すべての SAML 要求に署名をつけるには、以下のコマンドを実行します。

    ssoadm set-attr-defs -s iPlanetAMSAMLService -t global -u amadmin -f admin_password_file_name --attributevalues iplanet-am-saml-signrequest=true -d

  3. すべての SAML 表明に署名をつけるには、以下のコマンドを実行します。

    ssoadm set-attr-defs -s iPlanetAMSAMLService -t global -u amadmin -f admin_password_file_name --attributevalues iplanet-am-saml-signassertion=true -d

Q: Liberty ID-FF を使って署名をつけるにはどうすればよいですか?

以下の 2 点がどちらも満たされていれば、 Liberty ID-FF による署名は有効となっています。
もし、満たされていなければ 以下の手順に従って必要な変更を行い、web コンテナを再起動してください。

  • キーストアがホストプロバイダで設定されている。
    手順については キーストアの設定方法 を参照してください。

  • ホストプロバイダの標準メタデータ XML ファイルで、signingCertAlias 属性と KeyDescriptor 属性が適切に設定されている。

    確認方法:

    1. プロバイダ上で以下のコマンドを実行してください。

      ssoadm export-entity -y hosted_entity_id -u amadmin -f admin_password_file_name -m standard_metadata -x extended_metadata -c metadata_spec

hosted_entityid

プロバイダエンティティの ID を次のフォーマットで指定: protocol://host:port/deploy_uri
http://happy1.red.sun.com:8080/openfm

standard_metadata

標準メタデータがエクスポートされるファイル

extended_metadata

拡張メタデータファイルがエクスポートされるファイル

metadata_spec

idff または saml2。ここでは idff を指定します。

      extended_metadatasigningCertAlias の値が設定されていて、 standard_metadataKeyDescriptor の値が設定されていれば以降の作業を行う必要はありません。そうでない場合は、次の手順に進みます。

    1. ホストプロバイダでメタデータを再生成します。

      • ホストアイデンティティプロバイダで次のコマンドを実行します。

        ssoadm create-metadata-templ -y idp_entity_id -u amadmin -f admin_password_file_name -m standard_metadata -x extended_metadata -i idpMetaAlias -b idpSCertAlias -c metadata_spec

      • ホストサービスプロバイダで次のコマンドを実行します。

        ssoadm create-metadata-templ -y sp_entity_id -u amadmin -f admin_password_file_name -m standard_metadata -x extended_metadata -s spMetaAlias -a spSCertAlias -c metadata_spec

        必要に応じて拡張メタデータ属性も変更してください。 (例えば providerHomePageURL)

    2. ホストプロバイダで、次のコマンドを実行してメタデータを削除します。

      ssoadm delete-entity -y hosted_entity_id -u amadmin -f admin_password_file_name -e realm -c metadata_spec

    3. ホストプロバイダで、さきほど再生成および変更したメタデータ XML ファイルをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m standard_metadata -x extended_metadata -t cot_name -c metadata_spec

  • amadmin で OpenSSO にログインし、「設定」 -> 「Liberty ID-FF サービス」に移動し、 XML 署名のラジオボタンで「真」が選択されているか確認する。選択されていなければこの場で選択し、保存する。

  • リモートプロバイダの標準メタデータ XML ファイルで KeyDescriptor 属性が適切に設定されている。

    確認方法:

    1. ホストプロバイダ上で以下のコマンドを実行し、 リモートプロバイダの標準メタデータをエクスポートします。

      ssoadm export-entity -y remote_entity_id -u amadmin -f admin_password_file_name -m remote_standard_metadata -x remote_extended_metadata -c metadata_spec

    2. remote_standard_metadata ファイルを開いて、KeyDescriptor 属性に適切な値が入っているかを確認します。

      もし、値が入っていなければ、以下の手順を行います。

      • ホストプロバイダが動いているマシン上で、以下のコマンドを実行し、リモートプロバイダのメタデータを削除します。

        ssoadm delete-entity -y remote_entity_id -u amadmin -f admin_password_file_name -e realm -c metadata_spec

      • 標準メタデータファイルで、KeyDescriptor の値を設定した上で、以下のコマンドを実行してそれをホストプロバイダマシンにインポートします。

        ssoadm import-entity -u amadmin -f admin_password_file_name -m new_remote_standard_metadata -x remote_extended_metadata -t circle-of-trust_name -c metadata_spec

new_remote_standard_metadata

KeyDescriptor の値を追加した標準メタデータファイル

remote_extended_metadata

手順 1 でエクスポートしたときに生成された拡張メタデータファイル

      オプショナル: ホストサービスプロバイダ上で認証リクエストの署名を有効にするには、以下の手順に従ってホストサービスプロバイダの標準メタデータの確認(必要に応じて変更)を行ってください。

    1. 次のコマンドを実行してホストサービスプロバイダから標準メタデータと拡張メタデータをエクスポートします。

      ssoadm export-entity -y hosted_entity_id -u amadmin -f admin_password_file_name -m hosted_standard_metadata -x hosted_extended_metadata -c metadata_spec

    2. hosted_standard_metadataAuthnRequestsSigned の値が true になっていることを確認する。 true であればここで完了です。

      true になっていなければ、値を true に変更して、以下の手順に進みます。

    3. 次のコマンドを実行して、ホストプロバイダのメタデータを削除します。

      ssoadm delete-entity -y hosted_entity_id -u amadmin -f admin_password_file_name -e realm -c metadata_spec

    4. 次のコマンドを実行して、変更したメタデータをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m hosted_standard_metadata -x hosted_extended_metadata -c metadata_spec

Q: どのようにしてキーストアを設定したらよいですか?

Java Development Kit (JDK) に付属されている keytool コマンドを用いてキーストアを設定する方法について以下に示します。

  1. 次のコマンドを実行します:

    JDK Home/bin/keytool -genkey -keyalg rsa -alias test -dname "cn=sun-unix,ou=SUN Java System Access Manager,o=Sun, c=US" -keypass 11111111 -keystore keystore.jks -storepass 11111111
    コマンドにより生成された keystore.jks ファイルを <configuration_dir>/<deploy_uri> ディレクトリにコピーします。 ここで、 <configuration_dir> は OpenSSO を設定したときに指定した設定ディレクトリで <deploy_uri> は OpenSSO WAR ファイルを配備した URI です。

  2. キーストアのパスワードを暗号化するために、OpenSSO インスタンスの encode.jsp にアクセスします。

    server_protocol://server_host:server_port/server_deploy_uri/encode.jsp

    encode.jsp にアクセスするには事前に opensso.war が配備されている必要があります。また、amadmin などのユーザーで penSSO にログインする必要があります。

  3. テキストパスワードを入力し、「符号化」をクリックします。

    例えば、 11111111AQICQS+KlLm9oNd2l98bnkd7TraHI/cv8B1p になります。

  4. <configuration_dir>/<deploy_uri> ディレクトリに .storepass という名前で新しいファイルを作成し、キーストア用に符号化されたパスワードをコピー&ペーストします。

    上の例の場合、AQICQS+KlLm9oNd2l98bnkd7TraHI/cv8B1p.storepass に貼り付けます。

  5. <configuration_dir>/<deploy_uri> ディレクトリに .keypass という名前で新しいファイルを作成し、個人鍵(private key)用に符号化されたパスワードをコピー&ペーストします。

    上の例の場合、AQICQS+KlLm9oNd2l98bnkd7TraHI/cv8B1p.keypass に貼り付けます。

  6. Web コンテナを再起動します。

Q: SAML 1.x と ssoadm コマンドを使ってどのようにシングルサインオンを設定したらよいですか?

SAML 1.x を用いてシングルサインオンを実現するには、
SAML プロデューサの OpenSSO インスタンスと SAML コンシューマの OpenSSO インスタンスの両方で以下の手順を実行します。
ここでは例として、プロデューサインスタンスを配備したホストを hostA.example.com、コンシューマインスタンスを配備したホストを hostB.example.com とし、
それぞれ OpenSSO をポート 58080 に配備したものとします。
また、テスト用に両方の OpenSSO 上で amuser1 というアカウントを作成済みであるとします。


始める前に

  • 課題 4307で報告されているように、この機能は、OpenSSO Enterprise 8.0 リリース時点で動作しません。
    2009年1月23日以降にリリースされた安定版ビルド、もしくは最新のナイトリービルドを使用してください。
  • 2 つのホストが同じドメイン上にある場合は、双方の cookie 名が異なるように、片方の cookie 名を変更する必要があります。
    cookie 名を変更するには、OpenSSO コンソールにログインして、「設定」→「サーバーおよびサイト」へアクセスし、
    「デフォルトのサーバー設定値」をクリックして、「セキュリティ」タブにある「Cookie 名」の値を変更して、Application Server を再起動してください。

  1. コンシューマインスタンスに対して次のコマンドを実行し、サイト ID を取得します。

    ssoadm get-attr-defs -s iPlanetAMSAMLService -t global -u amadmin -f admin_password_file_name -a iplanet-am-saml-siteid-issuername-list

    例えばこのコマンドの出力が次のとおりだとします。

    iplanet-am-saml-siteid-issuername-list=instanceID=http://hostB.example.com:58080|siteid=VhqieajnHbbNX1usZkmnQLTxNeQ=|issuerName=hostB.example.com:58080

    siteid プロパティの値がサイト ID です。 この場合、VhqieajnHbbNX1usZkmnQLTxNeQ= です。

  2. 次の手順により、プロデューサインスタンスの SAML サービスに信頼パートナーエントリを設定します。

    1. 次のコマンドを実行して、既存の信頼パートナーを表示させます。

      ssoadm get-attr-defs -s iPlanetAMSAMLService -t global -u amadmin -f admin_password_file_name -a iplanet-am-saml-partner-urls

      出力は、たとえば次のようになります。(既存のパートナーが存在しない場合)

      iplanet-am-saml-partner-urls=

    2. パートナーの情報を partner.txt というファイルに記述します。

      ファイルには次の属性と対応する値を含めます。

      • partnername=partnername (ここには任意の値を指定できます。ここで指定した名前が、OpenSSO コンソール上で「信頼パートナー」テーブルの名前の欄に表示されます。)

      • target=partner_domain (パートナーとなるコンシューマホストのドメイン名)

      • sourceid=remote_siteid_from_previous_step (手順 1 で取得したサイト ID を指定する)

      • samlurl=protocol://partner_hostname:partner_port/uri/SAMLAwareServlet

      • posturl=protocol://partner_hostname:partner_port/uri/SAMLPOSTProfileServlet

      • hostlist=partner_hostname (パートナーのホスト名)

      例:

      iplanet-am-saml-partner-urls=partnername=samltest|target=example.com|sourceid=VhqieajnHbbNX1usZkmnQLTxNeQ=|samlurl=http://hostB.example.com:58080/opensso/SAMLAwareServlet|posturl=http://hostB.example.com:58080/opensso/SAMLPOSTProfileServlet|hostlist=hostB.example.com

      他の属性も必要に応じて設定します。

      • Version

      • Certalias

      • AuthType

      • authuser

      • authpassword

      • AttributeMapper

      • PartnerAccountMapper

      • SiteAttributeMapper

      • ActionMapper

      • nameidentifiermapper

      前の手順で作成したファイルをインポートします。

      ssoadm add-attr-defs -s iPlanetAMSAMLService -t global -u amadmin -f admin_password_file_name --datafile ./partner.txt

    3. ファイルがインポートされたことを確認するには、次のコマンドを実行します。

      ssoadm get-attr-defs -s iPlanetAMSAMLService -t global -u amadmin -f admin_password_file_name -a iplanet-am-saml-partner-urls

      例えば、出力は次のようになります。

      iplanet-am-saml-partner-urls=partnername=samltest|target=example.com|sourceid=VhqieajnHbbNX1usZkmnQLTxNeQ=|samlurl=http://hostB.example.com:58080/opensso/SAMLAwareServlet|posturl=http://hostB.example.com:58080/opensso/SAMLPOSTProfileServlet|hostlist=hostB.example.com
  3. 次に、手順 1 をプロデューサインスタンスに対して実行し、サイト ID を取得します。
  4. 次の手順により、コンシューマインスタンスの SAML サービスに信頼パートナーエントリを設定します。

    1. 次のコマンドを実行して、既存の信頼パートナーを表示させます。

      ssoadm get-attr-defs -s iPlanetAMSAMLService -t global -u amadmin -f admin_password_file_name -a iplanet-am-saml-partner-urls

      出力は、たとえば次のようになります。(既存のパートナーが存在しない場合)

      iplanet-am-saml-partner-urls=

    2. パートナーの情報を partner.txt というファイルに記述します。

      ファイルには次の属性と対応する値を含めます。

      • partnername=partnername (ここには任意の値を指定できます。ここで指定した名前が、OpenSSO コンソール上で「信頼パートナー」テーブルの名前の欄に表示されます。)

      • target=partner_domain (パートナーとなるプロデューサホストのドメイン名)

      • sourceid=remote_siteid_from_previous_step (手順 1 で取得したサイト ID を指定する)

      • soapurl=protocol://partner_hostname:partner_port/uri/SAMLSOAPReceiver

      • issuer=partner_hostname:port:partner_port (パートナーのホスト名:OpenSSOを配備したポート番号 を指定します。)

      例:

      iplanet-am-saml-partner-urls=partnername=samltest|sourceid=SaiueoHbbNX1usZkmnQLTxNeQ=|soapurl=http://hostA.example.com:58080/opensso/SAMLSOAPReceiver|issuer=host.exampleA.com:58080

      他の属性も必要に応じて設定します。

      • Version

      • Certalias

      • AuthType

      • authuser

      • authpassword

      • AttributeMapper

      • PartnerAccountMapper

      • SiteAttributeMapper

      • ActionMapper

      • nameidentifiermapper

      前の手順で作成したファイルをインポートします。

      ssoadm add-attr-defs -s iPlanetAMSAMLService -t global -u amadmin -f admin_password_file_name --datafile ./partner.txt

    3. ファイルがインポートされたことを確認するには、次のコマンドを実行します。

      ssoadm get-attr-defs -s iPlanetAMSAMLService -t global -u amadmin -f admin_password_file_name -a iplanet-am-saml-partner-urls

      例えば、出力は次のようになります。

      iplanet-am-saml-partner-urls=partnername=samltest|sourceid=SaiueoHbbNX1usZkmnQLTxNeQ=|soapurl=http://hostA.example.com:58080/opensso/SAMLSOAPReceiver|issuer=host.exampleA.com:58080
  5. SAML アーティファクトプロファイルまたは、SAML ポストプロファイルにアクセスするには、SAML プロデューサの OpenSSO にログインし、(ここでは、amuser1 でログインします。)

    1. SAML アーティファクトプロファイルにアクセスするには、以下の URL にアクセスします。

      protocol://hostname:port/uri/SAMLAwareServlet?TARGET=target_protocol://target_hostname:target_port/target_uri/UI/Login

      認証なしで SAML コンシューマにリダイレクトされます。

    2. SAML ポストプロファイルにアクセスするには、以下の URL にアクセスします。

      protocol://hostname:port/uri/SAMLPOSTProfileServlet?TARGET=target_protocol://target_hostname:target_port/target_uri/UI/Login

      認証なしで SAML コンシューマにリダイレクトされます。


      注意

      SAML ポストプロファイルにアクセスする前に、キーストアを設定する必要があります。 手順については、キーストアの設定方法を参照してください。


Q: Liberty ID-FF と ssoadm コマンドを使ってどのようにシングルサインオンを設定したらよいですか?

Liberty ID-FF と ssoadm コマンドを用いてシングルサインオンを設定するには、
以下の手順をアイデンティティプロバイダ用の OpenSSO インスタンスとサービスプロバイダ用の OpenSSO インスタンスの両方で実行します。

  1. 次のコマンドを実行してトラストサークルを作成します。

    ssoadm create-cot -t cot_name -u amadmin -f admin_password_file_name -e realm

cot_name

作成するサークル名

realm

サークルを作成するレルム

  1. ホストアイデンティティプロバイダとホストサービスプロバイダに対して、以下のいずれかの手順により標準メタデータファイルと拡張メタデータファイルを生成します。

    • キーストアを設定しているかどうかによって、以下のどちらかのコマンドを実行してホストアイデンティティプロバイダ用のメタデータを生成します。

      1. キーストアをすでに設定している場合 :

        ssoadm create-metadata-templ -y idp_entity_id -u amadmin -f admin_password_file_name -m hosted_standard_metadata -x hosted_extended_metadata -i idpMetaAlias -b idpSCertAlias -c metadata_spec

idp_entity_id

プロバイダのエンティティ ID を次の形式で指定します。 protocol://host:port/deploy_uri
例、http://happy.red.sun.com:80/openfm

hosted_standard_metadata

生成する標準メタデータ XML ファイルのパスとファイル名を指定します。

hosted_extended_metadata

生成する拡張メタデータ XML ファイルのパスとファイル名を指定します。

idpMetaAlias

ここで指定したものが、ホストアイデンティティプロバイダ用のメタエイリアスとして作成されます。

idpSCertAlias

ホストアイデンティティプロバイダ用にキーストアを設定した際に指定した署名証明書エイリアス

metadata_spec

idff または saml2; ここでは idff です。

      1. キーストアを設定していない場合

        ssoadm create-metadata-templ -y idp_entity_id -u amadmin -f admin_password_file_name -m hosted_standard_metadata -x hosted_extended_metadata -i idpMetaAlias -c metadata_spec

    • キーストアを設定しているかどうかによって、以下のどちらかのコマンドを実行してホストサービスプロバイダ用のメタデータを生成します。

      1. キーストアをすでに設定している場合 :

        ssoadm create-metadata-templ -y sp_entity_id -u amadmin -f admin_password_file_name -m hosted_standard_metadata -x hosted_extended_metadata -s spMetaAlias -b spSCertAlias -c metadata_spec

sp_entity_id

プロバイダのエンティティ ID を次の形式で指定します。 protocol://mhost:port/deploy_uri
例、 http://happy.red.sun.com:80/openfm

hosted_standard_metadata

生成する標準メタデータ XML ファイルのパスとファイル名を指定します。

hosted_extended_metadata

生成する拡張メタデータ XML ファイルのパスとファイル名を指定します。

spMetaAlias

ここで指定したものが、ホストサービスプロバイダ用のメタエイリアスとして作成されます。

spSCertAlias

ホストサービスプロバイダ用にキーストアを設定した際に指定した署名証明書エイリアス

metadata_spec

idff または saml2; ここでは idff です。

      1. キーストアを設定していない場合

        ssoadm create-metadata-templ -y sp_entity_id -u amadmin -f admin_password_file_name -m hosted_standard_metadata -x hosted_extended_metadata -s spMetaAlias -c metadata_spec

  1. リモートプロバイダで生成された標準メタデータと拡張メタデータをホストプロバイダ側にコピーします。

    ホストプロバイダがアイデンティティプロバイダであれば、リモートプロバイダはサービスプロバイダです。
    逆に、ホストプロバイダがサービスプロバイダであれば、リモートプロバイダはアイデンティティプロバイダです。

    次のコマンドを実行してホストプロバイダのメタデータをインポートします。

    ssoadm import-entity -u amadmin -f admin_password_file_name -m hosted_standard_metadata -x hosted_extended_metadata -t cot_name -c metadata_spec

    cot_name の値には手順 1 で作成したトラストサークル名を指定します。

  2. 次のコマンドを実行してリモートプロバイダのメタデータをインポートします。

    ssoadm import-entity -u amadmin -f admin_password_file_name -m remote_standard_metadata -t cot_name -c metadata_spec

    cot_name の値には手順 1 で作成したトラストサークル名を指定します。

  3. Web コンテナを再起動します。

Q: SAML v2 と ssoadm コマンドを使ってどのようにシングルサインオンを設定したらよいですか?

SAML v2 を用いてシングルサインオンを実現するには、アイデンティティプロバイダ用の OpenSSO インスタンスとサービスプロバイダ用の OpenSSO インスタンス上で以下の手順を行います。


始める前に

サービスプロバイダ用のインスタンスとアイデンティティプロバイダ用のインスタンスを決めておきます。
ここでは、例として、http://sp.example.net:8080/opensso-sp をサービスプロバイダ、 http://idp.example.com:8080/opensso-idp をアイデンティティプロバイダとします。


  1. サービスプロバイダのメタデータファイルを作成します。

    1. サービスプロバイダインスタンス上で以下のコマンドを実行して、サービスプロバイダメタデータファイルを作成します。

      ssoadm create-metadata-templ -y http://sp.example.net:8080/opensso-sp -u amadmin -f admin_password_file_name -m sp_standard_metadata -x sp_extended_metadata -s sp_meta_alias

    2. 必要に応じて sp_extended_metadata ファイル内の属性のデフォルト値を変更してください。

  2. アイデンティティプロバイダのメタデータファイルを作成します。

    1. アイデンティティプロバイダインスタンス上で以下のコマンドを実行して、アイデンティティプロバイダメタデータファイルを作成します。

      ssoadm create-metadata-templ -y http://idp.example.com:8080/opensso-idp -u amadmin -f admin_password_file_name -m idp_standard_metadata -x idp_extended_metadata -i idp_meta_alias

    2. 必要に応じて idp_extended_metadata ファイル内の属性のデフォルト値を変更してください。

  3. メタデータファイルをサービスプロバイダインスタンスにインポートします。

    1. 次のコマンドを実行して、サービスプロバイダインスタンス上にトラストサークルを作成します。

      ssoadm create-cot -t cot_name -u amadmin -f admin_password_file_name

    2. 次のコマンドを実行して、先ほど作成したトラストサークルにサービスプロバイダメタデータファイルをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m sp_standard_metadata -x sp_extended_metadata -t cot_name

    3. idp_standard_metadata をアイデンティティプロバイダインスタンスからサービスプロバイダインスタンスにコピーします。

    4. 次のコマンドを実行して、サービスプロバイダインスタンスにアイデンティティプロバイダメタデータファイルをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m idp_standard_metadata -t cot_name

    5. インポートが成功したことを確認するには、次のコマンドを実行します。

      ssoadm list-cot-members -u amadmin -f admin_password_file_name -t cot_name

      指定したトラストサークルに含まれるメンバーがすべて表示されます。
      この場合は、http://idp.example.com:8080/opensso-idp と http://sp.example.net:8080/opensso-sp が表示されます。
      また、次のコマンドを実行してメタデータファイルをエクスポートすることで確認することもできます。

      ssoadm export-entity -u amadmin -f admin_password_file_name -y http://sp.example.net:8080/opensso-sp -m provider_standard_metadata -x provider_extended_metadata

    6. Web コンテナを再起動します。

  4. メタデータファイルをアイデンティティプロバイダインスタンスにインポートします。

    1. 次のコマンドを実行して、アイデンティティプロバイダインスタンス上にトラストサークルを作成します。

      ssoadm create-cot -t cot_name -u amadmin -f admin_password_file_name

    2. 次のコマンドを実行して、先ほど作成したトラストサークルにアイデンティティプロバイダメタデータファイルをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m idp_standard_metadata -x idp_extended_metadata -t cot_name

    3. sp_standard_metadata ファイルをサービスプロバイダインスタンスからアイデンティティプロバイダインスタンスにコピーします。

    4. 次のコマンドを実行して、アイデンティティプロバイダインスタンスにサービスプロバイダメタデータファイルをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m sp_standard_metadata -t cot_name

    5. インポートが成功したことを確認するには、次のコマンドを実行します。

      ssoadm list-cot-members -u amadmin -f admin_password_file_name -t cot_name

      指定したトラストサークルに含まれるメンバーがすべて表示されます。
      この場合は、http://idp.example.com:8080/opensso-idp と http://sp.example.net:8080/opensso-sp が表示されます。
      また、次のコマンドを実行してメタデータファイルをエクスポートすることで確認することもできます。

      ssoadm export-entity -u amadmin -f admin_password_file_name -y http://idp.example.com:8080/opensso-idp -m provider_standard_metadata -x provider_extended_metadata

    6. Web コンテナを再起動します。

  5. シングルサインオンを確認するには次の URL にアクセスします。 :

    1. サービスプロバイダインスタンスからシングルサインオンを開始するには次の URL にアクセスします。 :

      http://sp.example.net:8080/opensso-sp/spssoinit?metaAlias=spMetaAlias&idpEntityID=http://idp.example.com:8080/opensso-idp

    2. アイデンティティプロバイダインスタンスからシングルサインオンを開始するには次の URL にアクセスします。

      http://idp.example.net:8080/opensso-idp/idpssoinit?metaAlias=idpMetaAlias&spEntityID=http://sp.example.com:8080/opensso-sp

    まず最初に、連携を確立するためにサービスプロバイダとアイデンティティプロバイダに有効なユーザーでログインする必要があります。
    例えば、a の場合、

    1. 上記の URL にアクセスすると、 http://idp.example.net:8080/opensso-idp のログインページが表示されるので、
      例えば、あらかじめ作っておいたユーザー idpuser でログインします。
    2. 次に、http://sp.example.net:8080/opensso-sp のログインページが表示されるので、
      同じくあらかじめ作っておいたユーザー spuser でログインします。
    3. これで、idpuser と spuser の連携が確立され、これ以降はシングルサインオンでのログインが可能となります。
    4. 試しに、いったんブラウザを再起動し、 http://sp.example.net:8080/opensso-sp/samples/saml2/useCaseDemo/home.jsp にアクセスしてみます。
    5. "Login" のリンクをクリックすると、http://idp.example.net:8080/opensso-idp のログインページが表示されるので、idpuser でログインします。
    6. サービスプロバイダのページが表示されて、spuser でログインに成功したことを示すメッセージが表示されるはずです。
      この結果からシングルサインオンに成功したことがわかります。

Q: SAML v2 を使って署名をつけて暗号化するにはどう設定したらよいですか?

以下の手順では、SAML v2 を使って署名をつけて暗号化を有効にする方法について説明します。


始める前に

keytool コマンドを用いて、サービスプロバイダとアイデンティティプロバイダ上でキーストアを設定します。
詳細については、 キーストアの設定方法を参照してください。

キーストアを設定したら、再度、 keytool コマンドを用いて適切な署名と暗号化の証明書をキーストアにインポートします。


  1. サービスプロバイダ上で次のコマンドを実行して、 サービスプロバイダのメタデータを再生成します。
    (署名と暗号化鍵の情報を含めます。)

    ssoadm create-metadata-templ -y sp_entityid -u amadmin -f admin_password_file_name -m sp_standard_metadata -x sp_extended_metadata -s sp_metaAlias -a sp_certalias -r sp_enc_alias

  2. アイデンティティプロバイダ上で次のコマンドを実行して、 アイデンティティプロバイダのメタデータを再生成します。
    (署名と暗号化鍵の情報を含めます。)

    ssoadm create-metadata-templ -y idp_entityid -u amadmin -f admin_password_file_name -m idp_standard_metadata -x idp_extended_metadata -i idp_metaAlias -b idp_certalias -g idp_enc_alias

  3. それぞれ生成されたファイルを編集して、署名と暗号化を有効にするために以下の属性の値を true にします。

    • idp_standard_metadata

      • WantAuthnRequestsSigned

    • sp_standard_metadata

      • AuthnRequestsSigned

      • WantAssertionsSigned

    • idp_extended_metadata

      • wantNameIDEncrypted

      • wantArtifactResolveSigned

      • wantLogoutRequestSigned

      • wantLogoutResponseSigned

      • wantMNIRequestSigned

      • wantMNIResponseSigned

    • sp_extended_metadata

      • wantAttributeEncrypted

      • wantAssertionEncrypted

      • wantNameIDEncrypted

      • wantArtifactResponseSigned

      • wantLogoutRequestSigned

      • wantLogoutResponseSigned

      • wantMNIRequestSigned

      • wantMNIResponseSigned


    NOTE

    SAML POST プロファイルを使用するには、署名を有効にする必要があります。 SAML Artifact プロファイルを使用すると署名は自動的に有効になります。


  4. 以下の手順を実行してサービスプロバイダから既存のメタデータ(が存在する場合)を削除し、新たに生成したメタデータをインポートします。

    • 以下のコマンドを実行して既存のサービスプロバイダメタデータを削除します。

      ssoadm delete-entity -y sp_entityid -u amadmin -f admin_password_file_name

    • 以下のコマンドを実行して既存のアイデンティティプロバイダメタデータを削除します。

      ssoadm delete-entity -y idp_entityid -u amadmin -f admin_password_file_name

    • 以下のコマンドを実行して、先ほど作成し編集したサービスプロバイダメタデータをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m sp_standard_metadata -x sp_extended_metadata -t cot_name

    • アイデンティティプロバイダから、先ほど作成し編集した新しいメタデータファイル( idp_standard_metadata と >idp_extended_metadata)をサービスプロバイダにコピーします。

    • コピーしてきた idp_extended_metadata を編集し、hosted="1"hosted="0" に変更します。

    • 以下のコマンドを実行して変更を加えたアイデンティティプロバイダのメタデータをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m idp_standard_metadata -x idp_extended_metadata -t cot_name

  5. 以下の手順を実行してアイデンティティプロバイダから既存のメタデータ(が存在する場合)を削除し、新たに生成したメタデータをインポートします。

    • 以下のコマンドを実行して既存のアイデンティティプロバイダメタデータを削除します。

      ssoadm delete-entity -y idp_entityid -u amadmin -f admin_password_file_name

    • 以下のコマンドを実行して既存のサービスプロバイダメタデータを削除します。

      ssoadm delete-entity -y sp_entityid -u amadmin -f admin_password_file_name

    • 以下のコマンドを実行して、先ほど作成し編集したアイデンティティプロバイダメタデータをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m idp_standard_metadata -x idp_extended_metadata -t cot_name

    • サービスプロバイダから、先ほど作成し編集した新しいメタデータファイル(sp_standard_metadatasp_extended_metadata) をアイデンティティプロバイダにコピーします。

    • コピーしてきた sp_extended_metadata を編集し、hosted="1"hosted="0" に変更します。

    • 以下のコマンドを実行して変更を加えたサービスプロバイダのメタデータをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m sp_standard_metadata -x sp_extended_metadata -t cot_name

  6. 両プロバイダの Web コンテナを再起動します。

  7. シングルサインオンを確認するには次の URL にアクセスします。 :

    • サービスプロバイダインスタンスからシングルサインオンを開始するには次の URL にアクセスします。

      sp_protocol://sp_host:sp_port/sp_deploy_URI/spssoinit?metaAlias=spMetaAlias&idpEntityID=idp_entityID

    • アイデンティティプロバイダインスタンスからシングルサインオンを開始するには次の URL にアクセスします。

      idp_protocol://idp_host:idp_port/idp_deploy_URI/idpssoinit?metaAlias=idpMetaAlias&spEntityID=sp_entityID

    最初に、連携を確立するためにサービスプロバイダとアイデンティティプロバイダにログインする必要があります。その後は、ホストプロバイダでログインすると、認証手続きなしでリモートプロバイダにログインすることができます。

Q: 認証 Web サービスを用いた認証を設定するにはどうしたらよいですか?

以下の手順では、認証 Web サービスを用いた認証を設定する方法を説明します。

  1. 次のコマンドを実行して、認証 Web サービス属性の現在の値を取得します。

    ssoadm get-attr-defs -s sunIdentityServerAuthnService -u amadmin -f admin_password_file_name -t Global -a MechanismHandlerList

  2. コマンドの出力結果から、 MechanismHandlerList= で始まる行をすべてコピーし、ファイルに保存します。

    ここでは、このファイル名を datafile とします。

  3. datafile を編集して、既存のハンドラクラスを変更したり、新しいものを追加します。

    MechanismHandlerList 属性の値は key=mechanism_name|class=handler_class_for_mechanism_specified_in_key という形式で設定します。

  4. 次のコマンドを実行して MechanismHandlerList 属性の値を変更します。

    ssoadm set-attr-defs -s sunIdentityServerAuthnService -u amadmin -f admin_password_file_name -t Global -D datafile

Q: X509、Bearer および SAML トークンを発行するのにディスカバリサービスをどのように設定したらよいですか?

以下の手順では、X509、Bearer および SAML トークンを発行するために、ディスカバリサービスを設定する方法について説明します。


始める前に

Liberty ID-FF サンプルの設定および実行手順 に従って、アイデンティティプロバイダとサービスプロバイダのインスタンスを設定し、
キーストアの設定方法 に従って、各インスタンスにキーストアを設定してください。


  1. アイデンティティプロバイダのマシン上での手順:

    1. 次のコマンドを実行して、ディスカバリサービス属性の現在の値を取得します。

      ssoadm get-attr-defs -s sunIdentityServerDiscoveryService -u amadmin -f admin_password_file_name -t Global -a sunIdentityServerBootstrappingDiscoEntry

    2. コマンドの出力結果から、 sunIdentityServerBootstrappingDiscoEntry= で始まる行をすべてコピーし、ファイルに保存します。

      ここでは、このファイル名を datafile とします。

    3. datafile を編集し、各トークンについて設定します。

      • SAML トークンについては、次のように変更します。

        <SecurityMechID>urn:liberty:security:2003-08:null:null</SecurityMechID>

        <SecurityMechID>urn:liberty:security:2003-08:null:SAML</SecurityMechID>

        に変更します。さらに、

        </ResourceOffering></DiscoEntry>

        </ResourceOffering><AuthorizeRequester xmlns="urn:liberty:disco:2003-08"/></DiscoEntry> に変更します。

      • X509 トークンについては、次のように変更します。

        <SecurityMechID>urn:liberty:security:2003-08:null:null</SecurityMechID>

        <SecurityMechID>urn:liberty:security:2003-08:null:X509</SecurityMechID> に変更します。

      • Bearer トークンについては、次のように変更します。

        <SecurityMechID>urn:liberty:security:2003-08:null:null</SecurityMechID>

        <SecurityMechID>urn:liberty:security:2004-04:null:Bearer</SecurityMechID>

        に変更します。さらに、

        </ResourceOffering></DiscoEntry>

        </ResourceOffering><AuthenticateRequester xmlns="urn:liberty:disco:2003-08"/><GenerateBearerToken xmlns="urn:liberty:disco:2004-04"/></DiscoEntry> に変更します。

    4. 属性の値を変更するために、datafile を入力ファイルとして用いて、次のコマンドを実行します。

      ssoadm set-attr-defs -s sunIdentityServerDiscoveryService -u amadmin -f admin_password_file_name -t Global -D datafile

    5. 最上位管理者(amAdmin)でコンソールにログインして、「設定」 -> 「グローバル」 -> 「Liberty ID-WSF セキュリティサービス」に移動し、
      次のプロパティーの値を編集します。(test と設定します。)

      • 「信頼できる発行局の署名証明書エイリアス」 : test

      • 「デフォルトの WSC 証明書エイリアス」 : test

      • 「信頼できる証明書発行局の署名証明書エイリアス」 : test

      test はサンプルの値です。

    6. 次のコマンドを実行して、既存のアイデンティティプロバイダ(があれば)を削除します。

      ssoadm delete-entity -y idp_entityid -u amadmin -f admin_password_file_name -c metadata_spec

idp_entityid

プロバイダのエンティティ ID を次の形式で指定します。 protocol://host:port/deploy_uri
http://happy.red.sun.com:80/openfm

metadata_spec

idff または saml2 を指定します。 この場合は、idff です。

    1. 次のコマンドを実行してリモートのサービスプロバイダのエンティティを削除します。

      ssoadm delete-entity -y remote_sp_entityid -u amadmin -f admin_password_file_name -c metadata_spec

remote_sp_entityid

プロバイダのエンティティ ID を次の形式で指定します。 protocol://host:port/deploy_uri
例、 http://happy.red.sun.com:80/openfm

metadata_spec

idff または saml2 を指定します。 この場合は、idff です。

    1. 次のコマンドを実行して、アイデンティティプロバイダ用の標準メタデータファイルと拡張メタデータファイルを作成します。

      ssoadm create-metadata-templ -u amadmin -f admin_password_file_name -y idp_entityid -m standard_metadata -x extended_metadata -i idpMetaAlias -b idpSCertAlias -c metadata_spec

idp_entityid

プロバイダのエンティティ ID を次の形式で指定します。 protocol://host:port/deploy_uri
例、 http://happy.red.sun.com:80/openfm

standard_metadata

生成する標準メタデータ XML ファイルのパスとファイル名を指定します。

extended_metadata

生成する拡張メタデータ XML ファイルのパスとファイル名を指定します。

idpMetaAlias

ここで指定したものが、ホストアイデンティティプロバイダ用のメタエイリアスとして作成されます。

idpSCertAlias

ホストアイデンティティプロバイダ用にキーストアを設定した際に指定した署名証明書エイリアス

metadata_spec

idff または saml2 を指定します。 この場合は、idff です。

    1. 次のコマンドを実行して、すでに設定済みのトラストサークルに新しいメタデータファイルをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m standard_metadata -x extended_metadata -t cot_name -c metadata_spec

    1. サービスプロバイダから標準メタデータファイル (後で説明するサービスプロバイダ上での手順により生成されたファイル) をアイデンティティプロバイダのマシンの /tmp ディレクトリにコピーします。

    2. 次のコマンドを実行してリモートのサービスプロバイダのメタデータファイルをトラストサークルにインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m standard_metadata -t cot_name -c metadata_spec

    1. Web コンテナを再起動します。

  1. サービスプロバイダのマシン上での手順

    1. 次のコマンドを実行して既存のサービスプロバイダのエンティティがあれば削除します。

      ssoadm delete-entity -y sp_entityid -u amadmin -f admin_password_file_name -c metadata_spec

    2. 次のコマンドを実行して、リモートのアイデンティティプロバイダのエンティティを削除します。

      ssoadm delete-entity -y idp_entityid -u amadmin -f admin_password_file_name -c metadata_spec

    3. 次のコマンドを実行して、サービスプロバイダ用の標準メタデータファイルと拡張メタデータファイルを作成します。

      famadm create-metadata-templ -u amadmin -f admin_password_file_name -y sp_entityid -m standard_metadata -x extended_metadata -s spMetaAlias -a spSCertAlias -c metadata_spec

    4. 次のコマンドを実行して、すでに設定済みのトラストサークルに新しいメタデータファイルをインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m standard_metadata -x extended_metadata -t cot_name -c metadata_spec

    5. アイデンティティプロバイダから標準メタデータファイル (アイデンティティプロバイダ上での手順により生成されたファイル) をサービスプロバイダのマシンの /tmp ディレクトリにコピーします。

    6. 次のコマンドを実行してリモートのアイデンティティプロバイダのメタデータファイルをトラストサークルにインポートします。

      ssoadm import-entity -u amadmin -f admin_password_file_name -m standard_metadata -t cot_name -c metadata_spec

    7. 最上位管理者(amAdmin)でコンソールにログインして、「設定」 -> 「グローバル」 -> 「Liberty ID-WSF セキュリティサービス」に移動し、
      「デフォルトの WSC 証明書エイリアス」に適切な証明書エイリアスを設定します。
      この証明書エイリアスは、Web サービスクライアント用に X509 トークンが生成される際に使用されます。

    8. Web コンテナを再起動します。

Q: ssoadm コマンドを使ってポリシー Agents 3.0 のプロファイルを設定するにはどのようにしたらよいですか?

手順例がこちらのブログ(日本語)に記載されてますので参考にしてください。

Q: フェイルオーバーを行うには OpenSSO 設定データストアをどのように設定したらよいですか?

DocTeger 氏のブログエントリ The OpenSSO Bootstrap File Deconstructed(英語) を参考にしてください。

Q: AIX 上で Websphere 6.1 にどのようにして OpenSSO を配備したらよいですか?

DocTeger 氏のブログエントリ Deploying OpenSSO on WebSphere 6.1 AIX(英語) を参考にしてください。

Q: アイデンティティー Web サービスを用いて OpenSSO 上でどのように認証を設定したらよいですか?

ソフトウェアアーキテクトである Aravindan Ranganathan 氏の記事 Securing Applications with Identity Services, Part 1: Authentication(英語) を参考にしてください。

Q: アイデンティティー Web サービスを用いて OpenSSO 上でどのように認可を設定したらよいですか?

ソフトウェアアーキテクトである Aravindan Ranganathan 氏の記事 Securing Applications with Identity Services, Part 2: Authorization(英語) を参考にしてください。

Q: SAMLv2 IDP プロキシをどのように設定したらよいですか?

DocTeger 氏のブログエントリ Setting Up a SAMLv2 IDP Proxy(英語)を参考にしてください。

Q: configurator.jsp を用いずに OpenSSO を設定するにはどのようにしたらよいですか?

DocTeger 氏のブログエントリ Configuring OpenSSO without configurator.jsp (英語) を参考にしてください。
Linux や Windows 環境で行う場合は、このブログエントリのコメント欄の最初に書かれている説明書きに留意してください。