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

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

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

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

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

[利用のための諸条件]
・Entra Join 構成
・AD~EntraIDにてアカウントを同期させる必要がある。
※EntraIDで作成されたアカウント/グループは利用できません。ゲストアカウントもNG。
・ストレージアカウント用のサービスプリンシパルに対してMFAを無効にすること。
・icaclsコマンドを利用する場合は、セッションホストからADへの接続が必要です。

・対応クライアント ※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でのEntra Kerberos認証設定
Step2:クライアントでの設定
Step3:Windows ACL (NTFS)アクセス権の設定

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

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


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

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

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

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

ドメイン名:同期元のADドメイン名。※ACL(NTFS)アクセス権を利用する際は必要
ドメインGUID:※AD上にてGet-ADDomainで取得可能。※上記同様
※icaclsコマンドで設定する際は、この設定は不要で代わりにADへのアクセスが必要です。

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

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

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

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

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

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

PrivateLinkを利用する場合は、赤枠を追記


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

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

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

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

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