13.4. OIDC トークンおよび SAML アサーションマッピング
ID トークン、アクセストークン、または SAML アサーションを受信するアプリケーションは、異なるロールおよびユーザーメタデータが必要になる場合があります。
Red Hat build of Keycloak では、以下を行えます。
- ロール、クレーム、カスタム属性をハードコードする。
- ユーザーメタデータをトークンまたはアサーションにプルする。
- ロールの名前を変更する。
これらのアクションは、管理コンソールの Mappers タブで実行します。
Mappers タブ
新しいクライアントにはビルトインマッパーがありませんが、クライアントスコープから一部のマッパーを継承できます。詳細は、クライアントスコープのセクション を参照してください。
プロトコルマッパーは、項目 (メールアドレスなど) を ID およびアクセストークン内の特定のクレームにマッピングします。マッパーの機能は、その名前を見ただけでわかるようにしておく必要があります。Add Builtin をクリックして、事前設定されたマッパーを追加します。
各マッパーには共通の設定のセットがあります。マッパーのタイプに応じて、追加の設定を利用できます。マッパーの横にある Edit をクリックして設定画面にアクセスし、これらの設定を調整します。
マッパーの設定
各オプションの詳細は、ツールチップの上にマウスをかざして表示できます。
ほとんどの OIDC マッパーは、クレームを配置する場所を制御するのに使用できます。Add to ID token および Add to access token スイッチを調整して、id トークンと アクセス トークンにクレームを含めるか除外するかを選択します。
以下のようにマッパータイプを追加できます。
手順
- Mappers タブに移動します。
Configure a new mapper をクリックします。
マッパーの追加
- リストボックスから Mapper Type を選択します。
13.4.1. 優先順位 リンクのコピーリンクがクリップボードにコピーされました!
マッパー実装には 優先順位 があります。優先順位 はマッパーの設定プロパティーではありません。これはマッパーの具体的な実装のプロパティーです。
マッパーは、マッパーリストの順番にソートされます。トークンまたはアサーションの変更は、最も低いものから順に適用されます。そのため、他の実装に依存する実装は必要な順序で処理されます。
たとえば、トークンに含まれるロールを計算するには、以下を実行します。
- それらのロールに基づいて対象を解決します。
- トークンにすでに利用可能なロールおよび対象を使用する JavaScript スクリプトを処理します。