许可和隐私权概览

本页面介绍 Consent Management API 以及如何使用它来管理用户许可和隐私。

Consent Management API 是许可和隐私架构的一个组成部分,可提供对用户许可和数据隐私的可伸缩且安全的管理。Consent Management API 会存储您从用户收到的许可信息,跟踪每个使用场景允许的数据,并确保您的应用只按用户指定的方式使用数据。

Consent Management API 信息流

Consent Management API 中的许可和隐私信息流如下:

  1. 应用向用户显示隐私选项,然后在 Consent Management API 中创建或修改许可记录,以代表用户的决定。
  2. 在应用向其各种数据存储区写入数据时,应用向 Consent Management API 实例注册这些数据的位置和特征。
  3. 当应用需要确定数据是否被许可用于特定使用场景,它向 Consent Management API 发出请求,其中提供请求的数据和拟议用途。
  4. Consent Management API 将请求的数据和拟议用途与存储的许可进行比较,如果存在有效的许可,则返回肯定响应。如果不存在有效的许可,则返回否定响应。

下图展示了 Consent Management API 信息流:

许可数据流

如需详细了解许可数据在 Consent Management API 中是如何组织的,请参阅 Consent Management API 数据模型

政策决策点

Consent Management API 充当许可和隐私架构中的政策决策点,如下所示:

  1. 存储应用用户批准的许可政策。
  2. 接受授权客户端应用发出的数据访问权限查询。
  3. 根据存储的许可政策对访问权限查询进行评估。
  4. 进行访问权限判定以为客户端应用执行许可政策。

策略执行

Consent Management API 支持在许可和隐私架构中实施政策,如下所示:

  1. 处理应用或政策执行点发出的访问权限判定查询。
  2. 评估是否可以基于指定目的访问资源。
  3. 确定可以基于指定目的访问的所有资源。
  4. 将资源与特性和许可政策关联,这样执行点只需要指定请求特性和可选资源名称。
  5. 使用当前许可状态返回访问权限判定,即使在许可添加、更新或撤消时也是如此。

您可以使用 Consent Management API 在许可和隐私架构中实施多个政策执行模式。以下列表显示了政策执行模式的示例:

  • 由可信应用执行。已验证用户身份和资格的应用可以将相关属性转发给 Consent Management API。这使用户可以提交或更新许可,并使拥有已通过验证的资格的应用仅可以访问其使用场景的获许可信息。
  • 由客户中间件执行。需要验证用户身份和资格的应用可以使用 Consent Management API 判定是否允许给定请求的访问权限。
  • 由资源服务器执行。资源服务器可以使用用户的身份从其他应用中检索资格,然后,如有需要,在满足请求之前调用 Consent Management API 来判定访问权限。

政策表示法

Consent Management API 中的许可政策由一组资源特性值(定义该政策适用的数据)以及一个授权规则(定义该政策生效的条件)组成。

如果为单个资源特性指定了多个值,则该政策适用于与其中任何值匹配的数据。如果政策中出现多个资源特性,则每个资源特性都必须匹配才能应用政策。

授权规则使用通用表达式语言 (CEL) 的受限变体来灵活地描述允许访问相关数据的请求特性值之间的关系。如需详细了解 CEL,请参阅通用表达式语言

许可资源可以包含多个许可政策,这些政策可能表示对用户提出的许可问题的肯定响应。许可政策还可用于表示完整的许可表单或组织和管理决策。

下图显示了政策在 Consent Management API 中是如何表示的:

许可政策

该图展示了如何使用资源和请求特性构建简单的许可政策。可通过组合两个或更多政策来构造更复杂的政策。

Consent Management API 存储以下类型的许可记录:

  • 许可工件:存储用户接受或签名的文档。这些记录可以包含在许可过程中向用户显示的 PDF 或屏幕图片。它们还可用于存储签名、时间戳和记录许可流程的其他重要信息。
  • 许可资源:用配置的许可特性描述用户批准的许可。Consent Management API 对这些记录进行评估,以确定数据是否被许可用于某个使用场景。许可资源包含批准的许可和许可状态。这些记录也可以关联到相应的许可工件。

如需详细了解许可记录,请参阅创建和更新用户许可

数据管理

Consent Management API 可以管理您在 Google Cloud 上的架构、本地或其他云服务商中存储的数据,只要数据可以使用字符串来描述即可。Consent Management API 使用用户数据映射来跟踪代管数据,这些数据不需要存储在服务中。

每个用户数据映射均包含数据 ID、用户 ID 和一组资源特性值。数据 ID 是一个字符串,用于唯一标识用户数据映射表示的数据。用户 ID 是一个不透明的标识符,用于关联数据和用户。资源特性值使用由特性定义资源定义的词汇来描述数据的特征。

以下是许可管理数据的常见存储位置:

  • FHIR 存储区
  • BigQuery
  • Cloud Storage

如需详细了解如何创建用户数据映射,请参阅注册用户数据

访问权限判定

访问权限判定请求由应用发出,该应用需要知道拟议用途是否被允许访问某个特定数据元素、与某个用户关联的所有数据元素或整个数据存储区。Consent Management API 会评估是否存在为指定数据和拟议用途授予权限的有效许可,从而判定是否允许请求。Consent Management API 会按以下方式执行此评估:

  1. Consent Management API 收到访问权限判定请求,其中包含拟议用途的请求特性值以及目标资源(或由用户 ID 或资源特性值描述的目标资源范围)。
  2. 如果指定了目标资源范围,Consent Management API 会确定与该范围相匹配的资源。例如,如果您定义了某个范围的资源特性值,则该范围内的所有资源都会用在访问权限判定请求中。
  3. 识别所有匹配资源的许可。
  4. 根据相关许可的授权规则对拟议用途进行评估。
  5. 如果任何授权规则允许请求特性值的这一组合,则为每个评估资源返回肯定的访问权限判定。

默认情况下,只会对活跃许可进行访问权限判定。如需在访问权限判定中包括草稿状态的许可,可以在访问权限判定请求中直接指定它们。所有访问权限判定请求中的已过期、已撤消或已拒绝状态的许可会被忽略。

如需详细了解如何发出访问权限判定请求,请参阅进行访问权限判定