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单点登录