Azure Files で Active Directory 認証を試す!

Azure Files に対して、Active Directory に登録されたユーザーを利用してWindows ACL (NTFS)アクセス権が設定できるようになりましたので、試してみたいと思います。
Azure Virtual Desktop のファイルサーバー&プロファイル置き場として利用できます。

さっそく、構成を確認してみましょう!

Azure Files のドメイン参加の図。Azure Files を Active Directory にドメイン参加させ、AAD Connect で Azure AD に同期する様子

【構成条件】
・ADは、AzureADと同期している必要がある ※ADはオンプレでも可
・Azure Filesは、同期されたテナントと同じテナントに作成すること
※エンタープライズアプリケーションを利用する事で同期無しでも可能
・Azure Filesは、ドメインに参加する必要がある ※未同期ドメインでも可
・マルチフォレスト環境の場合は「フォレスト信頼」している必要がある

【管理者が行う設定】

①Azure FilesをActive Directoryにドメイン参加させる
②ユーザーアカウントに対してAzure Filesへの接続を許可するためのRBACを設定
③管理者用端末から、Azure Filesを管理者権限(ストレージアカウントキー)でマウント
④Azure Files内のファイルに対してWindows ACL (NTFS)設定を実施

ストレージアカウントキーで Azure Files をマウントする図。ユーザーがストレージキーを使って Azure Files に接続する様子

【ユーザーからの接続の流れ】

Azure Files への接続の流れ図。ユーザーが Azure AD(AD から同期)で認証し、Azure Files へアクセスする様子

ユーザーデバイスからAzure Filesをマウントするには、AzureADでの認証とAzure Filesへの接続許可、Windows ACL 認可が必要となります。
Azure Filesへの許可を与えるには、ストレージアカウントに対してRBAC設定を行います。
以下いずれかのロールが割り当てられたユーザーが対象となります。
・Storage File Data SMB Share Reader:読み取り
・Storage File Data SMB Share Contributor:読み取り/書き込み/削除
・Storage File Data SMB Share Elevated Contributor:読み取り/書き込み/削除/変更
※複数設定した場合、上位の権限が優先される。
※Readerを選択すると、NTFSで書き込みを許可しても読み取りとなる。


全体の流れ

Step1:Azure FilesでのActive Directory認証設定
Step2:ストレージアカウントでのRBAC設定
Step3:Windows ACL (NTFS)アクセス権の設定

※作業用端末は、Filesが参加する予定のドメインに参加済みである必要があります。

事前に[Active Directory][Azure AD Connect][Azure Files]を作成しておいてください。

Active AD Connect の作成
Azure ファイルストレージ の作成


Step1:Azure FilesでのActive Directory認証設定

Azure FilesでADを認証に利用するには、PowerShellを実行する必要があります。
ここからの作業は、Filesが参加する予定のドメインに参加済みの端末で行います。
※作業用端末が参加しているドメインにAzure Filesは参加します。

先ずは、作業に必要なコマンドレットをダウンロード

下記コマンドを実施し、Azure Filesをドメインに参加させます。

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser

.\CopyToPSPath.ps1

Import-Module -Name AzFilesHybrid

Connect-AzAccount

$SubscriptionId = <subscription>
$ResourceGroupName = <resource-group-name>
$StorageAccountName = <storage-account-name>

Select-AzSubscription -SubscriptionId $SubscriptionId

Join-AzStorageAccountForAuth -ResourceGroupName $ResourceGroupName
-StorageAccountName $StorageAccountName
-DomainAccountType <ComputerAccount/ServiceLogonAccount>
-OrganizationalUnitDistinguishedName OU=AF,DC=wvdwvd,DC=com
-EncryptionType <AES256/RC4/AES256,RC4>

Update-AzStorageAccountAuthForAES256 -ResourceGroupName $ResourceGroupName -StorageAccountName $StorageAccountName
※AES256を選択した場合に実施

コンピュータアカウントが登録されているのが確認できます。

ADDS認証が有効になっているのが確認できます。


Step2:ストレージアカウントでのRBAC設定

Azure Filesへの接続を許可したいユーザー/グループを登録する。

[アクセス制御(IAM)]ー[+追加]ー[ロールの割り当ての追加]
※役割:ストレージファイルデータのSMB共有の管理者特権の共同作成者
※AzureAD上で作成したグループはNG

AD~AzureADとの同期ができない環境の場合
エンタープライズアプリケーションを作成し、RBACにて許可を与える事で、全ユーザーに対してアクセス許可を与える事ができます。

※PowerShellにて実施

$defaultPermission = “StorageFileDataSmbShareContributor”

$account = Set-AzStorageAccount -ResourceGroupName <resource-group-name> -AccountName <storage-account-name> -DefaultSharePermission $defaultPermission

$account.AzureFilesIdentityBasedAuth


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

作業用端末にAzure Filesをマウントし、Windows ACL(NTFS)設定を実施します。

ストレージアカウントから、Filesマウント用のコマンドをコピーし、PowerShellにて実行
※管理者アカウントのRBAC設定は不要

マウントができました!

[Owner]を変更すると、自由にWindows ACL(NTFS)権限の設定が可能

ちなみに、下記のように共有フォルダを設定すると、FSlogix用のユーザープロファイル置き場として利用できます。

表示されるのは、自身のユーザープロファイルだけ


それでは、接続してみましょう!

ユーザー用のアカウント&端末にて実施

[\\wvdadds.file.core.windows.net\share] ※ID&Passは聞かれません。

マウント後のファイル操作はWindows ACL(NTFS)アクセス権に従います。


マルチフォレスト環境の場合

ユーザーアカウントが参加するドメインとAzure Filesが参加するドメインが別れている場合

信頼設定は「フォレスト信頼」 ※一方向でも可

UPNサフィックス[file.core.windows.net]を追加
※Filesが参加しているAD(wvdwvd.com)にて実施

上記を実施後、自動同期されている[*.file.core.windows.net]を有効化
※Filesが参加していないAD(wvd.com)にて実施