ADFSなしでOfficce365へのシングルサインオンを実現する

皆さんこんにちは。国井です。
前回の投稿ではWindows Server 2016へのADFSサーバーのアップグレードの話をして、今回はADFSの要らないSSOの話をするという、なんかチグハグな感じの投稿ですが、これも多様性ってことでお付き合いください。

私はこれまで、ADFSの必要性について話をするときに、

オンプレミスではActive Directoryを使ってシングルサインオンを実現していました。
しかし、Active Directoryが使っているのはKerberosという社内限定のプロトコルであり、
クラウドに対しては残念ながらKerberosというプロトコルが使えません。
だからこそ、Kerberosのチケットをクラウドで有効なトークンに置き換え、
クラウドの世界もシングルサインオンが実現できるようなADFSが必要なのです。

という話をしてきました。

ところが、直近のバージョンのAzure AD Connectでは、
パススルー認証シングルサインオンというNew Technologyを実装し、
ADFSなしでも、Active Directoryで認証したユーザーは、Kerberosの仕組みを拡張し、そのままAzure ADにアクセスできるような仕組みを提供するようになりました。

■ ■ ■

Azure AD Connectとパススルー認証とシングルサインオンですが、Azure ADへのシングルサインオンの目的でADFSを使っていたのに、それがもう不要になるという破壊力抜群の機能です。
仕組みはこんな感じです。

PHS

PHS

パスワードハッシュ同期+SSOのパターンは、KerberosのチケットをAzure ADに渡すという技、
パススルー認証+SSOのパターンは、ユーザー認証をActive Directoryに丸投げするという技です。

今日はこの中から、パスワードハッシュ同期+SSOのパターンを見てみたいと思います。

設定は、とても簡単で、
Azure AD Connectのインストールウィザード実行時に、
[パスワード同期]を選択して、[シングルサインオンを有効にする]にチェックをつける。

image

あとは、ウィザードの最後のページで、オンプレミスドメインの管理者ID情報を入力するだけ。

image

image

ブラウザー側は、Internet Explorerのイントラネットゾーンに以下の2つのURLを入れておけば、

https://autologon.microsoftazuread-sso.com
https://aadg.windows.net.nsatc.net

認証処理が自動的に上図のように推移し、
ADFSと同様に、パスワードを入れるテキストボックスにはパスワードを入れなくても、勝手にサインインが完了します。

image

Active DirectoryにSTを発行してもらって、Azure ADにアクセスするってことは、
Azure AD用のコンピューターオブジェクトがあったりするの?って思ったあなた、正解です!イベントビューアでKerberosチケット発行の様子をトレースすると、AZUREADSSOACCという名前のコンピューターオブジェクト向けのSTが発行されていることが確認できます。

image

■ ■ ■

ところで、ADFSなしでシングルサインオンできるってことは、ADFSはもう要らないの?という疑問があります。
これについては、何を切り口に語るかで、答えは変わってくると思うのですが、
少なくとも言えることは、シングルサインオンをしたいという単純な理由だけでADFSを使うのではなく、組織で求められているセキュリティ要件を満たすためにADFSにしかできない機能を活用する
という考え方にシフトしていくものと思われます。
これについては、話が長くなりそうなので、機会を改めることとしますが、この当たりのテクノロジーは色々なものが登場してきていて、一度整理しておく必要があるかと思います。
私が提供しているトレーニングでは現在、どちらかというと、ADFSをメインに置いたトレーニングになっていますが、様々なテクノロジーを整理する場として、よろしければご活用いただければと思います。

■参考情報
Azure ADパススルー認証とは
https://docs.microsoft.com/ja-jp/azure/active-directory/connect/active-directory-aadconnect-pass-through-authentication
シングル サインオン (SSO) とは
https://docs.microsoft.com/ja-jp/azure/active-directory/connect/active-directory-aadconnect-sso
Azure AD Connect のカスタム インストール
https://docs.microsoft.com/ja-jp/azure/active-directory/connect/active-directory-aadconnect-get-started-custom
クラウド時代のセキュリティ担保にはActive Directoryフェデレーションサービスが必須となる?
http://www.atmarkit.co.jp/ait/articles/1508/19/news021.html