身份属性是一组固定的九个属性,Azure Databricks 会将这些属性存储在账户用户上,并从你的身份提供者(IdP)获取这些属性。 账户管理员会配置这些值,以便在 Unity Catalog ABAC 策略中引用这些值。
Warning
不要使用身份属性来存储敏感信息。
要通过自动身份管理导入身份属性,或限制可写入用户的属性,账户管理员必须启用 身份属性控制列表 功能预览。 该预览默认关闭,需在账户控制台 预览页面启用 。 请参阅 “管理帐户级预览”。
Overview
身份属性是 Azure Databricks 在账户用户上存储的九个源自 IdP 的字段:title、country、userType、region、department、locality、costCenter、organization和 division。 Azure Databricks 会让这些属性与你的身份提供者保持同步,使用户的值反映你 IdP 中的记录来源。
身份属性存在是为了让你在 Azure Databricks 的其他地方引用用户特征。 在测试版中,你可以在Unity Catalog基于属性的访问控制(ABAC)策略中使用它们来进行列遮蔽,比如除非用户 country 属性与数据国家匹配,否则会对列进行遮蔽。 有关ABAC的更多信息,请参见 Unity Catalog中的基于属性的访问控制。
Note
使用身份属性的 Unity Catalog ABAC 策略函数作为独立于此功能的内容提供。 本页仅介绍身份属性的配置、存储和读取方式。
工作原理
身份属性由你的身份提供者分配,存储在账户用户身上,并通过账户控制台和账户 SCIM API 读取。
导入身份属性
身份属性从您的身份提供者传送到 Azure Databricks 的方式有两种:
- 自动身份管理会按计划从你的身份提供程序提取属性。 这是推荐采用的后续机制。 有关详细信息,请参阅 自动标识管理。
- 账户 SCIM 2.1 通过配置连接器或直接 API 调用推送属性。
在 Azure 上,使用自动身份管理来获取身份属性。 不建议基于SCIM管理这些属性。 如果需要在 SCIM 中使用身份属性,请联系你的账户团队。
控制存储哪些属性
属性控制列表是一个账户级别的允许列表,用于管理账户中九个属性中哪些可以写入给用户。 启用自动身份管理后,每次同步还会将用户存储的属性与列表进行对比。 有关详细信息,包括列表的执行方式,请参见 身份属性控制列表。
读取身份属性
账户管理员可以通过带有 GET /Users/<id> 的账户 SCIM 2.1 读取任何用户的身份属性。 任何用户都可以通过 account-SCIM-for-workspaces /Me 端点(https://<workspace-host>/api/2.0/account/scim/v2/Me)读取自己的属性,该端点为只读。 工作区管理员无法读取或修改其他用户的身份属性。 读取从不被属性控制列表过滤,因此在属性从列表中移除之前存储的值会保持完全可见。
你的身份提供者中的属性变更不会立即反映在 Azure Databricks 中。 当用户登录时,自动身份管理会在大约五分钟内刷新该用户的属性。 由于Unity Catalog为登录用户评估策略,活跃用户的策略决策会使用这些最近同步的值。 未登录或未触发自动身份管理同步的用户,会在五天内通过定期的后台同步进行刷新。
查看用户身份属性
你可以在账户控制台查看用户存储的身份属性,这样你可以在不调用 SCIM API 的情况下确认实际到达的是什么。
- 以帐户管理员身份登录到帐户控制台。
- 在边栏中,单击“用户管理”。
- 在 “用户 ”标签页中,找到并点击该用户。
- 点击“ 身份属性” 标签。
标签列出了所有九个属性。 阅读时请记住以下几点:
- 它是只读的。 身份属性是基于IdP的,所以你不能在这里编辑。 直接通过你的身份提供者在源头处修改它们,标签页会在下次加载时显示更新后的值。
- 每个属性都会被列出。 没有存储值的属性会显示破折号(–),而不是隐藏,因此你可以区分“未设置”和“设置为意外值”。
- 视图不会被属性控制列表过滤。 在属性从列表中移除之前存储的值仍然会显示在这里。 这样你就能准确了解自己持有的具体是什么数据,从而决定是否要停用这些数据。
- 数值会按存储方式显示,保持身份提供者发送的案件。
如果身份 属性 标签页没有出现在用户页面上,说明该功能未为你的账户启用,直接进入该标签页会返回用户信息页面。
局限性
Beta中,身份属性有以下限制:
- 身份属性仅适用于用户。 服务负责人和团体尚未获得支持。
- 每个属性都包含一个值。 工作地址是一个具有
locality、region、country的单一对象。 多价值属性是未来的工作。 - 属性控制列表只能在账户控制台中配置。 没有API可以编程配置。
- 在 Microsoft Entra ID 中,
costCenter和division都没有对应的原生源字段,因此这两个属性将保持未映射状态,除非你提供自定义扩展属性或表达式。