问题描述
开发模式下使用AAD账号访问Azure Blob的流程参考文件
问题解答
第一步:先在AAD中注册一个APP,步骤可参考:
将应用程序注册到 Microsoft 标识平台 :https://docs.azure.cn/zh-cn/active-directory/develop/quickstart-register-app#register-an-application
将应用程序注册到 Azure AD 租户 :https://docs.azure.cn/zh-cn/storage/common/storage-auth-aad-app?toc=%2Fstorage%2Fblobs%2Ftoc.json&tabs=dotnet#register-your-application-with-an-azure-ad-tenant
第二步:在API Permissions界面中添加Azure 存储相关权限,可参考:
第三步:在Certificates & Secrets 界面为APP添加凭据,凭据可以为证书或者客户端密码,可参考:
https://docs.azure.cn/zh-cn/active-directory/develop/quickstart-register-app#add-credentials
第四步:在目标Storage Account资源为APP分配Azure角色以使APP能够访问Blob数据,可参考:
https://docs.azure.cn/zh-cn/storage/blobs/assign-azure-role-data-access?tabs=portal
要使用 Azure AD 凭据访问 Azure 门户中的 blob 数据,用户必须具有以下角色分配:
- 数据访问角色,例如“存储 Blob 数据读取者”或“存储 Blob 数据参与者”
- 至少分配 Azure 资源管理器“读取者”角色
第五步:程序代码中获取用于授权的访问令牌
- 通过客户端密码获取可参考:https://docs.azure.cn/zh-cn/storage/common/identity-library-acquire-token?toc=%2Fstorage%2Fblobs%2Ftoc.json#get-an-access-token-for-authorization;
- 通过证书可参考:https://docs.azure.cn/zh-cn/active-directory/develop/active-directory-certificate-credentials;