シングル・サインオン (SSO) パートナーの構成
WebSphere® Application Server を IdPが開始したシングル・サインオン用の ID プロバイダー (IdPs) のサービス・プロバイダー・パートナーとして使用するには、 WebSphere Application Server SAML サービス・プロバイダーと外部 SAML ID プロバイダーの間に協力関係を確立する必要があります。
事前処理
このタスクでは、 SAML Web SSO 機能を有効にしていることを前提としています。
手順
- シングル・サインオン用の IdP SAML サービス・プロバイダーを追加します。
以下のいずれかのトピックのステップを実行します。
- SAML トラストストアへの IdP 署名者証明書の追加
SAML IdP メタデータ・ファイルから SAML IdP 署名者証明書を抽出するか、 IdP 管理者から証明書ファイルを取得してから、SAML アサーション署名者証明書をインポートします。
- メタデータ・ファイルを使用した SAML IdP の追加
AdminTask.importSAMLIdpMetadata wsadmin コマンドを実行して、SAML IdP メタデータ・ファイルをインポートし、 IdP 情報を SAML TAI 構成に追加します。
コマンドの実行中にエラーが発生した場合は、代わりに、もう一方のトピック「 SAML トラストストアへの IdP 署名者証明書の追加」の手順を実行する必要があります。
IdP を SAML サービス・プロバイダーに追加した後、このトピックに戻り、 ステップ 2に進みます。
- SAML トラストストアへの IdP 署名者証明書の追加
- アプリケーションが IdP。 以下のいずれかのアクションを実行します。
- アプリケーションが元のレルム名を認識する必要がない場合は、サブジェクトの作成時に使用するコア・セキュリティー用に SAML TAI が指定するレルム名をハードコーディングすることができます。
- 「セキュリティー」 > 「グローバル・セキュリティー」をクリックします。
- 「ユーザー・アカウント・リポジトリー」の下で、 「レルム名」 フィールドからレルム名を取得します。
sso_<id>.sp.useRealm
SAML TAI プロパティーを、前のステップで取得したレルム名に設定します。
- アプリケーションがサブジェクト内の元のレルム名にアクセスできる必要がある場合は、ID プロバイダーが使用するすべてのレルムにインバウンド・トラストを付与します。
WebSphere Application Server サービス・プロバイダーで使用される ID プロバイダーごとに、管理コンソールまたは
wsadmin
コマンド・ユーティリティーのいずれかを使用してインバウンド・トラストを付与できます。管理コンソールを使用してインバウンド・トラストを追加します。
- 「Global security」をクリックします。
- ユーザー・アカウント・リポジトリーの下で、「構成」をクリックします。
- 「トラステッド認証レルム - インバウンド」をクリックします。
- 「外部レルムの追加」をクリックします。
- 「OK」 をクリックし、 「変更をマスター構成に保存します」をクリックします。
wsadmin
コマンド行ユーティリティーを使用して、インバウンド・トラストを追加します。- インバウンド・トラストに単一の ID プロバイダーを追加するには、 realmName にインバウンド・トラストを付与する必要があるレルムの名前を指定して、 addTrustedRealms コマンドを使用します。
AdminTask.addTrustedRealms('[-communicationType inbound -realmList realmName]')
- インバウンド・トラストにレルムのリストを追加するには、
realm1
、realm2
、およびrealm3
トラステッド・レルムとして追加する必要があるレルムを指定して、 addTrustedRealms コマンドを使用します。AdminTask.addTrustedRealms('[-communicationType inbound -realmList realm1|realm2|realm3]')
- インバウンド・トラストに単一の ID プロバイダーを追加するには、 realmName にインバウンド・トラストを付与する必要があるレルムの名前を指定して、 addTrustedRealms コマンドを使用します。
- アプリケーションが元のレルム名を認識する必要がない場合は、サブジェクトの作成時に使用するコア・セキュリティー用に SAML TAI が指定するレルム名をハードコーディングすることができます。
- オプション:
sso_<id>.sp.idMap
、sso_<id>.sp.groupMap
、およびsso_<id>.sp.groupName
属性を使用して、 WebSphere Application Server セキュリティー・コンテキストを構成します。WebSphere Application Server サービス・プロバイダーは、ID プロバイダーからの SAML プロトコル・メッセージをインターセプトし、セキュリティー・コンテキストを確立します。 SAML アサーションをマップすることで、セキュリティー・コンテキストが作成されます。 サービス・プロバイダーでのセキュリティー・コンテキスト・マッピングは非常に柔軟であり、構成可能です。 以下に、使用可能なマッピング・オプションのリストを示します。
- idAssertion
- ローカル・レジストリーを使用せずに、SAML アサーションを WebSphere Application Server プラットフォーム・サブジェクトにマップします。 これはデフォルト動作です。 このデフォルトの実装では、SAML
NameID
はプリンシパルにマップされ、発行者はレルムにマップされます。また、選択した属性は、グループ・メンバーにマップできます。 ID アサーションはさらにカスタマイズできます。 例えば、プリンシパル、レルム、accessID、またはグループ・メンバーのリストとして SAML 属性を構成できます。 また、NameID
のNameQualifier
をレルムとして構成したり、事前定義のレルム名を使用したりすることもできます。 - localRealm
- SAML アサーションからの
NameID
をサービス・プロバイダーのローカル・レジストリーにマップするように WebSphere Application Server サービス・プロバイダーを構成し、レジストリーからサブジェクトを作成します。 このオプションを使用すると、レジストリーに照らして SAMLNameID
を直接検索するか、アサーションのカスタム・マッピングのプラグイン・ポイントを使用してから、新しいマップされた ID を使用してレジストリーからサブジェクトを作成できます。 - localRealmThenAssertion
NameID
をレジストリーにマップし、NameID
をレジストリーにマップできない場合は、ID アサーションにフォールバックします。- AddGroupsFromLocalRealm
- ID アサーションとローカル・レジストリーを結合します。 このオプションを使用すると、ID アサーションの実行中にグループ・メンバーシップを再評価できます。 グループ属性
X-ray Techs
を持つユーザーJoe
が含まれた、パートナー・ラボからの SAML アサーションについて考えてみます。 サービス・プロバイダーで、グループX-ray Techs
はグループTechnicians
のサブグループですが、Joe
はサービス・プロバイダーのユーザー・レジストリーに必ずしも存在しているとは限りません。 サービス・プロバイダー・アプリケーションの許可ポリシーでは、Technicians
グループにアクセスが許可されています。 これを実現するために、SAML TAI は、表明されたグループX-ray Techs
をレジストリーで検索してから、親グループTechnicians
をサブジェクトに含める必要があります。
ID アサーションを実行してセキュリティー・コンテキストを作成する際に、カスタム・セキュリティー・レルムが選択されます。 カスタム・レルムをトラステッド・レルムとして明示的に追加する必要があります。 デフォルトの ID アサーション実装では、SAML 発行者名がセキュリティー・レルムとして使用されます。 現在のユーザー・レジストリー内でインバウンド・トラステッド認証レルムのリストに発行者名を明示的に追加する必要があります。 インバウンド・トラステッド・レルムにカスタム・レルムを追加すると、このカスタム・レルムを使用したロール・マッピングを実行する準備ができています。
カスタム・レルムをトラステッド・レルムとして追加するには、ステップ『インバウンド・トラステッド・レルムのリストに IdP レルムを追加します』を参照してください。
- WebSphere Application Server SAML サービス・プロバイダーを SSO の ID プロバイダーに追加します。
WebSphere Application Server サービス・プロバイダーで使用される各 ID プロバイダーは、SSO パートナーとしてサービス・プロバイダーを追加するように構成する必要があります。 サービス・プロバイダー・パートナーを ID プロバイダーに追加する手順は、特定の ID プロバイダーに依存します。 SSO 用にサービス・プロバイダー・パートナーを追加する方法については、ID プロバイダーの資料を参照してください。
WebSphere Application Server サービス・プロバイダー・メタデータをエクスポートして ID プロバイダーにインポートすることも、ID プロバイダーを手動で構成してサービス・プロバイダーを追加することもできます。
統合パートナーとしてサービス・プロバイダーを ID プロバイダーに追加するには、サービス・プロバイダーのアサーション・コンシューマー・サービス (ACS) の URL を指定する必要があります。これは、SAML トラスト・アソシエーション・インターセプター (TAI) を使用可能にする際に使用される
-acsUrl
パラメーターです。ID プロバイダーがメタデータ・ファイルを使用してサービス・プロバイダーを連携パートナーとして追加できる場合は、wsadmin exportSAMLSpMetadata コマンドを使用してサービス・プロバイダー・メタデータをエクスポートできます。
このコマンドは、/tmp/spdata.xml メタデータ・ファイルを作成します。wsadmin -lang jython AdminTask.exportSAMLSpMetadata('-spMetadataFileName /tmp/spdata.xml -ssoId 1')
SAML トークンが暗号化されている場合、エクスポートを実行する前に、ID プロバイダーが SAML トークンの暗号化に使用する公開鍵証明書を指定する必要があり、その証明書が WebSphere Application Server のデフォルトの KeyStore に存在している必要があります。
結果
これで、 WebSphere Application Server は、 IdP開始 SSO のサービス・プロバイダー・パートナーとして構成されました。
次の作業
シナリオで必要になる可能性がある残りの SAML TAI 必須カスタム・プロパティー ( sso_<id>.sp.login.error.page
や sso_<id>.sp.filter
など) を構成します。
SAML TAI カスタム・プロパティーの完全なリストについて詳しくは、 SAML Web シングル・サインオン (SSO) トラスト・アソシエーション・インターセプター (TAI) のカスタム・プロパティーを参照してください。