
![[8.5.5.4 以降]](../ng_v8554.gif)
Liberty プロファイルでの OpenID Connect クライアントの構成
Web シングル・サインオンを利用し、ID プロバイダーとして OpenID Connect プロバイダーを使用する OpenID Connect クライアント、つまりリライング・パーティーとして機能するように、Liberty プロファイル・サーバーを構成することができます。
このタスクについて
他の構成情報に加えて、Liberty プロファイルの openidConnectClient-1.0 フィーチャーを有効にすることで、OpenID Connect クライアントとして機能するように Liberty プロファイル・サーバーを構成することができます。
手順
- server.xml ファイルに openidConnectClient-1.0 の Liberty
フィーチャーと他の必要なフィーチャーを追加します。
openidConnectClient-1.0 フィーチャーには、ssl-1.0 フィーチャーも必要です。
server.xml ファイルの featureManager エレメントに次のエレメント宣言を追加します。
<feature>openidConnectClient-1.0</feature> <feature>ssl-1.0</feature>
- openidConnectClient エレメントを構成します。
以下は、デフォルトの Liberty プロファイル・サーバー OpenID Connect プロバイダーで動作する最小構成の例です。
クライアントには、OpenID Connect プロバイダーからのリダイレクト要求を処理できる適切に構成されたアプリケーションが、指定された URL パターンで使用可能でなければなりません。 また、この URL は、クライアント用に OP に登録されたリダイレクト URL に正確に一致する必要があります。
注: この例で、クライアントは OP の SSL ポートが 443 に設定されることを想定しています。<openidConnectClient id="client01" clientId="client01" clientSecret="{xor}LDo8LTor" authorizationEndpointUrl="https://server.example.com:443/oidc/endpoint/OidcConfigSample/authorize" tokenEndpointUrl="https://server.example.com:443/oidc/endpoint/OidcConfigSample/token"> </openidConnectClient>
このサンプル最小構成では、次のデフォルト値が想定されています。- scope=openid profile: openid の有効範囲は必須です。 scope 属性を使用して必要な有効範囲を編集できます。 例えば、必須の scope を openid profile email に変更できます。
- この RP は、そのリダイレクト URL を OP に https://<host name>:<ssl port>/oidcclient/redirect/client01 として登録します。 ここで、ホスト名と SSL ポートはどちらも自動的に解決され、client01 は openidConnectClient 構成エレメントの ID です。 RP の前にプロキシーがある場合、ホスト名とポートを属性 redirectToRPHostAndPort でオーバーライドし、 redirectToRPHostAndPort を https://<host name>:<ssl port> に設定することができます。
- ユーザー・レジストリーを構成します。OP によって戻されたユーザー ID は、 デフォルトではレジストリー・ユーザーにマップされないため、レジストリーに構成される必要があるユーザーはありません。 ただし、openidConnectClient エレメントの mapIdentityToRegistryUser 属性が true に設定された場合は、 認証と許可が成功するには、OP から戻された該当 ID に対するユーザー・エントリーが存在する必要があります。 ユーザー・レジストリーの構成について詳しくは、Liberty プロファイルのユーザー・レジストリーの構成を参照してください。
- サポートされる OpenID Connect プロバイダーの署名者証明書を含むように、サーバーのトラストストアを構成します。 鍵ストアについては、Liberty プロファイルの SSL 通信の使用可能化を参照してください。
- 構成されたトラストストアを使用するように、サーバーの SSL 構成を変更します。
<sslDefault sslRef="DefaultSSLSettings" /> <ssl id="DefaultSSLSettings" keyStoreRef="myKeyStore" trustStoreRef="myTrustStore" /> <keyStore id="myKeyStore" password="{xor}EzY9Oi0rJg==" type="jks" location="${server.config.dir}/resources/security/BasicKeyStore.jks" /> <keyStore id="myTrustStore" password="{xor}EzY9Oi0rJg==" type="jks" location="${server.config.dir}/resources/security/BasicTrustStore.jks" />
OpenID Connect は、サーバーで指定されたデフォルト SSL 構成を使用するように構成されます。 そのため、サーバーのデフォルト SSL 構成は、OpenID Connect に構成されたトラストストアを使用する必要があります。
オプション: サード・パーティーの OpenID Connect プロバイダーを構成します。
サード・パーティーの OpenID Connect プロバイダー (Microsoft Azure や Google など) を使用するように Liberty OpenID Connect クライアントを構成するには、以下の属性の構成が必要です。 OP のディスカバリー・エンドポイント (発行者にストリング /.well-known/openid-configuration を連結して形成されるパスの JSON 文書を提供) を呼び出すことで、属性値を入手できます。
- jwkEndpointUrl 属性には、ディスカバリー・ファイルで jwks_uri として定義された、 OP の JSON Web Key Set JWK 文書の URL を設定します。 例えば、Google の OP を使用する場合は、jwkEndpointUrl = "https://www.googleapis.com/oauth2/v2/certs" を設定できます。
- issuerIdentifier 属性には、ディスカバリー・ファイルで定義された issuer を設定します。 iss クレームとしてこの値を含まない ID トークンは、拒否されます。 例えば、Google を OP として使用する場合、issuerIdentifier="accounts.google.com" を設定できます。
- signatureAlgorithm="RS256" を設定します。 Liberty OpenID Connect クライアントのデフォルト署名アルゴリズムは HS256 です。
- userIdentityToCreateSubject 属性には、ユーザーの固有 ID を表すベンダーの ID トークンによって使用されるクレーム名を設定します。 例えば、Google の OP を使用する場合は userIdentityToCreateSubject ="email"、Microsoft Azure を使用する場合は userIdentityToCreateSubject ="upn" または userIdentityToCreateSubject ="unique_name" を設定できます。
- groupIdentifier 属性には、ユーザーのグループ・メンバーシップまたはロールを表すクレーム名を設定します。 例えば、Microsoft Azure を使用する場合、groupIdentifier="groups" を設定できます。
OpenID Connect クライアント構成オプションについては、server.xml ファイルの構成エレメントを参照してください。
オプション: 認証フィルター。
openidConnectClient-1.0 フィーチャーが有効で、 openidConnectClient エレメントに authFilterRef 属性が構成されていない場合、 非認証要求があれば OpenID Connect プロバイダーで認証されます。
認証フィルターの構成について詳しくは、
認証フィルターを参照してください。
- 複数の OpenID Connect プロバイダーをサポートします。
複数の openidConnectClient エレメントおよび複数の認証フィルターを作成することによって、 複数の OpenID Connect プロバイダーへの OpenID Connect リライング・パーティーとして Liberty プロファイルを構成できます。各 openidConnectClient エレメントは、 1 つの OpenID Connect プロバイダーとの 1 つのシングル・サインオン関係を定義し、authFilterRef 属性を使用して 1 つの認証フィルターを参照します。
タスクの結果
サブトピック
OpenID Connect の認可エンドポイントの起動
OpenID Connect では、認可エンドポイントがユーザーの認証および認可を扱います。OpenID Connect のトークン・エンドポイントの起動
OpenID Connect Authorization Code Flow では、ID トークン、アクセス・トークン、およびリフレッシュ・トークンを取得するために、 クライアントによってトークン・エンドポイントが使用されます。OpenID Connect のイントロスペクション・エンドポイントの起動
イントロスペクション・エンドポイントにより、アクセス・トークン保有者は、 アクセス・トークンに関するメタデータのセットをそのアクセス・トークンを発行した OpenID Connect プロバイダーから要求することができます。アクセス・トークンは、OpenID Connect または OAuth 認証を介して取得されたものでなければなりません。カバレッジ・マップ・サービスの起動
カバレッジ・マップ・サービスは、スラッシュで終了する URI 接頭部の JavaScript Object Notation (JSON) 配列を戻す無保護のエンドポイントです。 URI 接頭部の配列では、シングル・サインオン (SSO) グループに含まれる Web コンテキストを指定します。 これにより、アクセス・トークンを送信するために URI 宛先が安全とみなされるかどうかをクライアントが知ることができます。OpenID Connect の UserInfo エンドポイントの起動
UserInfo エンドポイントは、OpenID Connect 認証で認証されたユーザーについてのクレームを返します。OpenID Connect のセッション管理エンドポイントの起動
セッション管理エンドポイントは、OpenID Connect リライング・パーティーが特定の OpenID Connect プロバイダー (OP) でのユーザーのログイン状況をモニターするのを可能にし、 その際のネットワーク・トラフィックを最小化します。セッション管理エンドポイントを利用することによって、 リライング・パーティー (RP) は、OpenID Connect プロバイダーからログアウトしたユーザーをログアウトすることができます。

インフォメーション・センターに関するご使用条件 | フィードバック

http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_config_oidc_rp
ファイル名: twlp_config_oidc_rp.html