用户标识身份验证提供了使用个人Microsoft Entra ID 凭据授权 AzCopy 作的简单方法。 此身份验证方法非常适合用于手动运行 AzCopy 命令或在开发环境中工作的交互式方案。
本文介绍如何通过环境变量、交互式 AzCopy 登录命令或利用现有的 Azure CLI 或 Azure PowerShell 会话来使用用户标识对 AzCopy 进行身份验证。
若要了解授权访问 AzCopy 的其他方法,请参阅 授权 AzCopy。
验证角色分配
确保您的用户身份具有执行操作所需的 Azure 角色:
对于进行下载操作,请使用 存储 Blob 数据读取器 (Blob 存储)或 存储文件数据特权读取器 (Azure 文件)。
对于上传操作,请使用 存储 Blob 数据参与者 或 存储 Blob 数据所有者(Blob 存储)或者 存储文件数据特权参与者(Azure 文件系统)
有关角色分配说明,请参阅 “分配 Azure 角色以访问 Blob 数据 ”(Blob 存储),或 选择如何授权访问 Azure 门户中的文件数据(Azure 文件)。
注释
角色分配最多可能需要五分钟才能传播。
如果您要在具有分层命名空间的帐户中传输 Blobs,那么只要您的安全主体已被添加到目标容器或目录的访问控制列表(ACL)中,便无需为您的安全主体指定其中任何一个角色。 在 ACL 中,安全主体需要对目标目录拥有写入权限,并对容器和每个父目录拥有执行权限。 若要详细了解,请参阅 Azure Data Lake Storage 中的访问控制模型。
使用环境变量授权
若要授权访问,请设置内存中环境变量。 然后运行任何 AzCopy 命令。 AzCopy 检索完成操作所需的身份验证令牌。 操作完成后,令牌将从内存中消失。 AzCopy 使用你提供的凭据检索 OAuth 令牌。
验证你的用户标识已获得所需的授权级别后,键入以下命令并按 Enter。
export AZCOPY_AUTO_LOGIN_TYPE=DEVICE
然后,运行任何 azcopy 命令(例如: azcopy list https://contoso.blob.core.chinacloudapi.cn)。
此命令返回身份验证代码和网站的 URL。 打开网站,提供代码,然后选择“ 下一步 ”按钮。
此时会显示一个登录窗口。 在该窗口中,使用 Azure 帐户凭据登录到 Azure 帐户。 成功登录后,操作完成。
使用 AzCopy 登录命令授权
作为使用内存中变量的替代方法,可以使用 azcopy login 命令授权访问。
该 azcopy login 命令检索 OAuth 令牌,然后将该令牌放入系统上的机密存储中。 如果作系统没有密钥存储(如 Linux 密钥器),则 azcopy login 命令不起作用,因为没有位置可以放置令牌。
验证用户标识是否具有必要的授权级别后,打开命令提示符,键入以下命令,然后按 Enter 键。
azcopy login --aad-endpoint https://login.partner.microsoftonline.cn
如果收到错误,请尝试包括存储帐户所属组织的租户 ID。
azcopy login --tenant-id=<tenant-id>
请将 <tenant-id> 占位符替换为存储帐户所属组织的租户 ID。 若要查找租户 ID,请在 Azure 门户中选择“租户属性”>“租户 ID”。
此命令返回身份验证代码和网站的 URL。 打开网站,提供代码,然后选择“ 下一步 ”按钮。
此时会显示一个登录窗口。 在该窗口中,使用 Azure 帐户凭据登录到 Azure 帐户。 成功登录后,可以关闭浏览器窗口并开始使用 AzCopy。
通过 Azure CLI 授权
如果你使用 Azure CLI 登录,则 Azure CLI 会获取 OAuth 令牌,AzCopy 可使用该令牌来授权操作。
若要使 AzCopy 能够使用该令牌,请键入以下命令,然后按 Enter 键。
export AZCOPY_AUTO_LOGIN_TYPE=AZCLI
export AZCOPY_TENANT_ID=<tenant-id>
有关如何使用 Azure CLI 登录的详细信息,请参阅 使用 Azure CLI 以交互方式登录到 Azure。
使用 Azure PowerShell 授权
如果你使用 Azure PowerShell 登录,则 Azure PowerShell 会获取 OAuth 令牌,AzCopy 可使用该令牌来授权操作。
若要使 AzCopy 能够使用该令牌,请键入以下命令,然后按 Enter 键。
$Env:AZCOPY_AUTO_LOGIN_TYPE="PSCRED"
$Env:AZCOPY_TENANT_ID=<tenant-id>
有关如何使用 Azure PowerShell 登录的详细信息,请参阅 以交互方式登录到 Azure PowerShell。