你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

为 Azure 文件存储上的混合标识启用 Microsoft Entra Kerberos 身份验证

本文重点介绍如何启用和配置 Microsoft Entra ID(以前为 Azure AD),以便对混合用户标识进行身份验证,这些标识是同步到 Microsoft Entra ID 的本地 AD DS 标识。 目前不支持仅限云的标识。

此配置允许混合用户使用 Kerberos 身份验证访问 Azure 文件共享,使用 Microsoft Entra ID 颁发必要的 Kerberos 票证以使用 SMB 协议访问文件共享。 这意味着你的最终用户可以通过 Internet 访问 Azure 文件共享,从 Microsoft Entra 混合联接 VM 和 Microsoft Entra 联接客户端到域控制器之间无需畅通无阻的网络连接。 但为用户或组配置 Windows 访问控制列表 (ACL)/目录和文件级权限需要与本地域控制器进行畅通无阻的网络连接。

有关支持选项和注意事项的详细信息,请参阅实现 SMB 访问的 Azure 文件存储基于标识的身份验证选项概述。 有关详细信息,请参阅此深入探讨

重要

只能使用一种 AD 方法来实现与 Azure 文件存储的基于标识的身份验证。 如果混合标识的 Microsoft Entra Kerberos 身份验证不符合你的要求,则可能能够改用本地 Active Directory 域服务 (AD DS)Microsoft Entra 域服务。 每个方法的配置步骤和支持的方案都不相同。

适用于

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

先决条件

在通过 SMB 为 Azure 文件共享启用 Microsoft Entra Kerberos 身份验证之前,请确保满足以下先决条件。

注意

Azure 存储帐户不能使用 Microsoft Entra ID 和第二种方法(如 AD DS 或 Microsoft Entra 域服务)进行身份验证。 如果你已为存储帐户选择了另一种 AD 方法,则必须在启用 Microsoft Entra Kerberos 之前将其禁用。

Microsoft Entra Kerberos 混合标识功能仅在以下操作系统上可用:

若要了解如何使用基于 Microsoft Entra ID 的身份验证创建和配置 Windows VM 并登录,请参阅使用 Microsoft Entra ID 登录到 Azure 中的 Windows 虚拟机

客户端必须已加入 Microsoft Entra,或 已加入 Microsoft Entra 混合联接。 加入 Microsoft Entra 域服务或仅加入 AD 的客户端不支持 Microsoft Entra Kerberos。

此功能目前不支持仅在 Microsoft Entra ID 中创建和管理的用户帐户。 用户帐户必须为混合用户标识,这意味着还需要 AD DS,Microsoft Entra ConnectMicrosoft Entra Connect 云同步。必须在 Active Directory 中创建这些帐户并将它们同步到 Microsoft Entra ID。 若要将 Azure 文件共享的 Azure 基于角色的访问控制 (RBAC) 权限分配给用户组,必须在 Active Directory 中创建该组并将其同步到 Microsoft Entra ID。

必须在表示存储帐户的 Microsoft Entra 应用上禁用多重身份验证 (MFA)。

使用 Microsoft Entra Kerberos 时,Kerberos 票证加密始终为 AES-256。 但是,可以设置最符合需求的 SMB 通道加密。

区域可用性

Azure 公共云、Azure US Gov 云和 Azure 中国世纪互联云支持此功能。

为混合用户帐户启用 Microsoft Entra Kerberos 身份验证

可以使用 Azure 门户、PowerShell 或 Azure CLI 在 Azure 文件存储中为混合用户帐户启用 Microsoft Entra Kerberos 身份验证。

若要使用 Azure 门户启用 Microsoft Entra Kerberos 身份验证,请执行以下步骤。

  1. 登录到 Azure 门户并选择要为其启用 Microsoft Entra Kerberos 身份验证的存储帐户。

  2. 在“数据存储”下,选择“文件共享”。

  3. 选择 Active Directory 旁边的配置状态(例如“未配置”)。

    Azure 门户的屏幕截图,其中显示了存储帐户的文件共享设置。已选择 Active Directory 配置设置。

  4. Microsoft Entra Kerberos 下,选择“设置”

  5. 选中 Microsoft Entra Kerberos 复选框。

    Azure 门户的屏幕截图,其中显示了存储帐户的 Active Directory 配置设置。已选择 Microsoft Entra Kerberos。

  6. 可选:如果要通过 Windows 文件资源管理器配置目录和文件级别权限,则需要为本地 AD 指定域名和域 GUID。 可以从域管理员处获取此信息,也可以通过从已加入本地 AD 的客户端运行以下 Active Directory PowerShell cmdlet 来获取此信息:Get-ADDomain。 你的域名应已在 DNSRoot 下的输出中列出,并且域 GUID 应已在 ObjectGUID 下列出。 如果想要使用 icacls 配置目录和文件级别权限,可以跳过此步骤。 但是,如果要使用 icacls,客户端将需要与本地 AD 进行畅通无阻的网络连接。

  7. 选择“保存”。

警告

