5.8. クライアント登録ポリシー
現在の計画では、クライアント登録ポリシーを削除し、代わりに サーバー管理ガイド に記載されているクライアントポリシーを採用する予定です。クライアントポリシーはより柔軟であり、より多くのユースケースに対応します。
現在、Red Hat build of Keycloak では、クライアント登録サービスを介して新しいクライアントを登録する 2 つの方法をサポートしています。
-
認証された要求 - 新しいクライアントを登録する要求には、上記のように
Initial Access Token
またはBearer Token
のいずれかが含まれている必要があります。 - 特定の要求 - 新しいクライアントを登録する要求にトークンを含める必要はありません。
匿名のクライアント登録要求は非常に興味深く強力な機能ですが、誰もが制限なしに新しいクライアントを登録できることは、通常は望まれません。このため、クライアント登録ポリシー SPI
があります。これは、新しいクライアントを登録できるユーザーとその条件を制限する方法を提供します。
Red Hat build of Keycloak 管理コンソールで、Client Registration
タブをクリックして、Client Registration Policies
サブタブをクリックします。ここでは、匿名要求に対して、デフォルトで設定されているポリシーと、認証された要求に対して設定されているポリシーを確認できます。
匿名要求 (トークンなしの要求) は、新しいクライアントの作成 (登録) のためだけに許可されます。したがって、匿名要求を介して新しいクライアントを登録すると、応答には登録アクセストークンが含まれます。これは、特定のクライアントの読み取り、更新、または削除要求に使用する必要があります。ただし、匿名登録からこの登録アクセストークンを使用する場合も、匿名ポリシーが適用されます。そのため、たとえば、Trusted Hosts
ポリシーがある場合は、更新クライアントのリクエストも Trusted Host から取得する必要があります。たとえば、クライアントの更新時や、Consent Required
が存在する場合には、Consent Required
を無効にすることはできません。
現在、以下のポリシー実装があります。
-
Trusted Hosts Policy: 信頼されたホストおよび信頼済みドメインのリストを設定できます。クライアント登録サービスへの要求は、それらのホストまたはドメインからのみ送信できます。信頼できない IP から送信されたリクエストは拒否されます。新たに登録したクライアントの URL も、信頼できるホストまたはドメインを使用する必要があります。たとえば、信頼されていないホストを参照するクライアントの
Redirect URI
を設定することはできません。デフォルトでは、ホワイトリストに登録されているホストがないため、匿名クライアントの登録は事実上無効になっています。 -
Consent Required Policy: 新しく登録されたクライアントでは、
Consent Allowed
スイッチが有効になります。したがって、認証が成功した後、ユーザーがパーミッション (クライアントスコープ) を承認する必要があるときに、常に同意画面が表示されます。これは、ユーザーが承認しない限り、クライアントが個人情報へのアクセスやユーザーのパーミッションを持たないことを意味します。 - Protocol Mappers Policy: ホワイトリスト化された プロトコルマッパー実装のリストを設定できます。新規クライアントに、ホワイトリストに記載されていない プロトコルマッパーが含まれている場合は、登録や更新を行うことができません。このポリシーは認証されたリクエストにも使用されるため、認証されたリクエストであっても、使用できる プロトコルマッパーに関していくつかの制限がある点に注意してください。
-
Client Scope Policy: 新しく登録または更新されたクライアントで使用できる
Client Scopes
をホワイトリスト化できます。デフォルトではホワイトリスト化されたスコープはありません。デフォルトでは、Realm Default Client Scopes
として定義されるクライアントスコープのみがホワイトリスト化されます。 -
Full Scope Policy: 新しく登録されたクライアントでは、
Full Scope Allowed
が無効になります。つまり、指定されたレルムロールや、他のクライアントのクライアントロールはありません。 - Max Clients Policy: レルム内の現在のクライアント数が指定の制限と同じかそれより多い場合、登録を拒否します。匿名登録では、デフォルトで 200 になります。
- Client Disabled Policy: 新たに登録されたクライアントが無効になります。これは、管理者が新しく登録されたすべてのクライアントを手動で承認して有効にする必要があることを意味します。このポリシーは、匿名登録でもデフォルトで使用されません。