Azure Blob Storage REST API标准生成Bearer授权令牌的方法问询
Azure Blob Storage REST API标准生成Bearer授权令牌的方法问询
嗨,我完全理解你现在的需求——之前从浏览器开发者工具临时扒取Bearer令牌只是测试用的权宜之计,正式场景或者自动化流程肯定得用标准方法获取对吧?下面给你整理几种常用的正规获取方式,每一种都附上清晰的步骤:
方法一:用Azure CLI快速获取
这是最适合临时测试或者手动操作的方式:
- 先确保你已经装了Azure CLI,并且完成了登录(没登录的话跑
az login,跟着提示完成账号验证就行) - 直接运行这条命令,获取针对Azure Storage的访问令牌:
az account get-access-token --resource https://storage.azure.com/ - 命令输出里的
accessToken字段就是你要的Bearer令牌,直接复制下来,在REST请求的Authorization头里用Bearer <token>的格式就行
方法二:用Azure PowerShell获取
如果你习惯用PowerShell环境,这个方法也很方便:
- 先安装Azure PowerShell模块,然后登录账号(登录命令是
Connect-AzAccount) - 运行命令获取令牌:
Get-AzAccessToken -ResourceUrl https://storage.azure.com/ - 输出结果里的
Token属性就是目标Bearer令牌
方法三:用代码集成获取(以Python为例)
如果要把令牌获取逻辑集成到应用或自动化脚本里,用Azure官方的身份认证库最靠谱:
- 先安装依赖包:
pip install azure-identity - 写几行简单代码就能拿到令牌:
from azure.identity import DefaultAzureCredential # 默认凭据会自动读取本地的Azure登录信息,或者环境变量里的服务主体信息 credential = DefaultAzureCredential() # 请求Storage资源的令牌 token = credential.get_token("https://storage.azure.com/.default") print("可用的Bearer令牌:", token.token) - 运行代码就能直接拿到可用的令牌,这种方式完全适合自动化场景,不用手动操作
方法四:用服务主体获取(适合无人值守的自动化场景)
如果是在不需要人工登录的自动化流程里,比如CI/CD脚本,用服务主体是最佳选择:
- 先创建一个服务主体,并给它分配Storage相关的权限(比如
Storage Blob Data Contributor角色,确保它有访问存储账户的权限):
运行后会得到服务主体的az ad sp create-for-rbac --name <你的服务主体名称> --role "Storage Blob Data Contributor" --scopes /subscriptions/<你的订阅ID>/resourceGroups/<资源组名>/providers/Microsoft.Storage/storageAccounts/<存储账户名>appId(客户端ID)、password(密钥)和tenant(租户ID),记得保存好这些信息 - 用服务主体的信息登录Azure CLI并获取令牌:
az login --service-principal -u <服务主体客户端ID> -p <服务主体密钥> --tenant <租户ID> az account get-access-token --resource https://storage.azure.com/
这些方法获取的令牌都是通过Azure AD的正规OAuth2流程生成的,有效期一般是1小时,过期后重新执行对应步骤就能拿到新的。相比浏览器里扒的令牌,不仅更可靠,还能根据不同的角色权限精准控制访问范围,完全符合安全规范。
备注:内容来源于stack exchange,提问作者Vaishnavi Vaishu
相关产品推荐
相关产品推荐

