Keycloakを使用したOTP認証の設定方法と使用イメージ

  •  
 
yoshino2021年11月16日 - 17:43 に投稿

タグ

概要

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を初めて設定する場合

  1. ID・パスワードによるログイン認証を行います。

  1. OTP設定画面が表示されます。

  1. スマホでFreeOTPまたはGoogle Authenticatorをインストールし、OTPを確認します。

  1. OTPを入力後submitをクリックし、ログインを行います。

OTPを設定済みの場合

  1. ID・パスワードによるログイン認証を行います。

  1. OTP認証画面が表示されます。

  1. 認証アプリでOTPを確認します。

  1. OTPを入力してログインを行います。

掌上云书

コメントを追加

プレーンテキスト

  • HTMLタグは利用できません。
  • 行と段落は自動的に折り返されます。
  • ウェブページのアドレスとメールアドレスは自動的にリンクに変換されます。
CAPTCHA
この質問はあなたが人間の訪問者であるかどうかをテストし、自動化されたスパム送信を防ぐためのものです。
画像
Frow
Flow all
Bindings
Login
First OTP
OTP
Submit OTP
Second OTP
OTP_2
Login Second