11.3.5. パーミッションの管理
Permissions タブには、レルム内のすべてのアクティブな権限の概要が表示されます。ここから、管理者は権限を作成、更新、削除、または検索できます。作成した権限を事前に評価して、期待どおりにレルムリソースへのアクセスが適用されているかどうかを確認することもできます。詳細は、権限の評価 を参照してください。
権限を作成するには、Create permission ボタンをクリックし、保護するリソースの種類を選択します。
リソースタイプを選択したら、選択したタイプの 1 つ以上のリソースのセットに対してアクセスをどのように適用するかを定義できます。
権限を管理する場合、次の設定を定義できます。
- Name: 権限の一意の名前。名前はポリシー名とも競合しないようにしてください。
- Description: 権限の内容を詳しく説明するオプションの説明
- Authorization scopes: 選択したリソースタイプに対して保護する操作を表す 1 つ以上のスコープのセット。管理者は、対応するアクションを実行するために、各操作に対して明示的な権限が割り当てられている必要があります。たとえば、view 権限なしで manage 権限のみを割り当てると、ユーザーは表示されなくなります。
- Enforce access to: 対象の権限で、選択したタイプのすべてのリソースへのアクセス制限を適用するか、レルム内の特定のリソースへのアクセス制限を適用するかを定義します。
- Policies: 選択したリソースへのアクセスを許可または拒否するために評価する必要がある 1 つ以上のポリシーのセットを定義します。
権限を作成すると、選択した (すべての) リソースとスコープへのアクセス制限を適用するときに、権限が自動的に有効になります。実稼働環境で権限を作成および更新するときは、この点に留意してください。
11.3.5.1. レルムリソースを表示するための権限の定義 リンクのコピーリンクがクリップボードにコピーされました!
この機能は、部分評価メカニズムを利用して、レルムリソースをリスト表示および表示するときにレルム管理者が持つ権限を部分的に評価します。このメカニズムは、レルム管理者を直接または間接的に参照するビュー関連のスコープに設定されたすべての権限を事前に取得します。
特定のタイプのレルムリソースを表示 (view) するアクセスを許可する権限では、クエリーから使用できるように、次のいずれかのポリシーを使用する必要があります。
-
User -
Group -
Role
上記のいずれかのポリシーを使用すると、Red Hat build of Keycloak は、レルム管理者への直接的な参照 (ユーザーポリシーを使用している場合) または間接的な参照 (ロールポリシーまたはグループポリシーを使用している場合) を検索して、レルム管理者が表示できるリソースのセットを事前に計算できます。したがって、部分評価メカニズムには、データベースレベルで実行されるアクセス制御を使用してクエリーを装飾することが含まれます。この機能は主に、リソースのページネーションを適切に許可し、クエリーによって返される各レルムリソースの権限を評価するときにサーバー側で追加のオーバーヘッドを回避するために重要です。
部分的な評価とフィルタリングは、機能がレルムに対して有効になっており、ユーザーに view-users や view-clients などのビュー関連の管理ロールが付与されていない場合にのみ実行されます。たとえば、マスターレルムで admin ロールを付与された管理者 (サーバー管理者) や、マスターレルム以外のレルムで realm-admin ロールを付与されたレルム管理者の場合は実行されません。
リソースをクエリーする場合、部分評価メカニズムは次のように機能します。
- レルム管理者を参照する特定のリソースタイプのすべての権限を解決する
- 各権限を事前に評価して、レルム管理者が権限に関連付けられたリソースにアクセスできるかどうかを確認する
- 許可または拒否されたリソースに基づいてデータベースクエリーを装飾する
その結果、クエリーの結果セットには、レルム管理者がビュー関連のスコープのいずれかにアクセスできるレルムリソースのみが保持されます。