Keycloakを利用した多要素認証(OTP認証)
- Windows 10 Pro
- JDK 17(Eclipse pleiades 同梱のJDK17)
- Keycloak 20.0.3(2023/1/14時点最新)
Windows対応版のKeycloakセットアップ
Keycloakのダウンロード
keycloak本体を以下よりダウンロード
https://github.com/keycloak/keycloak/releases/download/20.0.3/keycloak-20.0.3.zip
Windows10のローカルドライブの下記フォルダへzipを展開
C:\tools\keycloak\keycloak-20.0.3
Keycloakを起動する
JDKをインストールしていないため、Eclipse pleiadesに同梱されているJDK17を利用するように、keycloak起動用のbatファイルを修正し、JAVA_HOMEの設定を追加。
@echo off
rem -------------------------------------------------------------------------
rem Keycloak Startup Script
rem -------------------------------------------------------------------------
rem 以下の設定を追加
set JAVA_HOME=C:\eclipse\pleiades-2022-06\java\17
set PATH=%JAVA_HOME%\bin;%PATH%
コマンドプロンプトを起動して以下のコマンドを実行しkeycloakを起動する。
C:\tools\keycloak\keycloak-20.0.3\bin\kc.bat start-dev
Keycloak Admin Console利用のための初期設定
http://localhost:8080/
にアクセスしてAdmin ConsoleのユーザーをCreateする。
Admin Consoleにアクセスして、作成した管理者でログインする。
OTP(One Time Password)認証のためのレルム作成
画面左上にあるコンボボックスを選択してCreate Realm
ボタンを押下
OTP認証の設定
Authentication -> Flows -> Policiesタブ -> OTP Policy で任意の設定項目を変更する。
公式のTOTP configuration optionsを参考に設定を検討する。
Keycloakに動作検証用のユーザーを追加してOTP認証の動作確認
以下にアクセスして、作成したユーザーでサインインする。
http://localhost:8080/realms/otp-sample/account
Google Authenticatorが利用できるアプリの候補に出てきていないので、FreeOTPのツールをスマホにインストールして、QRコードを読み込みワンタイムパスワードを入力することで無事ログインできることを確認できました。