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