1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

OSSTechAdvent Calendar 2019

Day 10

OpenAM 14のWebAuthn認証設定10分間クッキング

Last updated at Posted at 2019-12-28

OpenAM14のパスワードレス認証設定

前提条件としてOpenAM14の環境構築が終わっている必要があります。
環境構築手順は前の記事OpenAM14を最速で構築する10分間クッキングにありますので参考にしてください。
パスワードレス認証設定の完了まで10分程度です。

パスワードレス認証モジュール設定

今回の手順では以下のような認証フローを設定します。
登録済みの認証デバイスがあればパスワードレス認証を実施し、
認証デバイスが無い、又はパスワードレス認証に失敗するとデバイスの登録フローへつながります。
fido2chain2.png

ログイン画面から amadmin でログインします。
w1.png

[最上位のレルム] を選択します。
w2.png

**

WebAuthnサービスの追加

データーストア関連のサービスを登録します。
w3.png

[サービスの追加ボタン] を押します。
w4.png

サービスタイプ [WebAuthn Authenticator サービス] をプルダウンから選択します。
w5.png

2台目以降のOpenAMやOpenLDAPが無い場合は**[バインドユーザーパスワード]** に [amadmin] のパスワードを入力し [作成] ボタンを押します。
w6.png

初期値として各種LDAP属性が表示されます。
この画面では特に変更することは無いです。 そのまま引き続き [認証] の設定へ進みます。
w7.png

WebAuthnモジュールの追加

OpenAM14のWebAuthn認証モジュールは、登録、認証の2種に分かれています。
まずは登録モジュールから設定していきます。
[認証][モジュール] を開き [モジュールの追加] ボタンを押します。
w8.png

新規モジュールの作成で識別しやすい [名前] 決め、**[種類]**プルダウンから [WebAuthn(登録)] を選びます。入力したら [作成] を押します。
w9.png

[WebAuthn(登録)] モジュール設定画面が開きます。
特に変更はしなくても動作します。
RP名がDefault RPで都合が悪いなら、よりカッコ良い名前を付けます。
Orginの設定も適切な値が入っていますが、変更したい場合は変更します。
今回の例ではResidentKeyは使わないのでResidentKey設定もfalseのままです。
変更した場合は右下の [変更の保存] を押します。
w10.png

保存すると認証モジュールの一覧画面へ戻ります。
追加したWebAuthn(登録)モジュールが [keyReg] として追加されています。
引き続き [WebAuthn(認証)] モジュールを追加するので、[モジュールの追加] ボタンを押します。
w11.png

新規モジュールの作成で識別しやすい [名前] 決め、**[種類]**プルダウンから [WebAuthn(認証)] を選びます。入力したら [作成] を押します。
w12.png

[WebAuthn(認証)] モジュール設定画面が開きます。
特に変更はしなくても動作します。
RP名やOriginなど登録モジュール側で変更した場合は同じ値にしておきます。
今回の例ではResidentKeyは使わないのでResidentKey設定もfalseのままです。
[MFAの2段階目以降に利用する] 場合はtrueに設定します。今回はfalseのままです。
右下の [変更の保存] を押します。
w13.png

モジュールの追加は以上です。

認証連鎖の設定

OpenAMには認証連鎖という認証モジュールを組み合わせて、それぞれの認証結果を元に次の認証モジュールの要不要を判定する機能があります。
非常に単純化した例であれば、IDとパスワード認証の後に、ワンタイムパスワードを入力するような以下の例が簡単に設定できます。
mfa.png

この認証連鎖を使って簡単にパスワードレスの認証とデバイス登録の連鎖を作ります。
最初のモジュールでパスワードレス認証を実施し、成功すればログイン成功です。
失敗した場合はID/PW認証の後、認証デバイスの登録をします。
もちろんID/PWが間違えていれば登録できませんし、拡張としてこの間にOTPやリスクベース認証モジュールを挟んで条件を厳しくすることもできます。
fido2chain.png

認証連鎖の設定は [認証連鎖] から [認証連鎖の追加] を選びます。
w14.png

まずは名前を付け、作成を押します。
w15.png

[モジュールの追加] ボタンを押し認証連鎖へ追加したい認証モジュールを選びます。
w16.png

モジュールの追加プルダウンから先程追加した [keyAuth] を選び、条件を [Sufficient] (Sufficientとはこのモジュールで成功しさえすれば認証成功となる条件です。以降に登録された認証モジュールは通過しません)
w17.png

keyAuthが追加されたので、さらに**[モジュールの追加]** ボタン押し、パスワードレス認証に失敗した場合に動作する、登録のフローに使う認証モジュールを追加していきます。
w18.png

次はデバイス登録前のID/Password認証の [DataStore(ID/Password)認証モジュール] を追加します。このモジュールで失敗した場合は認証連鎖を失敗として終了するように [Requisite] を条件にします。
w19.png

DataStore認証モジュールが追加されたので、最後に**[モジュールの追加]** ボタン押し、パスワードレス認証のデバイス登録モジュールを追加します。
w20.png

先程追加した [keyReg] 認証モジュールを選び、条件は初期値の [Required] にします。
w21.png

認証連鎖へのモジュールの追加は完了です。右下の [変更の保存] 忘れずに押します。Sufficient、Requisiteの成功失敗の挙動は赤枠の中の矢印の向き通りとなります。
w22.png

OpenAM標準認証連鎖の変更

パスワードレスの認証連鎖は作成されましたが、まだログイン時に利用する設定にはなっていません。
この組織(最上位のレルム)の既定の認証連鎖を先ほど追加した認証連鎖へ変更します。
[認証] の [組織認証連鎖] プルダウンメニューから作成した [WebAuthn] を選択し、変更の保存をします。
w23.png
※最上位のレルムの組織認証設定を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を開くとパスワードレス認証のログイン画面が出ます。
まだ未登録なのでそのままログインボタンを押して次へ
w24.png

パスワードレス認証が失敗したので登録フローに入りました。
初期設定の時につくったテストユーザーのID/Passwordでログインします。
w25.png

認証デバイスを要求する登録ダイアログが出ます。
w26.png

ローカル認証が有効な場合はPINの入力が要求されます。この辺はデバイス依存です。
w27.png

認証デバイスの操作後登録が完了します。
入力フォームが表示されるので、識別しやすい名前を付けます。
w28.png

登録後の [ダッシュボード] を開くと登録されたFIDO2認証デバイスがリストされます。
w30.png

認証デバイスの登録は以上です。

パスワードレス認証

認証デバイスの登録も完了したので晴れてパスワードレス認証です。
赤枠は冗談です
ユーザーIDを入れ、ログインボタンを押します。
w33.png

認証デバイスを操作して
w34.png

ログイン完了です。
w35.png

良いお年を...

1
3
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
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?