基于身份的身份验证不适用于 Azure 存储文件共享
Posted
技术标签:
【中文标题】基于身份的身份验证不适用于 Azure 存储文件共享【英文标题】:Identity based authentication not working for Azure Storage File Share 【发布时间】:2021-12-11 09:18:04 【问题描述】:我们创建了 Azure 存储文件共享并尝试设置基于身份的身份验证。我们遵循了此处提供的 GitHub 示例:Azure Files Samples on GitHub
我们能够成功运行以下命令来设置与存储帐户对应的用户帐户。
Join-AzStorageAccountForAuth `
-ResourceGroupName $ResourceGroupName `
-Name $StorageAccountName `
-DomainAccountType "ServiceLogonAccount" `
-OrganizationalUnitDistinguishedName "ou-distinguishedname-here"
在此之后,我们通过存储访问密钥挂载了存储帐户,并为文件共享分配了 NTFS 权限。我们还确保在 Azure 门户的存储帐户中的文件共享上也分配了 SMB 相关的贡献者权限。
当我们尝试挂载文件共享时,系统会提示我们输入凭据并且它没有连接。我们正在尝试使用以下命令尝试连接:
net use Y: \\storageAccountName.file.core.windows.net\testShare
我们确保我们是在具有域用户的已加入域的计算机上尝试这些步骤。本地 AD 通过每 30 分钟运行一次的 AD Connect 连接到 Azure AD。我们确保此域用户是 AD 组的一部分,这些组在 Azure 门户中被分配了对文件共享的访问权限以及对共享本身的 NTFS 权限。存储帐户启用了专用终结点,为了降低复杂性,我们正在使用分配给存储帐户的 IP 地址进行测试。
为什么该命令仍然要求提供凭据而不连接到文件共享?有什么我们可能遗漏的吗?
【问题讨论】:
【参考方案1】:经过更多故障排除后找到了解决方案。解决方案是首先设置 DNS。设置 DNS 并尝试连接到“storageAccountName.file.core.windows.net”而不是 IP 地址后,连接工作正常。它不要求任何凭据,而是利用登录的域用户进行连接。
我相信 Kerberos 身份验证需要连接到 DNS 名称(而不是直接 IP 地址),因为与存储对应的对象设置为存储帐户的名称。
希望这可以帮助其他面临此问题的人。
【讨论】:
以上是关于基于身份的身份验证不适用于 Azure 存储文件共享的主要内容,如果未能解决你的问题,请参考以下文章
具有 Azure AD 身份验证的 Azure 函数 - 允许的令牌受众不适用于 Microsoft Graph
AcquireToken(string resource, string clientId, UserCredential userCredential) 不适用于 Azure 身份验证