Liberty リポジトリー[8.5.5.4 以降]

Liberty プロファイルでの OpenID Connect クライアントの構成

Web シングル・サインオンを利用し、ID プロバイダーとして OpenID Connect プロバイダーを使用する OpenID Connect クライアント、つまりリライング・パーティーとして機能するように、Liberty プロファイル・サーバーを構成することができます。

このタスクについて

他の構成情報に加えて、Liberty プロファイルの openidConnectClient-1.0 フィーチャーを有効にすることで、OpenID Connect クライアントとして機能するように Liberty プロファイル・サーバーを構成することができます。

手順

  1. 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>
  2. 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 属性を使用して必要な有効範囲を編集できます。 例えば、必須の scopeopenid profile email に変更できます。
    • この RP は、そのリダイレクト URL を OP に https://<host name>:<ssl port>/oidcclient/redirect/client01 として登録します。 ここで、ホスト名と SSL ポートはどちらも自動的に解決され、client01openidConnectClient 構成エレメントの ID です。 RP の前にプロキシーがある場合、ホスト名とポートを属性 redirectToRPHostAndPort でオーバーライドし、 redirectToRPHostAndPorthttps://<host name>:<ssl port> に設定することができます。
  3. ユーザー・レジストリーを構成します。OP によって戻されたユーザー ID は、 デフォルトではレジストリー・ユーザーにマップされないため、レジストリーに構成される必要があるユーザーはありません。 ただし、openidConnectClient エレメントの mapIdentityToRegistryUser 属性が true に設定された場合は、 認証と許可が成功するには、OP から戻された該当 ID に対するユーザー・エントリーが存在する必要があります。 ユーザー・レジストリーの構成について詳しくは、Liberty プロファイルのユーザー・レジストリーの構成を参照してください。
  4. サポートされる OpenID Connect プロバイダーの署名者証明書を含むように、サーバーのトラストストアを構成します。 鍵ストアについては、Liberty プロファイルの SSL 通信の使用可能化を参照してください。
  5. 構成されたトラストストアを使用するように、サーバーの 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 に構成されたトラストストアを使用する必要があります。

  6. [8.5.5.5 以降]オプション: サード・パーティーの OpenID Connect プロバイダーを構成します。

    サード・パーティーの OpenID Connect プロバイダー (Microsoft Azure や Google など) を使用するように Liberty OpenID Connect クライアントを構成するには、以下の属性の構成が必要です。 OP のディスカバリー・エンドポイント (発行者にストリング /.well-known/openid-configuration を連結して形成されるパスの JSON 文書を提供) を呼び出すことで、属性値を入手できます。

    1. jwkEndpointUrl 属性には、ディスカバリー・ファイルで jwks_uri として定義された、 OP の JSON Web Key Set JWK 文書の URL を設定します。 例えば、Google の OP を使用する場合は、jwkEndpointUrl = "https://www.googleapis.com/oauth2/v2/certs" を設定できます。
    2. issuerIdentifier 属性には、ディスカバリー・ファイルで定義された issuer を設定します。 iss クレームとしてこの値を含まない ID トークンは、拒否されます。 例えば、Google を OP として使用する場合、issuerIdentifier="accounts.google.com" を設定できます。
    3. signatureAlgorithm="RS256" を設定します。 Liberty OpenID Connect クライアントのデフォルト署名アルゴリズムは HS256 です。
    4. userIdentityToCreateSubject 属性には、ユーザーの固有 ID を表すベンダーの ID トークンによって使用されるクレーム名を設定します。 例えば、Google の OP を使用する場合は userIdentityToCreateSubject ="email"、Microsoft Azure を使用する場合は userIdentityToCreateSubject ="upn" または userIdentityToCreateSubject ="unique_name" を設定できます。
    5. groupIdentifier 属性には、ユーザーのグループ・メンバーシップまたはロールを表すクレーム名を設定します。 例えば、Microsoft Azure を使用する場合、groupIdentifier="groups" を設定できます。

    OpenID Connect クライアント構成オプションについては、server.xml ファイルの構成エレメントを参照してください。

  7. [8.5.5.5 以降]オプション: 認証フィルター。

    openidConnectClient-1.0 フィーチャーが有効で、 openidConnectClient エレメントに authFilterRef 属性が構成されていない場合、 非認証要求があれば OpenID Connect プロバイダーで認証されます。

    認証フィルターの構成について詳しくは、 Liberty リポジトリー[8.5.5.5 以降]認証フィルターを参照してください。

  8. 複数の OpenID Connect プロバイダーをサポートします。

    複数の openidConnectClient エレメントおよび複数の認証フィルターを作成することによって、 複数の OpenID Connect プロバイダーへの OpenID Connect リライング・パーティーとして Liberty プロファイルを構成できます。各 openidConnectClient エレメントは、 1 つの OpenID Connect プロバイダーとの 1 つのシングル・サインオン関係を定義し、authFilterRef 属性を使用して 1 つの認証フィルターを参照します。

タスクの結果

OpenID Connect プロバイダーとして構成された他の Liberty プロファイル・サーバーと通信できる OpenID Connect クライアントとして、Liberty プロファイル・サーバーを構成するために必要な最小構成を設定しました。

トピックのタイプを示すアイコン タスク・トピック

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


タイム・スタンプ・アイコン 最終更新: 2015 年 6 月 17日
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_config_oidc_rp
ファイル名: twlp_config_oidc_rp.html