在 Azure 檔案儲存體上啟用 Microsoft Entra Domain Services 驗證

Azure 檔案儲存體支援透過下列三種方法,使用 Kerberos 驗證通訊協定透過伺服器訊息區 (SMB),針對 Windows 檔案共用進行以身分識別為基礎的驗證:

  • 內部部署 Active Directory Domain Services (AD DS)
  • Microsoft Entra 網域服務
  • 適用於混合式使用者身分識別的 Microsoft Entra Kerberos

本文著重介紹如何啟用和設定 Microsoft Entra Domain Services (先前稱為 Azure Active Directory Domain Services),以使用 Azure 檔案共用進行身分識別型驗證。 在這種驗證案例中,Microsoft Entra 認證和 Microsoft Entra Domain Services 認證相同,而且可以互換使用。

強烈建議您複習運作方式一節,以選取正確的 AD 來源進行驗證。 根據您選擇的 AD 來源而定,設定會有所不同。

如果您不熟悉 Azure 檔案儲存體,建議您在閱讀文章之前先閱讀我們的計劃指南

注意

Azure 檔案儲存體支援以 RC4-HMAC 和 AES-256 加密的 Microsoft Entra Domain Services 進行 Kerberos 驗證。 建議您使用 AES-256。

Azure 檔案儲存體支援向 Microsoft Entra Domain Services 進行驗證,同時與 Microsoft Entra ID 進行完整或部分 (部分範圍) 的同步。 針對進行有限範圍同步的環境,系統管理員應該注意,Azure 檔案儲存體只會接受已同步處理之主體所授與的 Azure RBAC 角色指派。 如果授予身份識別的角色指派未從 Microsoft Entra ID 同步至 Microsoft Entra Domain Services,則 Azure 檔案儲存體服務會忽略這些角色指派。

適用於

檔案共用類型 SMB NFS
標準檔案共用 (GPv2)、LRS/ZRS Yes No
標準檔案共用 (GPv2)、GRS/GZRS Yes No
進階檔案共用 (FileStorage)、LRS/ZRS Yes No

必要條件

為 Azure 檔案共用啟用透過 SMB 進行 Microsoft Entra Domain Services 驗證之前,請確定您已完成下列必要條件:

  1. 選取或建立 Microsoft Entra 租用戶。

    您可以使用新的或現有的租用戶。 租用戶和您想要存取的檔案共用必須與相同的訂用帳戶相關聯。

    若要建立新的 Microsoft Entra 租用戶,您可以新增 Microsoft Entra 租用戶和 Microsoft Entra 訂用帳戶。 如果您有現有的 Microsoft Entra 租用戶,但想要建立新的租用戶與 Azure 檔案共用搭配使用,請參閱建立 Microsoft Entra 租用戶

  2. 在 Microsoft Entra 租用戶上啟用 Microsoft Entra Domain Services。

    若要支援使用 Microsoft Entra 認證進行驗證,您必須為 Microsoft Entra 租用戶啟用 Microsoft Entra Domain Services。 如果您不是 Microsoft Entra 租用戶的系統管理員,請連絡系統管理員,並遵循使用 Azure 入口網站啟用 Microsoft Entra Domain Services 的逐步指引。

    通常需要大約 15 分鐘才能完成 Microsoft Entra Domain Services 部署。 請先確認 Microsoft Entra Domain Services 的健全狀態顯示執行中,並已啟用密碼雜湊同步,才能繼續進行下一個步驟。

  3. 加入網域的 Azure VM 具有 Microsoft Entra Domain Services。

    若要使用 Microsoft Entra 認證從 VM 中存取 Azure 檔案共用,您的 VM 必須已通過網域加入 Microsoft Entra Domain Services。 如需如何將 VM 加入網域的詳細資訊,請參閱將 Windows Server 虛擬機加入受控網域。 只有在 Windows 7 或 Windows Server 2008 R2 以上的 OS 版本上執行的 Azure VM 才支援透過 SMB 使用 Azure 檔案共用的 Microsoft Entra Domain Services 驗證。

    注意

    如果 VM 未加入網域,則僅當 VM 對 Microsoft Entra Domain Services 的網域控制站未受限制網路連線時,VM 才能只能使用 Microsoft Entra Domain Services 驗證來存取 Azure 檔案共用。 這通常需要站對站或點對站 VPN。

  4. 選取或建立 Azure 檔案共用。

    選取與 Microsoft Entra 租用戶相同訂閱關聯的全新或現有檔案共用。 如需建立新檔案共用的資訊,請參閱 在 Azure 檔案中建立檔案共用。 為了獲得最佳效能,建議您的檔案共用與計劃存取共用的地方位於相同區域。

  5. 藉由使用儲存體帳戶金鑰裝載 Azure 檔案共用,驗證 Azure 檔案連線。

    若要驗證是否已正確設定虛擬機器和檔案共用,請嘗試使用儲存體帳戶金鑰裝載檔案共用。 如需詳細資料,請參閱裝載 Azure 檔案共用並在 Windows 中存取共用

