【发布时间】:2021-03-04 03:09:54
【问题描述】:
我在使用 Azure Blob 存储进行身份验证时遇到问题,我们在 Angular 应用中使用 ADAL 来连接 Azure Blob 存储。
我已经使用存储模拟设置了 Azure 应用注册,并且可以为用户获取https://storage.azure.com/ 资源的令牌。
存储帐户为用户配置了Storage Blob Data Contributor 的访问控制,现在这是我开始遇到问题的地方。
如果我将用户直接分配给Storage Blob Data Contributor - 一切都按预期工作,我们可以查询和上传 Blob。
但是,如果我们将 Storage Blob Data Contributor 分配给 AD 安全组,则该 AD 组的成员无法访问存储并收到带有 x-ms-error-code: AuthorizationPermissionMismatch 标头的 403 错误。
通过组分配权限是否有任何限制?我们需要高级广告吗?任何帮助将不胜感激。
更新
确认 Premium AD 没有问题,因为在尝试了 P2 的租户后仍然无法正常工作。
文档here 声明;
当 RBAC 角色分配给 Azure AD 安全主体时,Azure 会授予该安全主体访问这些资源的权限。可以将访问范围限定为订阅、资源组、存储帐户或单个容器或队列的级别。 Azure AD 安全主体可以是用户、组、应用程序服务主体或 Azure 资源的托管标识。
当然,这意味着您可以为每个人分配角色,也可以从一个组继承???
完整的上下文;
- 应用注册配置
Azure Storage->user_impersonation - 用户具有通过
GROUP ASSIGNMENT分配的Storage Blob Data Contributor角色 - Angular App 可以针对
https://storage.azure.com/进行授权并获取令牌 -
403PUT 请求错误,错误代码为AuthorizationPermissionMismatch - 更新角色分配以包括直接分配
- 获取新令牌...
- PUT 现在可以工作并且图像已成功存储
现在这行得通 - 事实证明,小组是原因。为什么组分配不授予用户访问权限?
再次感谢任何帮助!
更新 2
按照以下答案的要求;
“IAM 访问”刀片中的“检查访问”选项显示我有来自三个组的 Storage Blob Data Contributor 角色分配(QA - 技术人员、QA - 没有客户数据的站点管理员和 QA - 有客户数据的站点管理员)
自几个月前创建这些角色以来,我没有更改这些与角色关联的用户,如上图所示,我必须是角色的成员才能包含在此处。
组不是动态分配的,所有用户都由成员资格部分分配给角色。这些是通过另一个组有关系吗? 即
【问题讨论】:
-
您有没有发现问题所在?我刚遇到同样的问题。
标签: angular azure azure-active-directory azure-blob-storage adal