💭
Keycloak関連用語のまとめ
はじめに
- Keycloakを調べ始めたところ用語が多いので、ざっくりメモ程度にまとめてみました
Keycloakとは
-
アイデンティティ・アクセス管理(Identity and Access Management:IAM)のソフトウェア
- IAMとは簡単に言うとIDとアクセス権を管理する機能のこと
-
シングルサインオンやAPIアクセスの認証・認可制御を実現するもの
- シングルサインオン(Single Sign On:SSO)とは
- 一度のログインで複数アプリケーションやサービスに対してアクセス可能になる特性や機能の事
- シングルサインオン(Single Sign On:SSO)とは
- AD(Active Directory)や外部で管理しているユーザー管理DBと連携出来る
- Apache 2.0ライセンス
認証・認可の違い
認証とは
- ユーザーから提示されたクレデンシャルと、あらかじめシステムに登録された情報を照合してユーザー本人であるかを確認すること
-
クレデンシャル(credential)とは
- ユーザーIDやパスワードなどの認証に用いられる情報のこと
-
クレデンシャル(credential)とは
認可とは
- アクセス権を与える行為のこと
- 認可が行われた後は「認可判断」が行われる
-
認可判断とは
- アクセス権に基づきアクセス可否を判断すること
- 広い意味では認可に含まれることがある
-
認可判断とは
使われるプロトコル
OAuth
-
API認可で使われるプロトコル
ID/PWではなく、一時的に使うことのできるアクセストークン(権限委譲用クレデンシャルともいう)を使ってAPIを実行するという仕組みがOAuthの考え方-
アクセストークンとは
- 当該クライアントアプリケーションがユーザーのデータを利用することを許可されていることを示すもの
-
リフレッシュトークンとは
- 新しいアクセストークンを取得するために必要な情報を保持している
- 用途としてはアクセストークンの期限が切れてしまった時に新たなアクセストークンを取得するために利用される
- アクセストークンと共に発行される
-
アクセストークンとは
Open ID Connect(OIDC)
OAuthを拡張して作られた認証のためのプロトコル
基本的なフローはOAuthと同じになる
認証にはIDトークンを使う
-
IDトークンとは
- ユーザーが認証された事を証明するトークン
- IDトークンはJSON Web Token(JWT)としてエンコードされている
-
JWTとは
- JSON形式で表現された認証情報などをURL文字列などとして安全に送受信できるよう、符号化やデジタル署名の仕組みを規定した標準規格
- ドット (.) で区切られた 3 つの Base64 エンコード文字列が含まれている
- ヘッダー、ペイロード、および署名
-
JWTとは
- IDトークンはどの発行者/issから、どの対象者/subの情報を、どの利用者/audに対して、いつまでの有効期限/expで、いつ発行された/iatか、という情報を必ず含んでいる
SAML(Security Assertion Markup Language)
異なるドメイン間においてユーザー認証を行うためのXMLをベースにしたプロトコル
- 「事前に信頼関係(設定)を構築し、信頼関係に基いてアイデンティティ情報を連携する」という仕組みを用いている
- 社内ネットワークでの使用を目的として発展してきた関係
OAuthとOIDCとSAMLの比較
OAuth | OIDC | SAML | |
---|---|---|---|
標準化した年/最新版 | 2012年/OAuth 2.0 | 2014年/OpenID Connect 1.0 | 2005年/SAML 2.0 |
フォーカス | 認可のみ | 認証と認可 | 認証と認可 |
発行するトークン | アクセストークン、リフレッシュトークン | アクセストークン、リフレッシュトークン、IDトークン | SAMLアサーション(3種類:認証、属性、承認) |
データ形式 | JSON | JSON | XML |
用語:使用する人 | リソースオーナー | エンドユーザー | ユーザー |
用語:使用するアプリ | クライアント | RP(Relying Party) | SP(Service Provider) |
用語:認可/認証サーバー | 認可サーバー | OP(OpenID Provider) | IdP(Identify Provider) |
用語:リクエスト | 認可リクエスト | 認証リクエスト | SAML Request |
用語:レスポンス | 認可レスポンス | 認証レスポンス | SAML Response |
参考
書籍「認証と認可 Keycloak入門 OAuth/OpenID Connectに準拠したAPI認可とシングルサインオンの実現」
Discussion