區域可用性

使用 Microsoft Entra Domain Services 的 Azure 檔案儲存體驗證可在所有 Azure 公用、政府和中國區域中使用。

工作流程概觀

為 Azure 檔案共用啟用「透過 SMB 進行 Microsoft Entra Domain Services 驗證」之前,請確認您已正確設定 Microsoft Entra ID 與 Azure 儲存體環境。 建議您逐步完成必要條件,以確保您已完成所有必要的步驟。

遵循下列步驟,授與對 Microsoft Entra 認證之 Azure 檔案儲存體資源的存取權:

  1. 為您的儲存體帳戶啟用「透過 SMB 進行 Microsoft Entra Domain Services 驗證」,以向相關聯的 Azure AD Domain Services 部署註冊儲存體帳戶。
  2. 將共用層級權限指派給 Microsoft Entra 身分識別 (使用者、群組或服務主體)。
  3. 使用儲存體帳戶金鑰連線到您的 Azure 檔案共用,並設定目錄和檔案的 Windows 存取控制清單 (ACL)。
  4. 從已加入網域的虛擬機器中裝載 Azure 檔案共用。

下圖說明針對 Azure 檔案儲存體啟用「透過 SMB 進行 Microsoft Entra Domain Services 驗證」的端對端工作流程。

Diagram showing Microsoft Entra ID over SMB for Azure Files workflow

為您的帳戶啟用 Microsoft Entra Domain Services 驗證

若要透過 SMB 啟用 Microsoft Entra Domain Services 驗證 Azure 檔案儲存體,您可以使用 Azure 入口網站、Azure PowerShell 或 Azure CLI 在儲存體帳戶上設定屬性。 使用相關聯的 Microsoft Entra Domain Services 部署,將此屬性隱含地「加入網域」記憶體帳戶。 接著為記憶體帳戶中所有新檔案共用和現有檔案共享啟用透過 SMB 的 Microsoft Entra Domain Services 驗證。

請記住,只有在成功將 Microsoft Entra Domain Services 部署到您的 Microsoft Entra 租用戶之後,才能透過 SMB 啟用 Microsoft Entra Domain Services 驗證。 如需詳細資訊,請參閱先決條件

若要使用 Azure 入口網站來啟用透過 SMB 進行 Microsoft Entra Domain Services 驗證,請遵循下列步驟:

  1. 在 Azure 入口網站中,移至您現有的儲存體帳戶,或建立儲存體帳戶

  2. 在 [檔案共用] 區段中,選取 [Active Directory:未設定]

    Screenshot of the File shares pane in your storage account, Active directory is highlighted.

  3. 選取 [Microsoft Entra Domain Services],然後勾選核取方塊來啟用此功能。

  4. 選取 [儲存]。

    Screenshot of the Active Directory pane, Microsoft Entra Domain Services is enabled.

預設情況下,Microsoft Entra Domain Services 驗證會使用 Kerberos RC4 加密。 建議您遵循下列指示,將其設定為改用 Kerberos AES-256 加密。

此動作需要在由 Microsoft Entra Domain Services 管理的 Active Directory 網域上執行作業,才能連線到網域控制站,以要求對網域物件進行屬性變更。 下列 Cmdlet 是 Windows Server Active Directory PowerShell Cmdlet,不是 Azure PowerShell Cmdlet。 因此,這些 PowerShell 命令必須從已加入網域的用戶端電腦執行至 Microsoft Entra Domain Services 網域。

重要

本節中的 Windows Server Active Directory PowerShell Cmdlet 必須在 Windows PowerShell 5.1 中執行,且必須從已通過網域加入 Microsoft Entra Domain Services 網域的用戶端電腦執行。 PowerShell 7.x 和 Azure Cloud Shell 在此案例中無法運作。

