LoginSignup
17
8

More than 5 years have passed since last update.

Keycloakの管理コンソールの機能をみてみる(利用者編)、ユーザー・アカウント・サービス

Last updated at Posted at 2017-12-09

今日やること

Keycloakアドベンドカレンダー10日目の今回は、Keycloakの管理コンソールをみてみます。

Keycloakの管理コンソールには

  • 管理者向け機能
  • 利用者向け機能(ユーザー・アカウント・サービス)

があります。

今日は後者の「利用者向け機能(ユーザー・アカウント・サービス)」についてみてみます。

事前準備

2日目の『Keycloakのセットアップ』の通り、以下を準備します。

  • Keycloak環境
  • Keycloak管理ユーザーと一般ユーザーの作成

ユーザー・アカウント・サービスの概要

ユーザー・アカウント・サービスは、ユーザーが自身のアカウントを管理する機能になります。ブラウザを開き http://localhost:8080/auth/realms/レルム名/account/ にアクセスし、利用者ユーザーでログインします。(レルム「demo」のユーザーでログインする場合は、 http://localhost:8080/auth/realms/demo/account/ にアクセス)

ユーザー・アカウント・サービスは、画面左側がメニュー、右側が選択メニューに対する設定という構成になっています。

image.png

レルムの国際化設定を有効にしている場合、画面右上部で言語設定を変更できます。また、画面右上部の「サインアウト」をクリックすることにより、Keycloakからサインアウトできます。

image.png

それでは、ユーザー・アカウント・サービスの設定をみていきます。

ユーザー・アカウント・サービスの設定項目

アカウント

アカウント情報を設定する画面です。

image.png

項目名 説明
ユーザー名 ユーザー名を指定する。
レルム設定で「ユーザー名の編集」を無効にしている場合は編集できない。
レルム設定で「Eメールをユーザー名とする」を有効にしている場合は表示されない。
Eメール Eメールアドレスを指定する。
名を指定する。
姓を指定する。

パスワード

パスワードを変更する画面です。

image.png

項目名 説明
パスワード 現在のパスワードを指定する。
新しいパスワード 新しいパスワードを指定する。
新しいパスワード(確認) 新しいパスワードを指定する。

Authenticator

二要素認証を行うための設定画面です。「IDとパスワード」という一つの要素による認証から、「IDとパスワード」と「ワンタイムパスワード」による二つの要素による認証に変更し、セキュリティを強化することができます。

ワンタイムパスワードの方式としては、 タイムベース(TOTP)カウンターベース(HOTP) が使用でき、ワンタイムパスワードのジェネレーターとしては FreeOTPGoogle Authenticator (Google認証システム) 等が使用できます。

image.png

具体的な使用方法については、@naokiiiii さんが12日目に書いてくれる予定です!

Federated Identities

外部IDプロバイダとのアカウント紐付けを行う画面です。レルムの設定で「アイデンティティプロバイダー」の設定を行っている場合に利用できます。

「アイデンティティプロバイダー」の設定については、@tamura__246 さんが15日目に書いてくれる予定です!

image.png

セッション

自身のセッションを管理する画面です。「全セッションからログアウト」リンクをクリックすると、全てのセッションがクリアされログアウト状態になります。

image.png

アプリケーション

ユーザーが利用可能なアプリケーションを参照する画面です。アプリケーションとはレルム設定で定義したクライアントのことです。表示されるアプリケーション名は、クライアントの設定で「ベースURL」を設定している場合、「ベースURL」へのリンクが貼られます。

image.png

ログ

ユーザーのイベントログを参照する画面です。レルムの設定で「ログインイベントの保存」を有効にしている場合に利用できます。ログを確認することにより、第三者による不正な操作がないかを確認することができます。

認証機能を提供する場合、セキュリティ要件としてユーザー自身のログイン履歴を参照できる機能が一般的に求められるので、この機能は最初からあるとうれしいですね :smile:

image.png

ユーザー・アカウント・サービスのカスタマイズ

ユーザー・アカウント・サービスは、管理コンソールと異なり、アプリケーションの利用者である一般ユーザー向けの画面になります。一般ユーザー向けの画面の場合、利用企業のカラーやスタイルに合わせてカスタマイズすることが多いと思います。Keycloakはこういった画面のカスタマイズも簡単にできるようになっています。

見た目を変えたい場合は、テーマのカスタマイズを行うことができます。詳細は、Keycloakのドキュメントを参照下さい。

また、見た目以外のカスタマイズ要件として、「ユーザー属性を増やしたい」という場合があるかと思いますが、以下のように簡単に行うことができます。

ユーザー属性「TEL」を追加する例

テンプレートファイル (KEYCLOAK_HOME)/themes/base/account/account.ftl を、利用中のテーマのディレクトリにコピーします。例えば、利用中のテーマがkeycloakの場合、コピー先は (KEYCLOAK_HOME)/themes/keycloak/account/account.ftl になります。

コピーした account.ftl に、以下のコードを追加します。

<div class="form-group">
   <div class="col-sm-2 col-md-2">
       <label for="user.attributes.tel" class="control-label">TEL</label>
   </div>

   <div class="col-sm-10 col-md-10">
       <input type="text" class="form-control" id="user.attributes.tel" name="user.attributes.tel" value="${(account.attributes.tel!'')?html}"/>
   </div>
</div>

Keycloak再起動後、アカウント画面を表示すると、カスタム属性「TEL」が追加されていることを確認できます。
image.png

属性のカスタマイズについての詳細は、Keycloakのドキュメントを参照下さい。

まとめ

ざっとですが、「ユーザー・アカウント・サービス」についてみてみました。どの画面も分かりやすく、直感的に操作できると思います。

参考資料

17
8
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
17
8