您可以从Azure AD安全组继承RBAC blob存储角色吗?

时间:2019-05-13 11:19:34

标签: angular azure azure-active-directory azure-storage-blobs adal

我在使用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资源的用户,组,应用程序服务主体或托管身份。

当然,这意味着您可以按人分配角色或从组继承角色?

完整上下文;

  1. 使用Azure Storage-> user_impersonation配置的应用注册 App configuration
  2. 用户具有通过Storage Blob Data Contributor分配的 GROUP ASSIGNMENT角色 User Role Assignment v1
  3. Angular App可以针对https://storage.azure.com/进行授权并获得令牌 JWT Token
  4. PLI请求上的
  5. 403错误,错误代码为AuthorizationPermissionMismatch HTTP PUT Error
  6. 更新角色分配以包括直接分配 User Role Assignment v2
  7. 获取新令牌...
  8. PUT现在可以工作并且图像已成功存储 Successfuly PUT

现在这有效-事实证明,团体是原因。为什么组分配不给用户访问权限?

再次感谢您的帮助!

更新2

按照下面的答案中的要求;

“ IAM访问”(IAM Access)刀片中的“检查访问”(Check Access)选项显示我具有三个组的Storage Blob Data Contributor角色分配(QA-技术员,QA-不带客户数据的站点管理员和QA-不带客户数据的站点管理员客户数据)

IAM Access - Check Access

自几个月前创建角色以来,我没有更改这些与角色相关的用户,并且如上图所示,我必须是要包含在此处的角色的成员。

不是动态分配组,而是通过“成员资格”部分将所有用户分配给角色。这些是否通过另一个小组有关系吗? 即

Development Group in QA - Site Admin w/o customer data group

Development Group members

1 个答案:

答案 0 :(得分:0)

能否请您使用Azure门户中受影响的存储帐户上“ IAM Access”刀片中的“ Check Access”选项,并查看组中用户是否通过继承显示角色分配?另外,我还要求您在尝试访问时检查用户是否属于该组。该组是否具有动态成员资格用户分配?

存储帐户> IAM>添加角色并为此类型的请求STORAGE BLOB DATA CONTRIBUTOR添加特殊权限,建议您研究以下article

目前,您可以使用PowerShell测试基于身份的访问 https://docs.microsoft.com/en-us/azure/storage/common/storage-auth-aad-rbac-powershell

让我知道状态