以具有必要權限的 Microsoft Entra Domain Services 使用者身分登入已加入網域的用戶端電腦。 您必須具有網域物件 msDS-SupportedEncryptionTypes 屬性的寫入權限。 一般而言,「AAD DC 系統管理員」群組的成員會有必要的權限。 開啟標準 (非提升) PowerShell 工作階段,然後執行下列命令。

# 1. Find the service account in your managed domain that represents the storage account.

$storageAccountName= “<InsertStorageAccountNameHere>”
$searchFilter = "Name -like '*{0}*'" -f $storageAccountName
$userObject = Get-ADUser -filter $searchFilter

if ($userObject -eq $null)
{
   Write-Error "Cannot find AD object for storage account:$storageAccountName" -ErrorAction Stop
}

# 2. Set the KerberosEncryptionType of the object

Set-ADUser $userObject -KerberosEncryptionType AES256

# 3. Validate that the object now has the expected (AES256) encryption type.

Get-ADUser $userObject -properties KerberosEncryptionType

重要

如果您先前使用 RC4 加密並將儲存體帳戶更新為使用 AES-256,您應該在用戶端上執行 klist purge,然後重新掛接檔案共用,以使用 AES-256 取得新的 Kerberos 票證。

指派共用層級權限

若要使用體身分識別型驗證存取 Azure 檔案儲存體資源,身分識別 (使用者、群組或服務主體) 必須在共用層級具有必要的權限。 此流程類似於指定 Windows 共用權限,您可以在其中指定特定使用者對檔案共用的存取類型。 本節中的指引示範如何將檔案共用的讀取、寫入或刪除權限指派給身分識別。 強烈建議您透過明確宣告動作和資料動作來指派權限,而不是使用萬用字元 (*)。

大部分的使用者都應該將共用層級權限指派給特定的 Microsoft Entra 使用者或群組,然後設定 Windows ACL 以在目錄和檔案層級進行精細存取控制。 不過,您也可以設定預設共用層級權限,以允許參與者、提高權限的參與者或讀取者存取所有已驗證的身分識別

Azure 檔案儲存體有五個 Azure 內建角色,其中有些角色允許將共用層級權限授與使用者和群組:

  • 儲存體檔案資料特殊權限參與者藉助覆寫現有 Windows ACL,允許透過 SMB 在 Azure 檔案共用中讀取、寫入、刪除和修改 Windows ACL。
  • 儲存體檔案資料特殊權限讀者藉助覆寫現有 Windows ACL,允許透過 SMB 在 Azure 檔案共用中讀取存取。
  • 儲存體檔案資料 SMB 共用參與者允許透過 SMB 在 Azure 檔案共用中的讀取、寫入和刪除存取。
  • 儲存體檔案資料 SMB 共用提升權限的參與者允許透過 SMB 在 Azure 檔案共用中讀取、寫入、刪除和修改 Windows ACL。
  • 儲存體檔案資料 SMB 共用讀者允許透過 SMB 在 Azure 檔案共用中的讀取存取。

重要

完整管理控制檔案共用 (包括取得檔案擁有權的能力) 需要使用儲存體帳戶金鑰。 Microsoft Entra 認證不支持系統管理控制。

您可以使用Azure 入口網站、PowerShell 或 Azure CLI 將內建角色指派給使用者的 Microsoft Entra 身分識別,以授與共用層級權限。 請注意,共用層級 Azure 角色指派可能需要一些時間才會生效。 我們建議將高階存取管理的共用層級權限用於代表一組使用者和身分識別的 AD 群組,然後利用 Windows ACL 在目錄/檔案層級進行細微的存取控制。

將 Azure 角色指派給 Microsoft Entra 身分識別

重要

透過明確宣告動作和資料動作來指派權限,而不是使用萬用字元 (*)。 如果資料動作的自訂角色定義包含萬用字元,則指派給該角色的所有身分識別都會獲得所有可能資料動作的存取權。 這表示所有這類身分識別也會獲得新增至平台的任何新資料動作。 對於使用萬用字元的客戶來說,透過新動作或資料動作授與的其他存取權和權限可能是不必要的行為。

