UserInfo エンドポイントで戻されるクレームの構成

UserInfo エンドポイントによって戻されたクレームをカスタマイズするように Liberty OpenID Connect プロバイダーを構成することができます。

このタスクについて

server.xml ファイルで openidConnectProvider エレメントの scopeToClaimMap サブエレメントと claimToUserRegistryMap サブエレメントを使用することで、Liberty サーバー OpenID Connect プロバイダーから戻されるクレームを構成することができます。

OpenID Connect の UserInfo エンドポイントは、入力としてアクセス・トークンを受け入れ、 アクセス・トークンを作成する対象ユーザーに関するクレームのセットを戻します。 戻されるクレームは、以下によって決まります。
  1. アクセス・トークン内の有効範囲

    アクセス・トークンは複数の有効範囲を持つことができます。 アクセス・トークン内の有効範囲は、アクセス・トークンを作成した許可エンドポイント呼び出しで指定された有効範囲です。

  2. 有効範囲に関連付けられたクレーム

    各有効範囲には、複数のクレームを関連付けることができます。

  3. クレームに関連付けられた統合リポジトリー・プロパティー

    クレームに関連付けられる統合リポジトリー・プロパティーは、1 つのみです。

  4. 統合リポジトリー・プロパティーに関連付けられたユーザー・レジストリー属性

    統合リポジトリー・プロパティーに関連付けられるユーザー・レジストリー属性は、1 つのみです。

注: UserInfo クレームの取得をサポートするユーザー・レジストリー・タイプは LDAP のみです。

Liberty では、デフォルトの有効範囲、クレーム、統合レジストリー・プロパティー、およびデフォルト・マッピングを定義します。

表 1. 有効範囲、クレーム、統合レジストリー・プロパティーのデフォルト・マッピング
有効範囲 クレーム 統合レジストリー・プロパティー
profile name、given_name、picture displayName、givenName、photoURL
email email mail
address address postalAddress
phone phone_number telephoneNumber

以下の各ステップはオプションです。 Liberty サーバーでは、デフォルトの有効範囲、クレーム、統合レジストリー・プロパティー、およびデフォルト・マッピングを定義します。以下のいずれかのステップが必要になるのは、 デフォルト・マッピングを変更する場合、あるいはカスタム有効範囲またはカスタム・クレームを定義する場合のみです。

手順

  1. 有効範囲に関連付けられたクレームを構成します。 有効範囲は、複数のクレームにマップすることができます。複数のクレームは必ずコンマで区切る必要があります。
    以下の例で、有効範囲 CUSTOM_SCOPE1 は 2 つのクレーム CUSTOM_CLAIM1 および language に関連付けられ、 有効範囲 CUSTOM_SCOPE2 はクレーム CUSTOM_CLAIM2 に関連付けられます。
    <scopeToClaimMap CUSTOM_SCOPE1="CUSTOM_CLAIM1, language"
                     CUSTOM_SCOPE2="CUSTOM_CLAIM2" />
    注: クレームと有効範囲の名前は大/小文字の区別があります。 CUSTOM_SCOPE1custom_scope1 は、異なる有効範囲になります。
    1. 同じスペルで、大/小文字が異なる有効範囲を定義するには、property サブエレメントを使用する必要があります。 以下の例では、有効範囲 CUSTOM_SCOPE1custom_scope1 が定義されます。
      <scopeToClaimMap CUSTOM_SCOPE1="CUSTOM_CLAIM1, language" > 
          <property name="custom_scope1" value="custom_claim1,mobile"/> 
      </scopeToClaimMap>
  2. クレームに関連付けられた統合リポジトリー・プロパティーを構成します。 クレームは、1 つの統合リポジトリー・プロパティーのみにマップできます。
    以下の例で、クレーム CUSTOM_CLAIM1 は、統合リポジトリー・プロパティー departmentNumber に関連付けられます。 クレーム language は統合リポジトリー・プロパティー preferredLanguage に関連付けられ、クレーム CUSTOM_CLAIM2 は統合リポジトリー・プロパティー mail に関連付けられます。
    <claimToUserRegistryMap CUSTOM_CLAIM1="departmentNumber"
                            language="preferredLanguage" 
                            CUSTOM_CLAIM2="mail" />
    1. 同じスペルで、大/小文字が異なるクレームを定義するには、property サブエレメントを使用する必要があります。 以下の例では、クレーム CUSTOM_CLAIM1custom_claim1 が定義されます。
      <claimToUserRegistryMap CUSTOM_CLAIM1="departmentNumber" >
          <property name="custom_claim1" value="employeeType" />
      </claimToUserRegistryMap>
  3. 統合リポジトリー・プロパティーに関連付けられたユーザー・レジストリー属性を構成します。
    以下の例で、統合リポジトリー・プロパティー photoURL は、LDAP レジストリー属性 ldapPersonPicture に関連付けられます。
    <ldapRegistry...>
      ...
        <attributeConfiguration>
            <attribute name="ldapPersonPicture" 
                       propertyName="photoURL" 
                       entityType="PersonAccount" />
        </attributeConfiguration>
       ...
    </ldapRegistry>
    注: LDAP 属性は、LDAP レジストリーのスキーマで定義されなければなりません。

タスクの結果

UserInfo エンドポイントによって戻されたクレームをカスタマイズするために必要な構成を完了しました。

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

ファイル名: twlp_config_scopes_claims_userinfo.html