在 Azure 文件存储上启用 Microsoft Entra 域服务身份验证

Azure 文件存储采用以下方法来支持使用 Kerberos 身份验证协议通过服务器消息块 (SMB) 对 Windows 文件共享进行基于标识的身份验证:

  • 本地 Active Directory 域服务 (AD DS)
  • Microsoft Entra 域服务
  • 用于混合用户标识的 Microsoft Entra Kerberos

本文重点介绍如何启用 Microsoft Entra 域服务(以前为 Azure Active Directory 域服务),以实现基于标识的身份验证,从而访问 Azure 文件共享。 在此身份验证方案中,Microsoft Entra 凭据和 Microsoft Entra 域服务凭据相同,可以互换使用。

强烈建议查看工作原理部分,为存储帐户选择合适的 AD 源。 选择的 AD 源不同,设置也会不同。

如果你不熟悉 Azure 文件存储,我们建议在阅读本文之前先阅读规划指南

注意

Azure 文件存储支持通过具有 RC4-HMAC 和 AES-256 加密的 Microsoft Entra 域服务进行 Kerberos 身份验证。 建议使用 AES-256。

Azure 文件存储支持使用 Microsoft Entra ID 进行完全或部分同步的 Microsoft Entra 域服务的身份验证。 对于存在范围同步的环境,管理员应注意,Azure 文件存储仅接受授予已同步主体的 Azure RBAC 角色分配。 Azure 文件存储服务将忽略分配给未从 Microsoft Entra ID 同步到 Microsoft Entra 域服务标识的角色分配。

适用于

文件共享类型 SMB NFS
标准文件共享 (GPv2)、LRS/ZRS 是 否
标准文件共享 (GPv2)、GRS/GZRS 是 否
高级文件共享 (FileStorage)、LRS/ZRS 是 否

先决条件

在通过 SMB 为 Azure 文件共享启用 Microsoft Entra 域服务之前,请确保满足以下先决条件:

  1. 选择或创建 Microsoft Entra 租户。

    可以使用新的或现有的租户。 要访问的租户和文件共享必须与同一订阅相关联。

    若要创建新的 Microsoft Entra 租户,可以添加 Microsoft Entra 租户和 Microsoft Entra 订阅。 如果已有一个 Microsoft Entra 租户,但想要创建新租户以便与 Azure 文件共享一同使用,请参阅创建 Azure Active Directory 租户

  2. 在 Microsoft Entra 租户上启用 Microsoft Entra 域服务。

    若要支持使用 Microsoft Entra 凭据进行身份验证,必须为 Microsoft Entra 租户启用 Microsoft Entra 域服务。 如果你不是 Microsoft Entra 租户的管理员,请与管理员联系并按照分步指南操作,以使用 Azure 门户启用 Microsoft Entra 域服务

    Microsoft Entra 域服务部署通常需要大约 15 分钟才能完成。 在继续执行下一步之前,请验证 Microsoft Entra 域服务的运行状况状态是否显示“正在运行”,以及是否启用了密码哈希同步。

  3. 使用 Microsoft Entra 域服务将 Azure VM 加入域。

    若要使用来自 VM 的 Microsoft Entra 凭据访问 Azure 文件共享,你的 VM 必须已通过 Microsoft Entra 域服务加入域。 有关如何将 VM 加入域的详细信息,请参阅将 Windows Server 虚拟机加入托管域。 只有在运行于高于 Windows 7 或 Windows Server 2008 R2 版本的 OS 上的 Azure VM 上才支持通过 SMB 为 Azure 文件共享启用 Microsoft Entra 域服务身份验证。

    注意

    仅当 VM 对 Microsoft Entra 域服务的域控制器具有畅通无阻的网络连接时,未加入域的 VM 才能使用 Microsoft Entra 域服务身份验证访问 Azure 文件共享。 通常,这需要站点到站点或点到站点 VPN。

  4. 选择或创建 Azure 文件共享。

    选择与 Microsoft Entra 租户相同订阅关联的新的或现有文件共享。 有关创建新的文件共享的信息,请参阅在 Azure 文件中创建文件共享。 为获得最佳性能,建议将文件共享与计划访问共享的 VM 放置在同一区域。

  5. 通过使用存储帐户密钥装载 Azure 文件共享来验证 Azure 文件连接。

    要验证是否已正确配置 VM 和文件共享,请尝试使用存储帐户密钥装载文件共享。 有关详细信息,请参阅在 Windows 中装载 Azure 文件共享并对其进行访问

工作流概述

下图说明了通过 SMB 为 Azure 文件存储启用 Microsoft Entra 域服务身份验证的端到端工作流。

显示通过 SMB 为 Azure 文件存储启用 Microsoft Entra ID 的工作流的图表。

为帐户启用 Microsoft Entra 域服务身份验证

若要通过 SMB 为 Azure 文件存储启用Microsoft Entra 域服务身份验证,可以使用 Azure 门户、Azure PowerShell 或 Azure CLI 为存储帐户设置属性。 设置此属性会通过关联的 Microsoft Entra 域服务部署隐式“域加入”存储帐户。 然后,为存储帐户中的所有新文件和现有文件共享启用通过 SMB 的 Microsoft Entra 域服务身份验证。

请记住,只有在成功将 Microsoft Entra 域服务部署到 Microsoft Entra 租户后,才能通过 SMB 启用 Microsoft Entra 域服务身份验证。 有关详细信息,请参阅先决条件

若要使用 Azure 门户通过 SMB 启用 Microsoft Entra 域服务身份验证,请执行以下步骤:

  1. 在 Azure 门户中,转到现有的存储帐户或创建存储帐户

  2. 选择“数据存储”>“文件共享”。

  3. 在“文件共享设置”部分中,选择“基于标识的访问: 未配置”。

    屏幕截图:存储帐户中的“文件共享”窗格,其中突出显示了“基于标识的访问”。

  4. 在“Microsoft Entra 域服务”下选择“设置”,然后通过勾选复选框来启用该功能

  5. 选择“保存”。

    “配置基于标识的访问”窗格的屏幕截图,其中 Microsoft Entra 域服务已作为源启用。

默认情况下,Microsoft Entra 域服务身份验证使用 Kerberos RC4 加密。 建议按照以下说明将其配置为改用 Kerberos AES-256 加密。

该操作要求在由 Microsoft Entra 域服务管理的 Active Directory 域上运行操作,以访问域控制器来请求更改域对象的属性。 下面的 cmdlet 是 Windows Server Active Directory PowerShell cmdlet,而不是 Azure PowerShell cmdlet。 因此,这些 PowerShell 命令必须从加入 Microsoft Entra 域服务域的客户端计算机上运行。

重要

本部分中的 Windows Server Active Directory PowerShell cmdlet 必须在 Windows PowerShell 5.1 中从已加入 Microsoft Entra 域服务域的客户端计算机上运行。 PowerShell 7.x 在此方案中不起作用。

以拥有所需权限的 Microsoft Entra 域服务用户身份登录加入域的客户端计算机。 你必须对域对象的 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 票证。

下一步

  • 若要向用户授予对文件共享的访问权限,请按照分配共享级权限中的说明进行操作。