如果之前通过手动有限预览步骤启用了 Microsoft Entra Kerberos 身份验证,以将 FSLogix 配置文件存储在已加入 Microsoft Entra 的 VM 的 Azure 文件存储上,则存储帐户服务主体的密码设置为每隔六个月过期。 密码过期后,用户将无法获取文件共享的 Kerberos 票证。 若要缓解该问题,请参阅为混合用户启用 Microsoft Entra Kerberos 身份验证时可能出现的错误下的“错误 - Microsoft Entra ID 中的服务主体密码已过期”。

启用 Microsoft Entra Kerberos 身份验证后,需要向 Microsoft Entra 租户中注册的新 Microsoft Entra 应用程序显式授予管理员同意。 此服务主体是自动生成的,不用于对文件共享授权,因此请不要对服务主体进行此处所述编辑以外的任何编辑。 如果这么做,可能会产生错误。

你可以按照以下步骤从 Azure 门户配置 API 权限:

  1. 打开 Microsoft Entra ID

  2. 在左侧窗格中选择“应用注册”。

  3. 选择“所有应用程序”。

    Azure 门户的屏幕截图。Microsoft Entra ID 已打开。在左侧窗格中选择应用注册。右侧窗格中突出显示了所有应用程序。

  4. 选择名称与“[存储帐户] <your-storage-account-name>.file.core.windows.net”匹配的应用程序。

  5. 在左侧窗格中选择“API 权限”。

  6. 选择“向 [目录名称] 授予管理员同意”,以向目录中所有帐户请求的三项 API 权限(openid、profile 和 User.Read)授予同意。

  7. 请选择“是”以确认。

重要

如果使用 Microsoft Entra Kerberos 身份验证通过专用终结点/专用链接连接到存储帐户,则还需要将专用链接 FQDN 添加到存储帐户的 Microsoft Entra 应用程序中。 有关说明,请参阅故障排除指南中的条目。

在存储帐户上禁用多重身份验证

Microsoft Entra Kerberos 不支持使用 MFA 访问使用 Microsoft Entra Kerberos 配置的 Azure 文件共享。 如果 MFA 条件访问策略适用于所有应用,则必须将表示存储帐户的 Microsoft Entra 应用从策略中排除。

存储帐户应用应与条件访问排除列表中的存储帐户同名。 在条件访问排除列表中搜索存储帐户应用时,请搜索:[存储帐户] <your-storage-account-name>.file.core.windows.net

请记得将 <your-storage-account-name> 替换为正确的值。

重要

如果不从存储帐户应用中排除 MFA 策略,你将无法访问文件共享。 尝试使用 net use 映射文件共享,这将生成一条错误消息,该消息显示“系统错误 1327: 帐户限制阻止此用户登录。 例如:不允许使用空白密码、限制登录时间或已强制实施策略限制。”

有关如何禁用 MFA 的指南,请参阅以下文章:

分配共享级权限

当你启用基于标识的访问时,可为每个共享设置哪些用户和组有权访问特定共享。 允许用户访问共享后,他们会拥有对单个文件和目录的 Windows ACL(也称为 NTFS 权限)。 这允许对权限进行精细控制,类似于 Windows 服务器上的 SMB 共享。

若要设置共享级别权限,请按照将共享级别权限分配给标识中的说明操作。

配置目录和文件级别权限

设置共享级别权限后,可以将目录/文件级别权限分配给用户或组。 这需要设备与本地 AD 建立畅通无阻的网络连接。 若要使用 Windows 文件资源管理器,设备还需要加入域。

可以使用两个选项来通过 Microsoft Entra Kerberos 身份验证配置目录和文件级别权限:

  • Windows 文件管理器:如果选择此选项,则客户端必须联接本地 AD 域。
  • icacls 实用工具:如果选择此选项,则客户端无需加入域,但需要与本地 AD 建立畅通无阻的网络连接。

要通过 Windows 文件资源管理器配置目录和文件级别权限,则还需要为本地 AD 指定域名和域 GUID。 可以从域管理员处或从已加入本地 AD 的客户端获取此信息。 如果想要使用 icacls 进行配置,则不需要执行此步骤。

重要

可以为未同步到 Microsoft Entra ID 的标识设置文件/目录级别 ACL。 但是,不会强制实施这些 ACL,因为用于身份验证/授权的 Kerberos 票证不包含这些未同步的标识。 若要强制实施设置 ACL,需要将标识同步到 Microsoft Entra ID。

提示

如果来自两个不同林的 Microsoft Entra 混合加入用户将访问共享,则最好使用 icacls 来配置目录和文件级权限。 这是因为 Windows 文件资源管理器 ACL 配置要求客户端域加入到存储帐户所加入的 Active Directory 域。

若要配置目录和文件级别权限,请按照通过 SMB 配置目录和文件级别权限中的说明操作。

配置客户端以检索 Kerberos 票证

在要从中装载/使用 Azure 文件共享的客户端计算机上启用 Microsoft Entra Kerberos 功能。 必须在将使用 Azure 文件存储的每个客户端上执行此操作。

