12.7.3. アーキテクチャー
クライアントポリシーは、Condition、Executor、Profile、および Policy の 4 つのビルディングブロックで設定されます。
12.7.3.1. 状態
条件は、ポリシーが採用されるクライアントと、そのクライアントが採用されるタイミングを決定します。一部の条件は、クライアント要求 (OIDC 認証要求、トークンエンドポイント要求など) で他の条件がクライアント要求時にチェックされる場合に、クライアントの作成/更新時にチェックされます。条件は、指定基準の 1 つが満たされているかどうかを確認します。たとえば、一部の条件では、クライアントのアクセスタイプが機密であるかどうかをチェックします。
この条件は単独で使用できません。これは、後で説明される ポリシー で使用できます。
他の設定可能なプロバイダーと同じ条件を設定できます。設定可能なものは、各条件の性質によって異なります。
以下の条件が提供されます。
- クライアントの作成/更新方法
- 動的クライアント登録 (初期アクセストークンまたは登録アクセストークンで認証されていない、または認証されていない)
- Admin REST API(管理コンソールなど)
たとえば、クライアントの作成時に、このクライアントが初期アクセストークンのない OIDC 動的クライアント登録 (匿名動的クライアント登録) で作成される場合に、条件が true に評価されるように設定できます。たとえば、この条件を使用して、OIDC 動的クライアント登録などで登録されたすべてのクライアントが FAPI に準拠するように使用できます。
- クライアントの作成者 (特定のロールまたはグループに存在するかどうかで確認)
- OpenID Connect 動的クライアント登録では、クライアントの作成者は、認証済みのエンドユーザーで、アクセストークンを使用して登録エンドポイントに実際にアクセスする既存のクライアントのサービスアカウントではなく、新しいクライアントを生成するためのアクセストークンを取得できます。管理 REST API による登録では、クライアントの作成者は Red Hat Single Sign-On の管理者のようなエンドユーザーです。
- クライアントアクセスタイプ (機密、パブリック、Bearer のみ)
- たとえば、クライアントが認証要求を送信すると、このクライアントが機密である場合はポリシーが採用されます。
- クライアントスコープ
-
クライアントに固有のクライアントスコープがある場合 (デフォルトまたは現在のリクエストで使用される任意のスコープ) は、true と評価します。たとえば、スコープが
fapi-example-scope
の OIDC 認証要求が FAPI に準拠する必要があることを確認できます。 - クライアントロール
- 指定の名前のクライアントロールが割り当てられたあクライアントに適用されます。
- クライアントドメイン名、ホスト名、または IP アドレス
- クライアントの特定のドメイン名に適用されます。または、管理者が特定のホストまたは IP アドレスからクライアントを登録/更新する場合。
- 任意のクライアント
- この条件は常に true と評価されます。たとえば、特定のレルム内のすべてのクライアントが FAPI に準拠することを確認するために使用できます。