Azure AD Connect のシングル サインオン & パススルー認証 (プレビュー) によるクラウド完結のユーザー認証インフラの実現

こんにちは、プロダクティビティ担当の和田です。
必要なのはわかってはいるのですが、AD FS サーバーの運用って、大変ですよね?

ユーザーにシングル サインオン環境は提供したいが、せっかくクラウドを使用するのに、新規サーバーを構築して、かつ公的証明書などを含むサーバー運用が増えてしまうことは、出来れば避けたいという方が多いのではないかと思います。クラウド側に問題がなくても、AD FS サーバーに問題があると、全てのユーザーがクラウド アプリに接続できなくなってしまうので、重要な基盤です。ユーザー認証基盤は、クラウド アプリ利用とセキュリティー対策の根幹に関わるところですので、エンド ユーザーにはあまり意識されない部分ですが、システム全体をデザイン・運用していく上での最重要ポイントのひとつと言ってよいと思います。

今後は、より安全により簡単に、その運用負荷を軽減できるようになる予定です。
これを実現していくのが、現在パブリック プレビュー中の Azure AD Connect の新しい機能である、Azure AD シングル サインオン (SSO) 機能と、Azure AD パススルー認証機能です。

Azure AD SSO + パススルー認証は、簡単に言ってしまうと、AD FS サーバーを構築せずとも、Azure AD Connect ディレクトリ同期サーバーのみで、オンプレミスの Active Directory ドメインに参加している PC に対して SSO を提供できる、待望の機能です。
今までのパスワード ハッシュ同期でも、初回のサインイン時にブラウザーや Office でパスワードを保存して「サインインしたままにする」にチェックを入れれば、次回以降はパスワード有効期限までの間は、簡易 SSO (シングル ID ・シングルパスワード) として使用できていましたが、この Azure AD SSO + パススルー認証を使用すると、パスワードを入力する必要がなくなり、クラウド上にパスワードを同期する必要もありませんので、真の SSO 環境を提供できます。

 

シングルサインオンの動作イメージ
Azure AD Connect で SSO を有効化すると、このようなイメージでユーザー エクスペリエンスを実装できます。AD FS によるフェデレーションの場合、サインインのリダイレクト処理が入りますが、SSO の場合はリダイレクトによる画面推移は行われず、ユーザー名を入力するだけでそのままサインイン完了できます。

 

<ドメイン参加した PC で社内 LAN からアクセスする場合>

[video poster="https://msdntnarchive.blob.core.windows.net/media/2017/03/mediaposter1.png" width="1024" height="768" mp4="https://msdnshared.blob.core.windows.net/media/2017/03/media1_x264.mp4"][/video]

 

<社外からアクセスする場合>

[video poster="https://msdntnarchive.blob.core.windows.net/media/2017/03/mediaposter2.png" width="1024" height="768" mp4="https://msdnshared.blob.core.windows.net/media/2017/03/media2_x264.mp4"][/video]

 

Azure AD シングル サインオン機能の概要

SSO は、Azure AD Connect の新しいオプション機能で、パスワード同期またはパススルー認証と組合わせて使用することができます。サポートされている条件、およびクライアント環境は以下の通りです。先進認証(Modern Authentication/ADAL)を使用できることが前提となります。

<環境要件>

  • ドメインに参加したコンピューターを利用している
  • 企業のワイヤードまたはワイヤレス ネットワーク上や、VPN 接続などのリモート アクセス接続経由で、ドメイン コントローラーに直接接続している
  • ブラウザーのイントラネット ゾーンの一部としてクラウドに Kerberos エンドポイントを定義している

<サポートされているクライアント>

  • OS : Windows 7, Windows 8, Windows 8.1, Windows 10
  • ブラウザー : Internet Explorer, Chrome, Firefox
  • Office : Office 2013, Office 2016 (ADAL 有効化)

Azure AD Connect で SSO を有効にすると、オンプレミス Active Directory で AZUREADSSOACCT という名前のコンピューター アカウントが作成され、Kerberos の復号化キーが Azure AD と安全に共有されます。 さらに、クライアントと Azure AD の認証時に使用される、クラウド URL を表す 2 つの Kerberos サービス プリンシパル名 (SPN) が作成されます。この設定が完了すると、統合 Windows 認証ベースのアプリケーションと同じ方法で認証が行われるようになり、SSO を実現しています。何かしらの理由により SSO が失敗した場合や、社外や WORKGROUP 環境からアクセスする場合などは、通常通りサインイン ページでパスワードを入力することでサインインできます。

