Keycloakは優れたツールですが、適切なドキュメントがありません。
したがって、Realm.roles、Client.roles、およびUser.rolesがあります。
特定のクライアントを使用してアプリケーションにアクセスする場合、どのように連携しますか?
今後ともよろしくお願いいたします。
KeyCloakには、次の3つの役割があります。
KeyCloakにはユーザーロールはありません。おそらく、基本的にロール(レルム、クライアント、またはコンポジット)を特定のユーザーにマッピングするユーザーロールマッピングと混同しているでしょう。
これらの役割が実際にどのように機能するかを確認するために、最初に私が作成した単純なRealmモデルを見てみましょう。以下の図に示すように、すべてのRealmには1つまたは複数のClients。また、すべてのClientには複数のUsersをアタッチできます。
これで、ロールマッピングの仕組みを簡単に結論付けることができます。
レルムロール:これは、特定のレルムに属するグローバルロールです。どのクライアントからでもアクセスでき、どのユーザーにもマップできます。 Ex Role: 'Global Admin、Admin'
クライアントの役割:これは、特定のクライアントのみに属する役割です。別のクライアントからそのロールにアクセスすることはできません。そのクライアントからユーザーにのみマップできます。 Ex Roles: '従業員、顧客'
複合ロール:これは、1つ以上のロール(レルムまたはクライアントのロール)が関連付けられているロールです。