Microsoft Passport の利点と現在の欠点、そして回避方法

Azure Active Directory に Windows 10 を「参加」(Azure AD Join)させることで、規定では Microsoft Passport が活性化され、Azure AD から発行された PRT(プライマリ リフレッシュ トークン)を使用して、Azure AD に接続されたクラウドアプリケーション群に対するシングルサインオンが実現できます。

Microsoft Passport とは ?
https://blogs.technet.com/b/junichia/archive/2015/08/17/3653348.aspx

これはとても素晴らしい機能なのですが、既にオンプレミス Active Directory を展開済の環境では、ちょっと困ったこともあります。というのは、Microsoft Passport を使い始めるとオンプレミス Active Directory を介さなくなるのです。当たり前と言えば当たり前ですが。。。具体的にはどういうことか。。?

以下の手書きの汚い図を、薄目でご覧ください。これは Microsoft Passport を使用した場合の、クラウドアプリにアクセスするまでの流れです。PRT をAzure AD に提示することでアクセストークンが発行されるので、Office 365 をはじめとするAzure AD アプリには完全な SSO が実現できます。ユーザーID(UPN)を提示する必要さえもありません。

image

さて、こうなると困るのはオンプレミスのアプリです。ファイルサーバーとか WEB サーバーとか。オンプレミス Active Directory に参加しているデバイスならば、AD から発行された TGT(Ticket Granting Ticket)を提示することで、サービスへのアクセスチケットが発行されるため、オンプレミス内では完全な SSO が実現できます。しかし、Passport の利用が始まるとオンプレミス AD を一切介さないため、クラウドサービスへの SSO は実現できても、オンプレミスとは認証的に完全に分断されてしまうのです。AD FS によるフェデレーション環境が構成されていても同じです。PRT が発行された段階で、AD FS は用無しとなります。つまり、オンプレミスのリソースにアクセスするために再度、資格情報(通常は User ID と Password)を提示する必要があるのです。

これは、インフラアーキテクトにとっては考えどころです。どちらのほうがメリットが大きいのか?まとめると以下のようになります。

前提として、AD FS によるアイデンティティフェデレーションが構成されているとしましょう。

オンプレミス AD に参加している PC(Windows 10 含む)

  • Windows ログオンにドメインアカウントを使用すれば、ADドメインに参加しているリソースにはシングルサインオンでアクセス可能
  • Azure AD に接続されているクラウドリソースには、初回にUPN(ユーザープリンシパルネーム)を指定すれば、その後はシングルサインオン

Azure AD に参加している Windows 10(これ以外のWindowsではできないので)

  • Windows ログオン(Azure AD に登録されているユーザーIDでログオン)後、Azure AD に接続されているクラウドアプリにはシングルサインオン(UPNを指定する必要さえも無い)
  • AD ドメインに参加しているリソースには、オンプレミス AD のユーザーIDとパスワードを指定する必要がある。パスワードから脱却!とか言ってるのと矛盾が発生するので気持ち悪い。。。

どちらを選択するかは、現時点ではクラウドリソースを優先するのか、オンプレミスリソースを優先するのかで決める必要がありそうです。

では、これ(後者)を解決する方法はあるのでしょうか?あります。選択肢は3つです。

  1. Azure AD アプリケーションプロキシを使用する
    オンプレミスに Windows 統合認証に対応した WEB サービスが存在する場合に有効です。オンプレミスの WEB サービスを Azure AD アプリケーションプロキシを介してアクセスすることで、Azure AD による認証を介して SSO でアクセスすることが可能です。オンプレミス WEB サービスには Azure AD アプリプロキシーのエージェントをインストールする必要がありますが、エージェントがオンプレミス AD とのやり取りによって Kerberos のアクセスチケットを自動的に取得してくれます。Azure AD を介するので、社外からも SSO 有効なのが素敵です。詳しくは、別途投稿します。
  2. Azure Active Directory に Windows 10 クライアントをデバイス登録する
    詳しい手順は追って解説しますが、オンプレミス AD に参加した Windows 10 デバイスを Azure AD DRS(Device Registration Service)にデバイス登録し、かつAzure AD Connect でデバイスオブジェクトを同期することで、Azuer AD から PRT を取得することができます(現時点の情報ではできるはず)。この方式のメリットは、Windows 10 がオンプレミス AD に参加しているので、ファイルサーバーなどのWEB以外のサービスにも SSO でアクセス可能な点です。 ※現在検証していますので、詳しくは今少しお待ちを。
  3. Windows Server 2016 を待つ
    Windows Server 2016 AD FS は PRT を取り扱うことができるようになります。これにより、Azure AD との連携によって PRT をオンプレミスでも利用できるようになります。

新しい OS が出るといろいろと考えどころが出てきて寝る時間がなくなりますが、超楽しいですよね。特に、認証系は。