若要使用 Azure 入口網站將 Azure 角色指派給 Microsoft Entra 身分識別,請遵循下列步驟:

  1. 在 Azure 入口網站中,移至您的檔案共用,或建立檔案共用
  2. 選取存取控制 (IAM)
  3. 選取 [新增角色指派]
  4. 在 [新增角色指派] 刀鋒視窗中,從 [角色] 清單中選取適當的內建角色 (例如,儲存體檔案資料 SMB 共用讀者或儲存體檔案資料 SMB 共用參與者)。 對 [存取權指派對象] 保留預設設定:[Microsoft Entra 使用者、群組或服務主體]。 依名稱或電子郵件地址選取目標 Microsoft Entra 身分識別。
  5. 選取 [檢閱 + 指派],以完成角色指派。

設定 Windows ACL

使用 RBAC 指派共用層級權限之後,您可以在根、目錄或檔案層級指派 Windows ACL。 將共用層級權限視為決定使用者是否可以存取共用的高階閘道管理員,而 Windows ACL 則以更細微的層級運作,以判斷使用者可在目錄或檔案層級執行的作業。

Azure 檔案儲存體支援一組完整的基本和進階權限。 您可以透過掛接共用然後使用 Windows 檔案總管或執行 Windows icaclsSet-ACL 命令來檢視和設定 Azure 檔案共用中目錄和檔案的 Windows ACL。

檔案共用的根目錄支援下列權限:

  • BUILTIN\Administrators:(OI)(CI)(F)
  • NT AUTHORITY\SYSTEM:(OI)(CI)(F)
  • BUILTIN\Users:(RX)
  • BUILTIN\Users:(OI)(CI)(IO)(GR,GE)
  • NT AUTHORITY\Authenticated Users:(OI)(CI)(M)
  • NT AUTHORITY\SYSTEM:(F)
  • CREATOR OWNER:(OI)(CI)(IO)(F)

如需詳細資訊,請參閱透過SMB 設定目錄和檔案層級權限

使用儲存體帳戶金鑰來掛接檔案共用

設定 Windows ACL 之前,您必須先使用記憶體帳戶金鑰,將檔案共用掛接至已加入網域的 VM。 若要這樣做,請以 Microsoft Entra 使用者身分登入已加入網域的 VM,開啟 Windows 命令提示字元,然後執行下列命令。 切記以您自己的值取代 <YourStorageAccountName><FileShareName><YourStorageAccountKey>。 如果 Z: 已被使用,請將它取代為可用的磁碟機代號。 您可以在 Azure 入口網站中找到儲存體帳戶金鑰,方法是瀏覽至儲存體帳戶,然後選取 [安全性 + 網路]>[存取金鑰],您也可以使用 PowerShell Cmdlet。Get-AzStorageAccountKey

請務必使用 net use Windows 命令在此階段掛接共用,切勿使用 PowerShell。 如果您使用 PowerShell 掛接共用,則 Windows 檔案總管或 cmd.exe 將無法看見共用,而且您將無法設定 Windows ACL。

注意

您可能會看到完整控制 ACL 已套用至角色。 這通常已經提供指派權限的能力。 不過,因為有兩個層級的存取檢查 (共用層級和檔案/目錄層級),因此會受到限制。 只有具有 SMB 提升權限的參與者角色並建立新檔案或目錄的使用者,才能在不使用儲存帳戶金鑰的情況下為這些新檔案或目錄指派權限。 所有其他檔案/目錄權限指派都需要先使用記憶體帳戶金鑰連線到共用。

net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName> /user:localhost\<YourStorageAccountName> <YourStorageAccountKey>

使用 Windows 檔案總管設定 Windows ACL

掛接 Azure 檔案共享之後,您必須設定 Windows ACL。 您可以使用 Windows 檔案總管或 icacls 來執行這項操作。

請遵循下列步驟,使用 Windows 檔案總管,將完整檔案權限授與檔案共用下的所有目錄和檔案,包括根目錄。

  1. 開啟 Windows 檔案總管並以滑鼠右鍵按一下檔案/目錄,然後選取 [屬性]
  2. 選取安全性索引標籤。
  3. 選取 [編輯] 以變更權限。
  4. 您可以變更現有使用者的權限,或選取 [新增],將權限授與新的使用者。
  5. 在新增使用者的提示視窗中,在 [輸入要選取的物件名稱] 方塊中輸入您要授與權限的目標使用者名稱,然後選取 [檢查名稱] 以尋找目標使用者的完整 UPN 名稱。
  6. 選取 [確定]。
  7. 在 [安全性] 索引標籤中,選取您要授與新使用者的所有權限。
  8. 選取套用

