OktaとAzure ADをフェデレーションした後にPINやWindows Helloの認証でループした話
はじめに
2022年10月1日からAzure ADのユーザーがMFAを求められるようになったので、OktaをIdPとしてAzure ADとのフェデレーションを設定しました。
(それまではSWAのままにしていました)
参考にした記事は↓となります。
thdyさんこの場を借りてお礼申し上げます…🙇♂️
この記事ではその後にハマったことを記載しています。
ハマったこと
thdyさんのこの記事を参考にAzure ADとのフェデレーションを設定し意気揚々とWindowsの検証機を初期化→再セットアップしていました。
PINの設定でOktaの認証がループする
Windows11 Proの設定を初期セットアップを進めていくと、道中PINの設定を求められます。
設定しようとするとOktaの認証を求められるのでいつも通り認証すると…
↑の画面でループし、最終的にエラーが吐き出されました。
Okta MFA from Azure AD
はEnable
にしてるのになんで…?という感じです。
Okta MFA from Azure ADの設定
推測
Webで色々と調べているとこのドキュメントがHitしました
結局何を言っているかというと、Azure AD側でMFAを有効にしているのに、Oktaのアプリ側のSign in PolicyでMFAが有効になっていないと無限ループに陥るよ。ってことです(多分)
ここで1つ設定を思い出します。
今回のフェデレーションの設定でWindowsのログインにOktaのパスワードを使えるようにSign in Policyを変更しました。
元々、Client is
にはWeb browser
とModern Authentication
だけが入っていましたが、WindowsへのログインのためにExchange Active Syng/Legacy Auth
を追加しました。
それでその下にご丁寧に書いていました。
The Exchange ActiveSync/Legacy Auth limits the rule to password-based authentication only. See
「Exchange Active Syng/Legacy Auth
があるとルールをパスワードのみに制限するよ!!」
これは良いんですが、同じルールに入っているWeb browser
とModern Authentication
もMFAがDisable
と同義になっちゃったんですね(推測)
赤枠の部分がPasswordから変更出来なくなってしまっていました
解決方法
Ruleを分けます。
OktaのAdmin画面からSecurity > Authentication policies > Microsoft Office 365(環境によって名前違うかも)
に入ります
まずは新しいRuleを作ります。
Ruleに注釈が入れられないので、Rule name
を分かりやすくした方が良いです。
今回はNot Legacy Auth
としました。
Client is
の項目でOne of the following clients:
を選択し、Web browser
とModern Authentication
追加します。
そしてUser must authenticate with
でAny 2 factor types
を選択します。
次に既存のRuleを修正します。
こちらのRule name
はLegacy Auth
としました。
Client is
の内容をExchange Active Syng/Legacy Auth
だけにします。
その後、Ruleの順番を整理します。
- Legacy Auth
- Not Legacy Auth
↑のようにし、Legacy Auth
ならパスワード認証だけ、そうじゃないならMFAを必要とする。という導線にしています。
これで設定は完了です。
あとはPINの設定でOktaの認証が通ればOKです。
最後に
OktaとAzure ADとのフェデレーションはハマりどころがそこそこありますが、構成するとWindowsのセットアップにOktaのアカウントを使えたりとセキュリティの向上が望まれます。
ぜひ皆さんも設定されてみてはいかがでしょうか?
Discussion