7.6. ロールマッピングのマッピング
OIDC アクセストークンまたは SAML アサーションの作成時に、ユーザーロールマッピングはトークンまたはアサーション内で要求されます。アプリケーションはこれらの要求を使用して、アプリケーションが制御するリソースにアクセスの決定を行います。Red Hat build of Keycloak は、アクセストークンとアプリケーションを再度使用して、リモートで保護された REST サービスを呼び出します。ただし、これらのトークンには関連するリスクがあります。攻撃者はこれらのトークンを取得し、パーミッションを使用してネットワークを危険にさらすことができます。この状況を防ぐには、Role Scope Mappings を使用します。
ロールスコープマッピングは、アクセストークン内に宣言されたロールを制限します。クライアントがユーザー認証を要求すると、受信するアクセストークンには、クライアントのスコープに対して明示的に指定されるロールマッピングのみが含まれます。その結果、すべてのユーザーのパーミッションにクライアントアクセスを付与するのではなく、個々のアクセストークンのパーミッションを制限するようになります。
デフォルトでは、各クライアントはユーザーのすべてのロールマッピングを取得します。クライアントのロールマッピングを表示できます。
手順
- メニューで Clients をクリックします。
- クライアントをクリックして詳細に移動します。
- Client Scopes タブをクリックします。
- Dedicated scope and mappers for this client の行のリンクをクリックします
- Scope タブをクリックします。
フルサポート
デフォルトでは、スコープの有効なロールはすべてレルムで宣言されるロールです。このデフォルトの動作を変更するには、Full Scope Allowed を OFF に切り替え、クライアントごとに必要な特定のロールを宣言します。client scopes を使用して、一連のクライアントに対して同じロールスコープマッピングを定義することもできます。
部分的なスコープ