AzCopy 的 Azure AD 登录名需要多长时间才能过期?

Posted

技术标签:

【中文标题】AzCopy 的 Azure AD 登录名需要多长时间才能过期?【英文标题】:How long before the AzCopy's Azure AD login expire? 【发布时间】:2021-11-01 15:25:52 【问题描述】:

我有一个每天运行的 python 脚本,它需要在每天的某个时间将文件上传到 Azure 存储。

我正在尝试使用 AzCopy 命令将文件自动上传到 Azure 存储。我计划登录一次 AzCopy,让它尽可能长时间地自动运行和上传。

我从 azcopy login --tenant-id=<my tenant id> 开始,然后通过转到浏览器并输入代码来手动验证 azcopy。

我想知道在需要再次对 azcopy 重新进行身份验证之前,我可以保持登录状态多长时间?

PS。我不打算运行命令azcopy logout 手动注销

【问题讨论】:

【参考方案1】:

不确定,但在这种情况下,更好的方式是非交互式方式,例如使用服务主体登录。

使用客户端密码以服务主体身份登录:将环境变量 AZCOPY_SPA_CLIENT_SECRET 设置为客户端密码,以进行基于密码的服务主体身份验证。

azcopy login --service-principal --application-id <your service principal's application ID>

参考 - https://docs.microsoft.com/en-us/azure/storage/common/storage-ref-azcopy-login#examples

更新:

同Azure CLI,使用azcopy login后,会在你的本地路径~/.azcopy/(Azure CLI为~/.azure/)下生成一个accessToken.json文件,其中包含Auzre AD access token and refresh token,当访问令牌已过期,azcopy 将使用刷新令牌来获取新的访问令牌和新的刷新令牌。这意味着如果您的刷新令牌未过期,它始终可以获得新的访问令牌。默认情况下,此刷新令牌在 90 天不活动后被撤销,具体值取决于具体的token lifetime configuration in your AAD tenant。

总之,如果您经常在刷新令牌过期之前使用 azcopy 命令,您可以始终保持登录帐户。

【讨论】:

问题是我有一个工作帐户,它没有权限注册应用程序来生成应用程序ID和客户端密码等。我也没有权限生成SAS连接字符串,所以我需要弄清楚以其他方式保持登录状态

以上是关于AzCopy 的 Azure AD 登录名需要多长时间才能过期?的主要内容,如果未能解决你的问题,请参考以下文章

Azure Azcopy - 我可以只复制没有文件的文件夹吗?

用于连接到虚拟机并运行 azcopy 的 Azure 逻辑应用

Windows Azure AD 在单一目录下,使用Azure AD单点登录

如何限制AzCopy从azure表存储中复制的实体数量?

Azure AD B2C密码更改自定义策略,用户每次都需要登录

在 Azcopy 上更改层级