詳細な前提条件や具体的な構成手順については、以下の技術情報を参照してください。

Title:  シングル サインオン (SSO) とは (プレビュー)
URL: /ja-jp/azure/active-directory/connect/active-directory-aadconnect-sso

 

Azure AD パススルー認証の概要

パススルー認証は、AD FS サーバーを構成しなくても、シンプルな構成でオンプレミスの Active Directory ドメイン コントローラーに対してユーザー認証 (パスワード検証) を実行できます。複雑なネットワーク インフラを導入したり、クラウドにオンプレミス パスワードが存在したりする必要がなくなります。パススルー認証は Azure AD Connect を使用して構成することができ、パスワードの検証要求をリッスンするシンプルなエージェントで構成されます。エージェントは複数のサーバーにデプロイでき、簡単に高可用性と負荷分散を実現できます。特筆すべき点は、すべての通信が Out-going (オンプレミス to インターネット) のみであるため、AD FS を構成するときのような In-coming の通信の受け入れ許可は必要ありません。DMZ に WAP を構築する必要も、外部公開する必要も、公的な証明書の準備も運用も必要ありません。ネットワーク管理者にとっても、サーバー管理者にとっても、最良なソリューションとなると思います。なお、本機能も、シングルサインオン機能と同様に、先進認証 (Modern Authentication/ADAL) を使用できることが前提となります。

詳細な前提条件や具体的な構成手順については、以下の技術情報を参照してください。

Title: Azure AD パススルー認証とは
URL: /ja-jp/azure/active-directory/connect/active-directory-aadconnect-pass-through-authentication

 

SSO +パススルー認証の動作イメージ

上記 2 つを組合わせると、例えば以下のような認証フローを実現できます。

sso_passthrough_overview

<社内ネットワークからの SSO>

  1. クライアントはユーザー名を提示して認証を開始
  2. Azure AD は、Kerberos チケットを提供するよう、401 認証エラーを通じてクライアントに要求
  3. クライアントは、Active Directory へ Azure AD 用のチケットを要求
  4. Active Directory は、Azure AD Connect によって作成されたコンピューター アカウントを検索し、コンピューター アカウントのシークレットで暗号化された Kerberos チケットをクライアントに返答 (チケットにはコンピューターにサインインしているユーザーの ID が含まれる)
  5. クライアントは、Active Directory から取得した Kerberos チケットを Azure AD に送信(その後 Azure AD で評価)

<社外からのパススルー認証>

  1. クライアントはユーザー名とパスワードを提示して認証を開始
  2. オンプレミス コネクタがユーザー名とパスワードを取得
  3. オンプレミス コネクタが Active Directory に対して検証し、ドメイン コントローラーが要求を評価しコネクタに返答
  4. コネクタから Azure AD に対して返答
  5. Azure AD が応答を評価し、必要に応じてトークンを発行したり、多要素認証を要求したりしてユーザーに応答

 

"シングル サインオン" + "パススルー認証" + "Azure AD Premium" で実現するセキュアでクラウド完結のユーザー認証 & アクセス制御基盤

現時点ではいくつか制約があるため、残念ながら "AD FS の完全な置き換え" とまではいけないのですが、将来的には「Azure AD シングル サインオン」、「Azure AD パススルー認証」、「Azure AD Premium 条件付きアクセス」の 3 つを使用することで、クラウドのみで一般的に求められるシングル サインオン要件とアクセス制御要件に応えることができるようになると期待できます。

sso_passthrough_overview2

 

<現時点の主な制約>

  • 先進認証(Modern Authetication/ADAL)への対応が必須であること
  • レガシー認証を制御できないこと

Azure AD Premium の条件付きアクセスに関する詳細な情報は、以下の技術情報を参照してください。

Title: : Azure Active Directory の条件付きアクセス
URL: /ja-jp/azure/active-directory/active-directory-conditional-access

現時点で明確な本リリース時期はお知らせできないのですが、是非これらのプレビュー機能を検証頂き、今後の認証インフラの計画のひとつに加えて頂ければと思います。