1. はじめに
こんにちは!
今回は「(RedHat build of)Keycloak」を使う上で最低限理解しておいた方が良い(と思われる)概念/キーワードについて記載します。
最低限のため、全てを網羅しているわけではないという点にご注意ください。
2. 概念/キーワード一覧
記載する概念/キーワード一覧を以下に記載します。
- レルム
- クライアント
- ロール
- プロトコルマッパー
- クライアントスコープ
- 認証
- 認可
2.1. レルム
レルムとはRedHat build of Keycloakで定義されるユーザー、ロール、グループ、認証に関わるオブジェクト等の管理単位です。
それぞれのレルムは独立しているため、レルムが別々であれば同じオブジェクトを定義することも可能です。
2.2. クライアント
クライアントとはRedHat build of Keycloakに対してユーザー認証を要求するエンティティ(アプリ/サービス)を指します。
例えば、RedHat build of Keycloakを使用してSSOログインしている場合、SSOによるログイン先となるサービス(AWSやSalesforce、Microsoft 365、その他独自アプリ/サービスを含む)がクライアントという扱いになります。
2.3. ロール
ロールとはクライアント側で定義されている役割を指します。
RedHat build of Keycloak上で定義されているロール自身が何か役割/機能を持つというわけではなく、認証に成功したユーザーに対して付与されたロールをクライアント側で認識し、権限を与えるために使われます。
2.4. プロトコルマッパー
プロトコルマッパーとは認証時のトークンやアサーション(認証情報)に組み込まれる(属性)データおよび変換ルールのことです。
クライアントごとに要求される(属性)データや変換ルールはそれぞれです。
2.5. クライアントスコープ
クライアントスコープとはプロトコルマッパーとロールのマッピングを定義するテンプレートのことです。
2.6. 認証
認証とはユーザーを特定して検証(ユーザーが存在し、正しい情報を使って認証を要求しているかどうかを確認)するプロセスのことです。
2.7. 認可
認可とはユーザーに対して特定の権限を付与するプロセスのことです。認証によってユーザーが特定され、認可によって認証されたユーザーに権限を付与します。
3. 参考
参考までに上記に記載した概念について図示した概念マップを記載しておきますので、参考にしてください。
4. 最後に
今回はRedHat build of Keycloakを理解するために必要となる最低限の概念について記載しました。
最低限上記の概念と関係性を理解しておくことでRedHat build of Keycloakを設定/設計する際に迷いにくいと思います。
認証/認可という比較的理解しにくい分野でもあるため、まずは基本的な概念を理解するところから始めてみてはいかがでしょうか。
