Azure Files で Azure AD Kerberos 認証を試す!

Azure Files の新機能、Azure AD Kerberos 認証をご紹介したい思います。この機能はAzureADに参加した端末に対して、Windows ACL(NTFS)アクセス権を提供する事ができます。Azure Virtual DesktopでのAzureAD Join構成時にファイルサーバー&プロファイル置き場として利用できます。

さっそく、接続の流れを確認してみましょう!

緑線:ADアカウントをAzureADに同期させる。
青線:管理者用端末。ACL設定のためADとFilesにアクセスする必要がある。
黄線:AzureADに参加したクライアント端末。AzureADとFilesにアクセスする必要がある。
橙線:Filesからサービスプリンシパルを通して、Azure AD Kerberos認証を行う。
※サービスプリンシパルは、ユーザーのプロファイル情報を元にAzureADで認証を行う。

【管理者が行う設定】
①Azure FilesにてAzure AD Kerberos 認証を有効化
②ユーザーアカウントに対してAzure Filesへの接続を許可するためのRBACを設定
③管理者用端末から、Azure Filesを管理者権限(ストレージアカウントキー)でマウント
④Azure Files内のファイルに対してWindows ACL (NTFS)設定を実施

[利用のための諸条件]
・AzureAD Join 構成
・AD~AzureADにてアカウントを同期させる必要がある。
※AzureADで作成されたアカウントは利用できません。
・管理者端末は、ADとAzure Filesにアクセスできる必要がある。
・クライアント端末は、AzureADとAzure Filesにアクセスできる必要がある。

・対応クライアント ※Single-Session、Multi-session 利用可能
ーWindows 11
ーWindows 10 2004以降 (KB5007253)
ーWindows Server 2022 (KB5007254)

・対応ストレージアカウント
Standard[LRS/ZRS/GRS/GZRS] Premium[LRS/ZRS]で利用可能


全体の流れ

Step1:Azure FilesでのAzureAD Kerberos認証設定
Step2:クライアントでの設定
Step3:Windows ACL (NTFS)アクセス権の設定

※AVD AzureAD Join構成にてユーザープロファイル(FSlogix)の保存先として、Azure Filesを利用する環境を構築します。

※AVD AzureAD Joinの構築はコチラ
AVDでAD不要の AzureAD Join を試す!


Step1:Azure FilesでのAzureAD Kerberos認証設定

※Azure Files用のストレージアカウントを作成します。

作成したストレージアカウントー[ファイル共有]ー[構成されていません]を選択

Azure AD Kerberos:※有効にすると、サービスプリンシパル”[Storage Account] xxx.file.core.windows.net”が作成されます。

ドメイン名:同期元のADドメイン名。※ACL(NTFS)アクセス権を利用する際は必要
ドメインGUID:※AD上にてGet-ADDomainで取得可能。※上記同様

共有レベルのアクセス許可:※AzureAD内の全ユーザーが対象となります。
※一般ユーザーには、[記憶域ファイルデータのSMB共有の共同作成者]を割り当てます。

個別に[共有レベルのアクセス許可]を付与したい場合は、ファイル共有のRBAC設定にて実施
※一般ユーザーには、[記憶域ファイルデータのSMB共有の共同作成者]を割り当てます。

※両方を設定した場合は、権限の高い方が有効となります。

[AzureAD]ー[アプリの登録]ー”[Storage Account] xxx.file.core.windows.net”を選択

[APIのアクセス許可]ー[(テナント名)に管理者の同意を与えます] ー[はい]を選択

openid:アプリにユーザートークンの取得を許可します。
profile:アプリにユーザープロファイル[基本情報]の取得を許可します。
User.Read:アプリにユーザープロファイル[ジョブ情報]の取得を許可します。


Step2:クライアントでの設定

GPO、マスターイメージもしくは、セッションホストにて実施します。

コンピューターの構成 -> 管理用テンプレート -> システム -> Kerberos
ログオン時にクラウドKerberosチケットの取得を許可する -> [有効] を選択

上記をレジストリで設定する場合

reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters /v CloudKerberosTicketRetrievalEnabled /t REG_DWORD /d 1

FSLogixを利用する場合 ※VMにて複数の資格情報キーを読み込めるように

reg add HKLM\Software\Policies\Microsoft\AzureADAccount /v LoadCredKeyFromProfile /t REG_DWORD /d 1

【FSlogix設定】 ※Azure Filesの共有ディレクトリを指定

reg add “HKLM\Software\FSLogix\Profiles” /v Enabled /t REG_DWORD /d 1 /f
reg add “HKLM\Software\FSLogix\Profiles” /v VHDLocations /t REG_SZ /d “\\avdtushigami.file.core.windows.net\fslogix\share” /f
reg add “HKLM\Software\FSLogix\Profiles” /v DeleteLocalProfileWhenVHDShouldApply /t REG_DWORD /d 1 /f
reg add “HKLM\Software\FSLogix\Profiles” /v VolumeType /t REG_SZ /d “VHDX” /f
reg add “HKLM\Software\FSLogix\Profiles” /v VHDXSectorSize /t REG_DWORD /d 4096 /f


Step3:Windows ACL (NTFS)アクセス権の設定

Azure Files で Active Directory 認証を試す!」Step3を参照

※ドメインユーザーでOK


確認してみましょう!

AVD AzureAD Join構成において、User11で接続すると
Azure Filesにあるプロファイルをマウントして接続ができました。
試しに、User12にアクセスすると拒否されました。ACLが効いてますね!

保持しているKerberosチケットを確認
※Filesへのアクセスに、AzureADでKerberos認証を行っている

念のため、本当にAzureAD Joinなのか確認

AzureADのサインインログ ※AzureADからトークンが発行されているのがわかる

ちなみに、
AzureADで作成したアカウントや”Kerberosチケットの取得”設定がされていない端末から接続すると表示されます。同期されたアカウントを入力してもダメ