2017-12-15 32 views
0

Keycloakは素晴らしいツールですが、適切なドキュメントがありません。Keycloakの役割はどのように管理されていますか?

だから我々は、特定のクライアントを使用してアプリケーションにアクセスする際に一緒にそこに3の作業を行う方法Realm.roles、Client.rolesとUser.roles

がありますか?敬具

、KeyCloakで

答えて

4

我々は、これらの3つの役割があります。

  1. レルム役割
  2. コンポジット
  3. クライアント役割をロール

KeyCloakにはユーザーロールはありません。基本的に役割(領域、クライアント、またはコンポジット)を特定のユーザーにマッピングするユーザー役割マッピングと混同している可能性があります。

これらの役割の実際の動作を確認するには、私が作成した単純なレルムモデル。下の図のように、レルムには、クライアントが1つまたは複数あります。 クライアントには、ユーザーが複数接続されている場合があります。このことから今

enter image description here

どのような役割のマッピング作業を締結することは容易でなければなりません。

レルムロール:これは、特定のレルムに属するグローバルロールです。任意のクライアントからアクセスして、任意のユーザーにマップできます。 例の役割:は「グローバル管理者、管理者」

クライアントの役割:はそれだけで、その特定のクライアントに属している役割です。別のクライアントからそのロールにアクセスすることはできません。そのクライアントからのユーザーにのみマッピングできます。 例の役割:「従業員、顧客

コンポジット役割:は、それはそれに関連する1つまたは複数の役割(レルムまたはクライアントのもの)を持っている役割です。

+0

ありがとう、私はもっと混乱していません...どのようにスコープは、画像で再生するのですか?クライアントの役割が領域の役割を拡大しているか制限していますか? webappのクライアントとモバイルのクライアントが同じクライアントロールを共有しているとどうなりますか? –

+0

あなたがすでに知っているので、KeyCloakコミュニティはそれほど大きくはないので、私が知る限り、そのケースのベストプラクティスはありません。グローバル(レルム・レベル)ロールを作成して、両方のクライアントから簡単にアクセスするか、または各クライアントに2つの同一のロールを作成することができます。プロジェクトの規模に応じて、最適なものから選択します。 – Dino

+0

ありがとう、私はそれを得た - もう一度keycloakのドキュメントは本当に弱いです。私は最終的に、クライアントがスコープに基づいてユーザーロールを「フィルタリング」する方法を理解しました。あなたのコメントから、私はまた、複数のクライアントに "複製"できる役割を果たしました。 –

関連する問題