26
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Keycloak by OpenStandiaAdvent Calendar 2023

Day 7

Keycloakの管理コンソール画面をみてみる(管理者向けコンソール編)

Last updated at Posted at 2023-12-06

※本記事は、Keycloakのバージョンアップに伴い、「Keycloakの管理コンソールの機能をみてみる(管理者編)」の記事を最新化したものです。

やること

keycloakには
・管理者向けコンソール
・利用者向けコンソール
があります。

今回は、管理者向けコンソールの各項目をみていきます。

前提

こちらを実施していることが前提になります。

今回セットアップした環境は以下です。
・keycloak 23.0.7
・Google Chrome 117.0.5938.92
Windows PowerShellでkeycloakサーバーを立ち上げ、chromeで管理者向けコンソールにアクセスしました。
また、管理ユーザーを作成している必要があります。詳細は上の記事を確認ください。

管理コンソールとは

管理コンソールは、Keycloakのクライアントやユーザー、グループ等の各種設定を管理する機能になります。
サーバー起動後にhttp://localhost:8080 にアクセスし、Administration Consoleをクリックし、管理ユーザーとしてログインすることでアクセスできます。
image.png

コンソール画面は以下のように、左側に一覧、右側に設定項目という構成になっています。
image.png

レルムとは

一覧の上に、masterと書かれたプルダウンがあり、これは現在のレルムを表したものです。レルムとは、ユーザー、アプリ、ロール、グループといったオブジェクトを管理するための単位です。ユーザーはレルムに所属し、レルム単位でログを記録します。レルム同士はお互いに隔離されており、他レルムには干渉できません。
image.png

レルムの作成

レルムのプルダウンからCreate Realmを選択すると、Create realm画面に移動します。
image.png
各項目の説明は以下の通りです。

項目名 説明
Resource file Keycloakはレルムの設定情報をすべてJSONに書き出すことができます。JSONをここからアップロードできます。
Realm name レルムの名前を設定します。
有効 レルムを無効にすることができます。無効にした場合、ユーザーやクライアントがレルムにアクセスできなくなります。

レルムの作成に成功すると、以下のような画面が表示されます。
image.png

クライアント

クライアントの作成、設定を行うことができます。作成時は、OpenID Connect,SAMLを選択してクライアントを作成できます。また、JSONやXMLからクライアントを作成することもできます。
image.png
Create clientを押すと、Create client画面に移動します。

OpenID Connectを選択してクライアントを作成した場合

以下のようにOpenID Connectを設定できます。
image.png

次へを押すと、以下の画面になります。
image.png

各項目の説明は以下の通りです。

項目名 説明
クライアント認証 オフにするとパブリッククライアントに、オンにするとコンフィデンシャルクライアントに設定できます。
認可 詳細な認可のサポートを設定できます。コンフィデンシャルクライアントでのみ利用できます。
Authentification flow フローを選択できます。
● 標準的な認可コードによるリダイレクトベースの認証 認可コードフローのオンオフ
● ダイレクト・アクセス・グラントのサポート リソース・オーナー・パスワード・クレデンシャル・グラントのオンオフ
● 認可コードなしのリダイレクト・ベース認証のサポート インプリシットフローのオンオフ
● クライアント・クレデンシャル・グラント クライアント・クレデンシャル・グラントのオンオフ。コンフィデンシャルクライアントでのみ利用できます。
● OAuth 2.0 Device Authorization Grant デバイスフローのオンオフ
● OIDC CIBA Grant CIBAフローのオンオフ

次へを押すと、以下の画面になります。
image.png

各項目の説明は以下の通りです。

項目名 説明
ルートURL 相対URLが設定されている場合、その前にルートURLが追加されます。
認証サーバーがクライアントへのリダイレクトまたは戻るリンクを必要とする際に使用するデフォルトURLを設定します。 認証サーバーがリダイレクトしたり、アプリに戻る際に使われるURLです。
有効なリダイレクトURI ログイン後のリダイレクト先として、有効なパターンを登録します。
Valid post logout redirect URIs ログアウト後のリダイレクト先として、有効なパターンを登録します。
Webオリジン 許可するCORSオリジンを登録します。

SAMLを選択してクライアントを作成した場合

以下のようにSAMLを設定できます。
image.png

次へを押すと、以下の画面になります。
image.png

各項目の説明は以下の通りです。

項目名 説明
ルートURL 相対URLが設定されている場合、その前にルートURLが追加されます。
認証サーバーがクライアントへのリダイレクトまたは戻るリンクを必要とする際に使用するデフォルトURLを設定します。 認証サーバーがリダイレクトしたり、アプリに戻る際に使われるURLです。
有効なリダイレクトURI ログイン後のリダイレクト先として、有効なパターンを登録します。
Valid post logout redirect URIs ログアウト後のリダイレクト先として、有効なパターンを登録します。
IDP Initiated SSOを行う際に~ IDP Initiated SSOを行う際にクライアントを参照するためのURLフラグメント名を登録します。
IDP Initiated SSOのRelayState IDP Initiated SSOを行う際のSAMLリクエストで送信したいRelayStateを登録します。
SAMLを処理するマスターURL このURLがSPのアサーション・コンシューマーおよびシングル・ログアウト・サービスの両方のBindingに使われます。