使用 icacls 設定 Windows ACL

若要授與檔案共用下所有目錄和檔案的完整權限 (包括根目錄),請使用下列 Windows 命令。 請記得使用您自己的值取代預留位置值。

icacls <mounted-drive-letter>: /grant <user-email>:(f)

如需如何使用 icacls 設定 Windows ACL,以及不同類型支援權限的相關詳細資訊,請參閱 icacls 的命令列參考

從已加入網域的 VM 中裝載檔案共用

下列程序會確認您的檔案共用和存取權限已正確設定,而且您可以從已加入網域的 VM 存取 Azure 檔案共用。 請注意,共用層級 Azure 角色指派可能需要一些時間才會生效。

使用您授與權限的 Microsoft Entra 身分識別登入已加入網域的 VM。 務必使用 Microsoft Entra 認證登入。 如果磁碟驅動器已通過儲存體帳戶金鑰掛接,您必須中斷磁碟驅動器的連線,或再次登入。

執行以下 PowerShell 指令碼,或使用 Azure 入口網站持續掛接 Azure 檔案共用,並將它對應至 Windows 上的 Z: 磁碟驅動器。 如果 Z: 已被使用,請將它取代為可用的磁碟機代號。 因為您已通過驗證,因此您不需要提供儲存體帳戶金鑰。 指令碼會檢查此儲存體帳戶是否可透過 TCP 連接埠 445 存取,這是 SMB 使用的連接埠。 切記以您自己的值取代 <storage-account-name><file-share-name>。 如需詳細資訊,請參閱搭配 Windows 使用 Azure 檔案共用

除非您使用自訂網域名稱,否則即使您已為共用設定私人端點,您也應該使用尾碼 file.core.windows.net 來掛接 Azure 檔案共用。

$connectTestResult = Test-NetConnection -ComputerName <storage-account-name>.file.core.windows.net -Port 445
if ($connectTestResult.TcpTestSucceeded) {
    cmd.exe /C "cmdkey /add:`"<storage-account-name>.file.core.windows.net`" /user:`"localhost\<storage-account-name>`""
    New-PSDrive -Name Z -PSProvider FileSystem -Root "\\<storage-account-name>.file.core.windows.net\<file-share-name>" -Persist
} else {
    Write-Error -Message "Unable to reach the Azure storage account via port 445. Check to make sure your organization or ISP is not blocking port 445, or use Azure P2S VPN, Azure S2S VPN, or Express Route to tunnel SMB traffic over a different port."
}

您也可以在 Windows 提示字元中使用 net-use 命令來掛接檔案共用。 切記以您自己的值取代 <YourStorageAccountName><FileShareName>

net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName>

從未加入網域的 VM 或已加入不同 AD 網域的 VM 掛接檔案共用

如果 VM 未加入網域,或者 VM 加入了不同與儲存體帳戶的網域,則僅當 VM 對 Microsoft Entra Domain Services 的網域控制站 (位於 Azure 中) 未受限制網路連線時,VM 才能只能使用 Microsoft Entra Domain Services 驗證來存取 Azure 檔案共用。 這通常需要設定站對站或點對站 VPN。 存取檔案共用的用戶必須在 Microsoft Entra Domain Services 受控網域中擁有身分識別 (從 Microsoft Entra ID 同步至 Microsoft Entra Domain Services 的 Microsoft Entra 身分識別),而且必須提供明確的認證 (使用者名稱和密碼)。

若要從未加入網域的 VM 掛接檔案共享,用戶必須執行以下操作:

  • 提供認證,例如 DOMAINNAME\username,其中 DOMAINNAME 是 Microsoft Entra Domain Services 網域,username 是 Microsoft Entra Domain Services 中的身分識別使用者名稱,或
  • 使用 username@domainFQDN 標記法,其中 domainFQDN 是完整網域名稱。

使用其中一種方法可讓用戶端連絡 Microsoft Entra Domain Services 網域中的網域控制站,以要求並接收 Kerberos 票證。

例如:

net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName> /user:<DOMAINNAME\username>

net use Z: \\<YourStorageAccountName>.file.core.windows.net\<FileShareName> /user:<username@domainFQDN>

下一步

若要將檔案共用的存取權授與其他使用者,請遵循指派共用層級權限中的指示,並設定 Windows ACL

如需 Azure 檔案儲存體的以身分識別為基礎的驗證的詳細資訊,請參閱下列資源: