AVDのAzureAD Join 構成においてSSO(シングルサインオン)が出来るようになったので、
試してみたいと思います。さらに、AzureADKerberosを作成する事で、オンプレミスのドメイン環境に対してもSSOが出来てしまいます!なんとNTLM認証に対してもSSOが可能です。これで、AzureAD Joinの弱点であった、ドメイン環境へのアクセス、FSlogixの利用などが一気に解決しますね! ※GPOはダメ
さっそく、構成を見てみましょう!
①クライアントからAzureADに対して認証を行う。
②認証が成功すると、AzureADが[Partial TGT][PRT]をセッションホストに発行する
※AzureADKerberosがあれば、オンプレドメイン環境へのSSOも可能
どの部分のパスワードが入力不要になるのか見てみましょう!
【手元PCがAD参加の場合】
①手元のPCへのサインイン=ADアカウントを入力
②AVDクライアントソフトでのサインイン=AzureADアカウントを入力
③セッションホストへのサインイン=※入力不要
④Microsoft365へのサインイン=※入力不要
【手元PCがAzureAD参加の場合】
①手元のPCへのサインイン=AzureADアカウントを入力
②AVDクライアントソフトでのサインイン=※入力不要
③セッションホストへのサインイン=※入力不要
④Microsoft365へのサインイン=※入力不要
[利用のための諸条件]
・AzureAD Join 構成
・対応セッションホスト ※Single-Session、Multi-session 利用可能
ーWindows 11 (KB5017383)
ーWindows 10 20H2以降 (KB5017380)
ーWindows Server 2022 (KB5017381)
・Windows版/MacOS版クライアントアプリ、ブラウザ接続
※手元PCは、ドメインに参加していなくてもよい
・利用アカウントが[DomainAdmin][クラウドID]の場合、初回のみパスワード入力が必要
・AzureADKerberosを利用する際は、Server2016以降、機能レベル2008R2以降である必要があります。
それでは、やってみよう!!
こちらを参考にAzureAD Join構成を構築します。
「AVDでAD不要の AzureAD Join を試す!」
ホストプールでのSSO設定
[RDPプロパティ]ー[接続情報]ー[RDPはサインインするためにAzureAD認証を使用しようとします]を選択 ←たったのコレだけ
こちらでもOK。RDPプロパティに[enablerdsaadauth:i:1]を追加します。
AzureADKerberosの作成 ※オンプレ環境へのSSOが必要な場合
※セッションホスト作成前に実施しておく必要があります。
※オンプレドメインに参加している端末にて実施
Install-Module -Name AzureADHybridAuthenticationManagement
$domain = “localad.com“ ←オンプレドメイン名を入力
$cloudCred = Get-Credential ←AAD GlobalAdminsを入力
$domainCred = Get-Credential ←AD DomainAdminsを入力
Set-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred -DomainCredential $domainCred
Get-AzureADKerberosServer -Domain $domain -CloudCredential $cloudCred -DomainCredential $domainCred
※それぞれが一致している必要があります。
[Id]と[CloudId] / [DomainDnsName]と[CloudDomainDnsName]
[KeyVersion]と[CloudKeyVersion] / [KeyUpdatedOn]と[CloudKeyUpdatedOn]
コンピューターオブジェクトが作成されている
[表示]ー[拡張機能]
[Domain Admins]アカウントでセッションホストに接続する方法
※通常だと、[Domain Admins]アカウントで接続すると初回のみパスワードを聞かれます。
[AzureADKerberos]ー[プロパティ]を選択
[属性エディター]ー[msDS-NeverRevealGroup]ー[編集]を選択
[Domain Admins]と[Administrators]を削除
それでは、確認してみましょう!
Windows版クライアントアプリを起動ー[Subscribe]を選択
AzureAD参加PCの場合、アカウント選択画面が表示される。※パスワード入力は不要
※AD参加PCの場合、AzureADアカウント&パスワードの入力が必要
接続を許可されたリソースが表示されます。
デスクトップを選択すると、いきなりデスクトップが表示される。
Teamsを実行すると、サインイン済み状態で起動します!
試しに、オンプレドメイン環境のファイルサーバーにUser11で接続しました。
User12にアクセスすると拒否されました。ACLが効いてますね!
おまけ
初回接続時のみに表示される、パスワード入力と接続許可を求めるポップアップを消す方法
※事前にセッションホストが自動登録される「動的デバイスグループ」を作成しておきます。
先ずは、エンタープライズ アプリケーション[Microsoft Remote Desktop]のオブジェクトIDを調べます。
ブラウザにて、Graph Explorer を開きます。
PATCH https://graph.microsoft.com/beta/servicePrincipals/95ba6f91-3bc7-4519-af7f-ae1655af4bfc/remoteDesktopSecurityConfiguration
POST https://graph.microsoft.com/beta/servicePrincipals/95ba6f91-3bc7-4519-af7f-ae1655af4bfc/remoteDesktopSecurityConfiguration/targetDeviceGroups
最後に確認
GET https://graph.microsoft.com/beta/servicePrincipals/95ba6f91-3bc7-4519-af7f-ae1655af4bfc/remoteDesktopSecurityConfiguration
同じ作業をエンタープライズ アプリケーション[Windows Cloud Login]でも実施します。