クライアント詳細画面

localhost_8080_admin_master_console_ (15).png

クライアント作成後、詳細画面から前述のクライアントに関する項目に加えて、ログイン・ログアウトに関する詳細を設定できます。

クライアント・スコープ

クライアントに付与するスコープを作成できます。アクセス権限をアクセストークンに設定することができ、リソースへのアクセス時に所有者への同意を求める必要がある場合に有用です。
image.png

Create client scopeを押すと、クライアント・スコープの作成画面に移動します。
image.png

各項目の説明は以下の通りです。

項目名 説明
クライアント・スコープの名前 クライアント・スコープの名前。レルム内で一意に命名する。
説明 クライアント・スコープの説明。
タイプ クライアント作成時に自動付与されるクライアントスコープのタイプを設定する。
● None 自動付与をしない
● DEFAULT DEFAULTタイプで自動付与する。
● OPTION OPTIONタイプで自動付与する。
プロトコル プロトコルを設定する。OpenID ConnectとSAMLの二値。
同意画面で表示する 同意画面でテキストを表示するかどうかを設定できます。
同意画面のテキスト 上の"同意画面で表示する"がオンの時、表示するテキストを設定できます。
トークンスコープに含める オンの場合、このクライアント・スコープの名前がアクセストークン・プロパティーの「scope」と同様にトークン・イントロスペクション・エンドポイントのレスポンスに追加されます。
GUI(同意ページのような)でのプロバイダーの順序を整数で指定します。 同意画面における表示順序を指定します。

レルムロール

image.png
前述のクライアントスコープにレルムロールを割り当てることで、アクセストークンのアクセス権限を設定できます。この画面では、レルムロールの管理を行います。

Create roleを選択すると、レルムロールの作成画面に移動します。
image.png

各項目の説明は以下の通りです。

項目名 説明
ロール名 レルムロールの名前を設定します。
説明 レルムロールの説明を記述できます。

ユーザー

image.png
ユーザーとは認可や認証を行う単位のことです。この画面ではユーザーの管理を行うことができ、ロールの付与などが可能です。ユーザーの追加を押すと、Create user画面に遷移します。
image.png
各項目の説明は以下の通りです。

項目名 説明
必要なユーザー・アクション 初回ログイン時に設定が必要な項目を選択します。
ユーザー名 ユーザー名を設定します。
Eメール メールアドレスを設定します。
Eメールが確認済み ユーザーのEメールが確認済みかどうかを設定します。
名を設定します。
苗字を設定します。
メンバーであるグループです。グループから外すには、グループを選択して「外す」ボタンをクリックしてください。 所属するグループを設定します。

グループ

Keycloak23.0.7では項目名が「メンバーであるグループです。グループから外すには、グループを選択して「外す」ボタンをクリックしてください。」となってしまっています。
image.png
ユーザーをまとめるグループの設定を行います。グループを使うことで、複数のユーザーにまとめてリソースを持たせることができます。また、グループにロールを付与することもできます。グループの作成を押すと、Create a groupのダイアログが現れます。
image.png

セッション

image.png
ユーザー・クライアントのセッションを管理します。

イベント

image.png
トークンリクエストやユーザーのログイン失敗など、イベントを管理します。

レルムの設定

一般

image.png
レルムIDやフロントエンドURLなどの一般的な項目を設定できます。

login

image.png
自身でのユーザー作成や、パスワードを忘れた場合の救済措置、Eメールでのログインの可否を設定できます。

Eメール

image.png
メール認証やパスワード復旧などの際、keycloakがユーザーに送るメールの設定ができます。また、SMTPサーバの設定もここで行います。

テーマ

image.png
UIのテーマを変更できます。

image.png
Keycloakのトークンの署名などに利用する暗号鍵を設定・管理できます。

イベント

image.png
イベントに関する設定ができます。

Localization

image.png
Keycloak上でサポートする言語を設定できます。

セキュリティー防御

image.png
クリックジャッキングやXSSなどの脆弱性に対するKeycloakの設定を変更できます。

セッション

localhost_8080_admin_master_console_ (16).png
セッションに関するタイムアウト等を設定できます。

トークン

localhost_8080_admin_master_console_ (17).png
トークンに関するタイムアウト等を設定できます。

Client policies

image.png
Keycloakの設定間違い等による脆弱性を回避するために、所定の条件を満たしているかを自動でチェックする機能です。

ユーザー登録

image.png
ユーザーへのデフォルトロールの割り当てなど、ユーザーに関する設定ができます。

認証

image.png
フローの作成・管理ができます。Create flowを押すと以下の認証フローの登録画面に移動します。
image.png
ここでは、ユーザー独自の認証フローを作成することができます。

アイデンティティー・プロバイダー

image.png
標準のFacebook,Googleに加えて、他のIdPを追加できます。ユーザーはIdPにログインする際、追加されたものの中から選ぶことができます。

ユーザー・フェデレーション

image.png
外部に存在するユーザー情報を認証に利用する、ユーザーストレージフェデレーションを設定できます。

参考

26
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
26
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?