【Office365】 脱ADFS!! 次世代の認証機能まとめ -其之弐-

皆さん、こんにちはMiyaです。

前回ではパススルー認証がメインの記事でしたので、今回はパスワード同期の話をします。

といってもパスワード同期(以下PHS)がsSSOのサポート対象になっただけであって、従来の同期IDと何ら変わりありません。

ですので、特に難しい話も新しい話もでてこません。

スポンサーリンク:

パスワード同期って?

PHSとはオンプレADのパスワードハッシュ値をAzureADに同期し、AzureADで認証を行う認証方式です。

認証フローだけみると、単純にAzureADで認証しているため、オンプレリソースを経由することはありません。構成としてはシンプルでキレイですね。

認証プロパイダーによるフェデレーションIDやパススルー認証では、認証基盤にオンプレADを使うことから、オンプレサーバーが死んだと同時にOffice365への認証サービスもストップするという欠点があるのに対し、AzureADに認証が依存するので、オンプレサーバーが軒並み死のうがサインインは継続して行えます。

パスワードハッシュ同期

構成はシンプルで、オンプレに障害点がない構成であることからMicrosoftが現在最も推奨する認証基盤の構成だとか。

ちなみに、パスワードのハッシュ値は複数のアルゴリズムで算出された戻しが難しい文字列のため、安全性は非常に高いです。

パスワードのハッシュ化

オンプレADからAzureADにパスワードを同期するのですが、もちろんパスワードそのものを同期するのではなく、パスワードのハッシュ値を同期します

ハッシュアルゴリズムはかなり複雑に構成されているため、仮にハッシュ値が漏洩しても被害はありません、と強くアピールしています。

Title:Azure AD Connect 同期でパスワード同期を実装する
https://docs.microsoft.com/ja-jp/azure/active-directory/connect/active-directory-aadconnectsync-implement-password-synchronization

ハッシュ変換以外にもSaltの付与やストレッチングが取り入れられているため、ハッシュ辞書、総当たり攻撃も効きません、とのこと。

ユーザーがサインインする際に入力したパスワード文字列を、AzureADが同じアルゴリズムでハッシュ値を求め、照合します。
パスワード同期

これらより、パスワード同期を選択することで「セキュリティレベルが下がる」ではなく、よりセキュアな認証基盤であると言えそうですね。

構成方法

構成方法は紹介するほど難しくありません。ウィザードの中でポチポチするだけの簡単なお仕事です。

全体を通した手順はパススルー認証ですが過去記事を参考にして下さい。

Title:Office365 AADConnectのパススルー認証によるSSO構築①
https://miya1beginner.com/office365-aadconnect%E3%81%AE%E3%83%91%E3%82%B9%E3%82%B9%E3%83%AB%E3%83%BC%E8%AA%8D%E8%A8%BC%E3%81%AB%E3%82%88%E3%82%8Bsso%E6%A7%8B%E7%AF%89%E2%91%A0
Title:Office365 AADConnectのパススルー認証によるSSO構築②
https://miya1beginner.com/office365-aadconnect%E3%81%AE%E3%83%91%E3%82%B9%E3%82%B9%E3%83%AB%E3%83%BC%E8%AA%8D%E8%A8%BC%E3%81%AB%E3%82%88%E3%82%8Bsso%E6%A7%8B%E7%AF%89%E2%91%A1

AADConnectの構成ウィザードでパスワード同期を選択しましょう。

パスワード同期

あとは、初回同期を済ませて完了です。非常に簡単ですね。

AADConnectの可用性を考えるのであれば、片系をステージングモードとして構成しておきましょう。

Title:Azure AD Connect Sync: 操作タスクおよび考慮事項
https://docs.microsoft.com/ja-jp/azure/active-directory/connect/active-directory-aadconnectsync-operations

パスワード同期を構成して、最初の同期をしてみましょう。Office365管理ポータルでは、パスワード同期の正常性が確認できます。ちなみに、パスワード同期のサイクルは2分間隔で変更できる設定ではありません

パスワード同期

