OpenAM14のパスワードレス認証設定
前提条件としてOpenAM14の環境構築が終わっている必要があります。
環境構築手順は前の記事OpenAM14を最速で構築する10分間クッキングにありますので参考にしてください。
パスワードレス認証設定の完了まで10分程度です。
パスワードレス認証モジュール設定
今回の手順では以下のような認証フローを設定します。
登録済みの認証デバイスがあればパスワードレス認証を実施し、
認証デバイスが無い、又はパスワードレス認証に失敗するとデバイスの登録フローへつながります。
**
WebAuthnサービスの追加
サービスタイプ [WebAuthn Authenticator サービス] をプルダウンから選択します。
2台目以降のOpenAMやOpenLDAPが無い場合は**[バインドユーザーパスワード]** に [amadmin] のパスワードを入力し [作成] ボタンを押します。
初期値として各種LDAP属性が表示されます。
この画面では特に変更することは無いです。 そのまま引き続き [認証] の設定へ進みます。
WebAuthnモジュールの追加
OpenAM14のWebAuthn認証モジュールは、登録、認証の2種に分かれています。
まずは登録モジュールから設定していきます。
[認証] の [モジュール] を開き [モジュールの追加] ボタンを押します。
新規モジュールの作成で識別しやすい [名前] 決め、**[種類]**プルダウンから [WebAuthn(登録)] を選びます。入力したら [作成] を押します。
[WebAuthn(登録)] モジュール設定画面が開きます。
特に変更はしなくても動作します。
RP名がDefault RPで都合が悪いなら、よりカッコ良い名前を付けます。
Orginの設定も適切な値が入っていますが、変更したい場合は変更します。
今回の例ではResidentKeyは使わないのでResidentKey設定もfalseのままです。
変更した場合は右下の [変更の保存] を押します。
保存すると認証モジュールの一覧画面へ戻ります。
追加したWebAuthn(登録)モジュールが [keyReg] として追加されています。
引き続き [WebAuthn(認証)] モジュールを追加するので、[モジュールの追加] ボタンを押します。
新規モジュールの作成で識別しやすい [名前] 決め、**[種類]**プルダウンから [WebAuthn(認証)] を選びます。入力したら [作成] を押します。
[WebAuthn(認証)] モジュール設定画面が開きます。
特に変更はしなくても動作します。
RP名やOriginなど登録モジュール側で変更した場合は同じ値にしておきます。
今回の例ではResidentKeyは使わないのでResidentKey設定もfalseのままです。
[MFAの2段階目以降に利用する] 場合はtrueに設定します。今回はfalseのままです。
右下の [変更の保存] を押します。
モジュールの追加は以上です。
認証連鎖の設定
OpenAMには認証連鎖という認証モジュールを組み合わせて、それぞれの認証結果を元に次の認証モジュールの要不要を判定する機能があります。
非常に単純化した例であれば、IDとパスワード認証の後に、ワンタイムパスワードを入力するような以下の例が簡単に設定できます。
この認証連鎖を使って簡単にパスワードレスの認証とデバイス登録の連鎖を作ります。
最初のモジュールでパスワードレス認証を実施し、成功すればログイン成功です。
失敗した場合はID/PW認証の後、認証デバイスの登録をします。
もちろんID/PWが間違えていれば登録できませんし、拡張としてこの間にOTPやリスクベース認証モジュールを挟んで条件を厳しくすることもできます。
認証連鎖の設定は [認証連鎖] から [認証連鎖の追加] を選びます。
[モジュールの追加] ボタンを押し認証連鎖へ追加したい認証モジュールを選びます。
モジュールの追加プルダウンから先程追加した [keyAuth] を選び、条件を [Sufficient] (Sufficientとはこのモジュールで成功しさえすれば認証成功となる条件です。以降に登録された認証モジュールは通過しません)
keyAuthが追加されたので、さらに**[モジュールの追加]** ボタン押し、パスワードレス認証に失敗した場合に動作する、登録のフローに使う認証モジュールを追加していきます。
次はデバイス登録前のID/Password認証の [DataStore(ID/Password)認証モジュール] を追加します。このモジュールで失敗した場合は認証連鎖を失敗として終了するように [Requisite] を条件にします。
DataStore認証モジュールが追加されたので、最後に**[モジュールの追加]** ボタン押し、パスワードレス認証のデバイス登録モジュールを追加します。
先程追加した [keyReg] 認証モジュールを選び、条件は初期値の [Required] にします。
認証連鎖へのモジュールの追加は完了です。右下の [変更の保存] 忘れずに押します。Sufficient、Requisiteの成功失敗の挙動は赤枠の中の矢印の向き通りとなります。
OpenAM標準認証連鎖の変更
パスワードレスの認証連鎖は作成されましたが、まだログイン時に利用する設定にはなっていません。
この組織(最上位のレルム)の既定の認証連鎖を先ほど追加した認証連鎖へ変更します。
[認証] の [組織認証連鎖] プルダウンメニューから作成した [WebAuthn] を選択し、変更の保存をします。
※最上位のレルムの組織認証設定をldapService以外へ変更した場合、amadminでログインするURLは[?service=adminconsoleservice]を付加したURLを使います。
https://openam14.example.com/openam?service=adminconsoleservice
詳細は省きますが、amadminは通常のLDAPユーザーではないため追加したWebAuthn認証連鎖ではログインできないためです。
これで設定は全て完了です。10分に収まりました?
パスワードレス認証の動作確認
設定は終わりましたので、お楽しみの動作確認です。
そう言えば使えるのはFIDO2対応の認証デバイスでU2Fでも大丈夫です。Windows Hello、MacBook TouchIDももちろん動作します。ブラウザはEdge、Chrome、Safari、Firefoxなどです。
認証デバイス登録
OpenAMのURLを開くとパスワードレス認証のログイン画面が出ます。
まだ未登録なのでそのままログインボタンを押して次へ
パスワードレス認証が失敗したので登録フローに入りました。
初期設定の時につくったテストユーザーのID/Passwordでログインします。
ローカル認証が有効な場合はPINの入力が要求されます。この辺はデバイス依存です。
認証デバイスの操作後登録が完了します。
入力フォームが表示されるので、識別しやすい名前を付けます。
登録後の [ダッシュボード] を開くと登録されたFIDO2認証デバイスがリストされます。
認証デバイスの登録は以上です。
パスワードレス認証
認証デバイスの登録も完了したので晴れてパスワードレス認証です。
赤枠は冗談です
ユーザーIDを入れ、ログインボタンを押します。
良いお年を...