You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Azure Cosmos DB单租户单容器方案的租户映射与权限控制问询

Azure B2B身份认证下Cosmos DB租户-容器映射与访问控制方案

一、租户-容器映射信息的存储方案

  • Azure AD内置元数据:直接在Azure AD中为客户租户配置自定义属性(如CosmosContainerName),或在你的应用注册中创建与容器一一对应的应用角色,将客户租户的用户/安全组分配到对应角色。这种方式无需额外存储,访问时从用户的ID令牌中提取角色或属性即可匹配容器。
  • Cosmos DB专用配置容器:创建一个权限严格隔离的配置容器,存储租户ID(tid)与容器名称的键值对。该容器仅允许你的应用服务主体访问,普通客户用户无权限。客户认证后,应用先查询此容器获取对应租户的目标容器名称。
  • Azure App Configuration/Key Vault:若需动态更新映射规则,可将租户-容器映射存储在Azure App Configuration中;若需加密存储敏感映射信息,可使用Key Vault,应用通过专属服务主体访问获取。

二、客户容器访问隔离的实现步骤

  1. 提取租户标识
    客户通过Azure B2B登录后,从ID令牌中提取tid字段(每个客户AD的唯一租户ID),以此作为映射匹配的核心标识。
  2. 映射匹配与权限校验
    • 若使用Azure AD应用角色:为每个容器创建专属应用角色(如Customer1ContainerAccess),将客户租户的用户/组分配到对应角色。应用验证用户的角色权限后,仅允许访问该角色关联的容器。
    • 若使用外部配置存储:应用根据tid查询映射存储得到目标容器名称,在Cosmos DB操作中严格限定访问范围。同时结合Cosmos DB的RBAC权限,为客户身份配置仅对应容器的读写权限,实现双重防护。
  3. Cosmos DB权限加固
    • 禁用账户级密钥访问,全程使用Azure AD身份认证访问Cosmos DB。
    • 为客户租户的身份(用户/组)配置细粒度RBAC权限:在Cosmos DB的IAM设置中,将Cosmos DB数据参与者或自定义角色的作用范围限定为对应容器,而非整个数据库或账户。

三、典型流程示例

  1. Customer1的用户通过Azure B2B登录应用,应用从ID令牌中提取租户ID tid=xxxx-xxxx-xxxx。
  2. 应用通过映射存储(如Azure AD自定义属性或配置容器)匹配到对应容器Customer1。
  3. 应用调用Cosmos DB API时仅操作Customer1容器,同时Cosmos DB的IAM权限限制该用户无法访问其他容器,即使应用逻辑出现异常,也能保障数据隔离。

内容的提问来源于stack exchange,提问作者Benjamin79

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 12:33:19