请使用下列三种方法之一:

  • 配置此 Intune 策略 CSP 并将其应用于客户端:Kerberos/CloudKerberosTicketRetrievalEnabled 设置为 1
  • 在客户端上将此组策略配置为“已启用”:Administrative Templates\System\Kerberos\Allow retrieving the Azure AD Kerberos Ticket Granting Ticket during logon
  • 通过从提升的命令提示符运行以下命令,在客户端上设置以下注册表值:reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters /v CloudKerberosTicketRetrievalEnabled /t REG_DWORD /d 1

更改不是即时的,需要策略刷新或重新启动才能生效。

重要

应用此更改后,客户端将无法在未配置 Kerberos 领域映射的情况下连接到为本地 AD DS 集成配置的存储帐户。 如果希望客户端能够连接到为 AD DS 配置的存储帐户以及为 Microsoft Entra Kerberos 配置的存储帐户,请按照配置与使用本地 AD DS 的存储帐户的共存中的步骤进行操作。

配置与使用本地 AD DS 的存储帐户的共存

如果要使客户端计算机能够连接到为 AD DS 配置的存储帐户,以及为 Microsoft Entra Kerberos 配置的存储帐户,请执行以下步骤。 如果要仅使用 Microsoft Entra Kerberos,请跳过此部分。

请为每个使用本地 AD DS 集成的存储帐户添加一个条目。 使用下面三种方法之一配置 Kerberos 领域映射。 更改不是即时的,需要策略刷新或重新启动才能生效。

  • 配置此 Intune 策略 CSP 并将其应用于客户端:Kerberos/HostToRealm
  • 在客户端上配置此组策略:Administrative Template\System\Kerberos\Define host name-to-Kerberos realm mappings
  • 在客户端上运行 ksetup Windows 命令:ksetup /addhosttorealmmap <hostname> <REALMNAME>
    • 例如: ksetup /addhosttorealmmap <your storage account name>.file.core.windows.net CONTOSO.LOCAL

重要

在 Kerberos 中,领域名称区分大小写,并且是大写的。 Kerberos 领域名称通常与域名相同,采用大写字母。

撤消客户端配置以检索 Kerberos 票证

如果不想再使用客户端计算机进行 Microsoft Entra Kerberos 身份验证,则可以禁用该计算机上的 Microsoft Entra Kerberos 功能。 根据启用功能的方式,使用以下三种方法之一:

  • 配置此 Intune 策略 CSP 并将其应用于客户端:Kerberos/CloudKerberosTicketRetrievalEnabled 设置为 0
  • 在客户端上将此组策略配置为“已禁用”:Administrative Templates\System\Kerberos\Allow retrieving the Azure AD Kerberos Ticket Granting Ticket during logon
  • 通过从提升的命令提示符运行以下命令,在客户端上设置以下注册表值:reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters /v CloudKerberosTicketRetrievalEnabled /t REG_DWORD /d 0

更改不是即时的,需要策略刷新或重新启动才能生效。

如果遵循了使用本地 AD DS 配置与存储帐户的共存中的步骤,可根据需要从客户端计算机中移除所有主机名到 Kerberos 领域的映射。 请使用下列三种方法之一:

  • 配置此 Intune 策略 CSP 并将其应用于客户端:Kerberos/HostToRealm
  • 在客户端上配置此组策略:Administrative Template\System\Kerberos\Define host name-to-Kerberos realm mappings
  • 在客户端上运行 ksetup Windows 命令:ksetup /delhosttorealmmap <hostname> <realmname>
    • 例如: ksetup /delhosttorealmmap <your storage account name>.file.core.windows.net contoso.local
    • 可检查注册表项 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\HostToRealm 来查看当前主机名到 Kerberos 领域的映射的列表。

更改不是即时的,需要策略刷新或重新启动才能生效。

重要

应用此更改后,客户端将无法连接到为 Microsoft Entra Kerberos 身份验证配置的存储帐户。 但是,它们将能够连接到配置为 AD DS 的存储帐户,而无需任何其他配置。

在存储帐户上禁用 Microsoft Entra 身份验证

若要使用其他身份验证方法,可以使用 Azure 门户、Azure PowerShell 或 Azure CLI 在存储帐户上禁用 Microsoft Entra 身份验证。

注意

禁用此功能意味着此存储帐户中的文件共享不会有 Active Directory 配置,直到启用其他 Active Directory 源之一才能恢复 Active Directory 配置。

若要使用 Azure 门户在存储帐户中禁用 Microsoft Entra Kerberos 身份验证,请执行以下步骤。

  1. 登录到 Azure 门户并选择要为其禁用 Microsoft Entra Kerberos 身份验证的存储帐户。
  2. 在“数据存储”下,选择“文件共享”。
  3. 选择 Active Directory 旁边的配置状态。
  4. Microsoft Entra Kerberos 下,选择“配置”
  5. 取消选中 Microsoft Entra Kerberos 复选框。
  6. 选择“保存”。

后续步骤

有关详细信息,请参阅以下资源: