概要
Keycloakを使用してOTP(ワンタイムパスワード)認証を設定する方法をまとめます。
実行環境
- PostgreSQL: postgresql13
- Keycloak: keycloak-12.0.2
- JDBC Driver: postgresql-42.2.18
OTP認証の設定手順
1.新規でフローを作成
- レルムを選択し、AuthenticationのFlowsタブを選択します。
- Newをクリックします。
- 設定画面が表示されるので、以下の値で設定しSaveをクリックします。
項目名 | 設定値 |
---|---|
Alias | OTP Browser |
Description | 空欄 |
type | generic |
2.Cookieを追加
- 新規でフローを作成すると、FlowsタブのドロップダウンリストにOTP Browserが追加されているので選択します。
- Add executionをクリックします。
- 設定画面が表示されるので、以下の値で設定しSaveをクリックします。
項目名 | 設定値 |
---|---|
Provider | Cookie |
- Auth TypeにCookieが追加されていることを確認し、Requirementを以下の値に設定します。
項目名 | 設定値 |
---|---|
Requirement | Alternetive |
3.OTPFormを追加
- Add Flowをクリックします。
- 設定画面が表示されるので、以下の値で設定しSaveをクリックします。
項目名 | 設定値 |
---|---|
Alias | OTP Browser Form |
Description | 空欄 |
type | generic |
- Auth TypeにOTP Browser Formが追加されていることを確認し、Requirementを以下の値に設定します。
項目名 | 設定値 |
---|---|
Requirement | Alternetive |
4.UsernamePassword認証を追加
- 追加されたOTP Browser FormのActionsから、Add executionをクリックします。
- 設定画面が表示されるので、以下の値で設定しSaveをクリックします。
項目名 | 設定値 |
---|---|
Provider | Username Password Form |
- Auth TypeにUsername Password Formが追加されていることを確認し、Requirementを以下の値に設定します。
項目名 | 設定値 |
---|---|
Requirement | Required |
5.OTP認証を追加
- OTP Browser FormのActionsから、Add executionをクリックします。
- 設定画面が表示されるので、以下の値で設定しSaveをクリックします。
項目名 | 設定値 |
---|---|
Provider | OTP Form |
- Auth TypeにOTP Formが追加されていることを確認し、Requirementを以下の値に設定します。
項目名 | 設定値 |
---|---|
Requirement | Required |
Flowsの画面が以下のように設定されていればOKです。
OTP設定を行っているアカウントのみ、OTP認証を利用する設定
先述の5.OTP認証を追加を行わず、以下の手順で設定を行います。
5.条件付きフロー追加
- OTP Browser FormのActionsから、Add Flowをクリックします。
- 設定画面が表示されるので、以下の値で設定しSaveをクリックします。
項目名 | 設定値 |
---|---|
Alias | Conditional OTP |
Description | 空欄 |
type | generic |
- Auth TypeにConditional OTPが追加されていることを確認し、Requirementを以下の値に設定します。
項目名 | 設定値 |
---|---|
Requirement | Confitional |
6.Condition認証を追加
- Conditional OTPのActionsから、Add executionをクリックします。
- 設定画面が表示されるので、以下の値で設定しSaveをクリックします。
項目名 | 設定値 |
---|---|
Provider | Condition - User Configured |
- Auth TypeにCondition - User Configuredが追加されていることを確認し、Requirementを以下の値に設定します。
項目名 | 設定値 |
---|---|
Requirement | Required |
7.OTP認証を追加
- Conditional OTPのActionsから、Add executionをクリックします。
- 設定画面が表示されるので、以下の値で設定しSaveをクリックします。
項目名 | 設定値 |
---|---|
Provider | OTP Form |
- Auth TypeにOTP Formが追加されていることを確認し、Requirementを以下の値に設定します。
項目名 | 設定値 |
---|---|
Requirement | Alternetive |
Flowsの画面が以下のように設定されていればOKです。
ブラウザーフローの変更
- AuthenticationのBindingsタブを選択します。
- Browser Flowを今回作成したOTP Browserに設定し、Saveをクリックします。
使用イメージ
OTPを初めて設定する場合
- ID・パスワードによるログイン認証を行います。
- OTP設定画面が表示されます。
- スマホでFreeOTPまたはGoogle Authenticatorをインストールし、OTPを確認します。
- OTPを入力後submitをクリックし、ログインを行います。
OTPを設定済みの場合
- ID・パスワードによるログイン認証を行います。
- OTP認証画面が表示されます。
- 認証アプリでOTPを確認します。
- OTPを入力してログインを行います。
- 閲覧数 2357
画像
コメントを追加