パスワード同期の特徴

パスワード同期を選択する際に気にしておくポイントがパスワードなどのセキュリティポリシーです。

フェデレーションIDでは、認証基盤がオンプレADであることから、ログインに関わるセキュリティポリシーはオンプレADに従って行われるのですが、「パスワード同期のようにAzureADで認証する場合はどうなるの?」と疑問が浮かぶ方もいるでしょう。

基本的には、オンプレADと同等のポリシー内容で運用可能なのですが、一部制約というか注意事項があります。

パスワードの複雑性

パスワードポリシーはオンプレADのパスワードポリシーが優先されます。
AzureADのパスワードポリシーって、ある程度厳しめのポリシーが設けれらていますよね。

Title:クラウド ユーザー アカウントにのみ適用されるパスワード ポリシー
https://docs.microsoft.com/ja-jp/azure/active-directory/active-directory-passwords-policy#password-policies-that-only-apply-to-cloud-user-accounts

オンプレADで作成したユーザーとそのパスワードは、オンプレADのパスワードポリシーが優先されるため、AzureADに同期した後も同じパスワードが継続して使えます。

但し、これはAADConnectで同期したIDに限る話で、クラウド側に新たにユーザーを作成する場合は、AzureADのパスワードポリシーに従う必要があります。当然ですね。

パスワードの有効期限

オンプレADでパスワードに有効期限を設定していたとしても、パスワードの有効期限設定はAzureADに同期されません

そのため、オンプレADでパスワードの有効期限が到来した場合でも、そのユーザーは継続してOffice365にサインインできる状態となります。

まぁオンプレ側でパスワードを更新⇒PW同期のタイミングでOffice365も更新されるので、特に懸念するようなポイントでもありませんね。

パスワードの有効期限とか世代管理…とかとか、このような古い考え方を取っ払ってユーザーに優しくしておき、多要素認証などでセキュリティレベルを上げておきたいですね。切実に。

アカウントの無効化

オンプレADではユーザーに対してアカウントを無効にすることで一切のログインを断ち切ることが出来ます。

端末の紛失や、辞職・休職などの一般的な運用の中で行われがちなこの操作ですが、このアカウント状態はOffice365に即時反映されるものでありません

アカウントの無効/有効状態はユーザーオブジェクトの属性として持っており、姓名やメールアドレスなどといったユーザー情報と同等です。

パスワード同期

そのため、オンプレADで属性変更しても、再度同期が走らなければAzureADには反映されないため、若干のタイムラグが発生します。

既定ではAADConnectは30分で一回の差分同期が実行されますが、タイムリーな対応が必要な場合は、PowershellからStart-ADSyncSyncCycleコマンドで強制同期しておきましょう。

まとめ

PHSはオンプレADのリソースを活かしつつ、認証基盤をAzureADに移行するMicrosoft推奨の認証構成です。

sSSOをサポートするID形態であることから、オンプレADで認証する必要性が特にないのであれば、PHS>PTA派です。

いけてる点

・オンプレに障害点がない
・低コストで導入・運用が可能
・sSSOがサポートされる(ドメイン参加端末のみ)
・PTAにような認証Agentが不要
・オンプレのパスワードポリシーが優先される
・パスワードハッシュのアルゴリズムが強固

導入に向けての課題

・Azureの条件付きアクセスが必要
・AzureADではレガシー認証は制御対象外
・sSSO、アクセス制御を実装するにはOfficeのADAL化が必須

パスワード同期を単体だけでみると、クライアント側の条件もなく、簡単に構成可能なのですが、もちろんsSSOや条件付きアクセスが必要になる要件が出てくるでしょう。

そうした場合に、PTA同様にクライアント側の準備が必要になってくるのが難しいポイントです。

おわりに

いかがでしたでしょうか?現在いくつかあるOffice365の認証構成の中で最もシンプルな構成ですので、特別な理由がない限りはこちらを選択する方が良いでしょう。

次回はいよいよsSSOの話です。それでは良いOffice365ライフをっ♪

スポンサーリンク