管理同意映射

已同意的范围会被存储并可供管理,请参阅 “管理隐私同意 ”。 此外,已同意的范围可与某项隐私目的相关联。 请参阅 “管理隐私用途 ”。

授权详情代表了细粒度的权限,因此用户已同意的授权详情也会被存储并可供管理。 与权限范围类似,已获同意的授权详情也可以与隐私目的相关联。

不过,与字符串类型的作用域不同,授权详细信息是 JSON 对象。 评估两个 JSON 对象是否相等是一项复杂的任务。 默认实现仅支持有限的比较方法。
  • full hash第一种方法是,通过将序列化的 JSON 对象生成哈希值,并利用该哈希值来比较两个同类型的授权详细信息 JSON 对象。
  • common fields hash第二种方法是。 在此方法中,哈希值是根据 JSON 对象中的公共数据字段计算得出的。 privilegesdatatypesactionslocations常用数据字段包括、、、 identifier 、和。 仅当您的授权详细信息 JSON 对象使用了这些字段时,才应采用此方法。
  • advanced最后一种方法是。 此方法使用 CELx 脚本来定义比较逻辑。 例如,当授权详细信息表示一个 transaction 且包含一个唯一的 transactionID 属性时,可以使用该属性来替代前面描述的方法。
注意: 在脚本中可以通过 requestContext.ad 键访问该 JSON 对象。 如果你想返回 JSON 对象的某个 transactionID 属性,可以在脚本中使用 requestContext.ad.transactionID 。 关于 requestContextHTTP 的一般结构和使用方法,请参阅“属性函数”中的“请求上下文”一节。

自定义同意映射

出于各种原因,您可以选择不使用默认实现,例如:

  • 您可以将隐私政策与所请求的授权详情相关联。
  • 您可以为所请求的同意项关联其他属性。 例如,同意应自动授予或必须获得。 下表列出了可与同意项关联的属性。
您可以选择指定自定义同意映射,并指定 CELx 脚本以返回一个 JSON 对象。 该 JSON 对象可以具有以下属性:
属性 类型 是否必需? 描述
purpose 字符串 管理隐私用途
attribute 字符串 取决于目的 管理属性
accessType 字符串 取决于目的 访问类型配置为具有数据隐私目的。 如果未提供,default 则使用该值。
value 字符串 指示更具体的同意请求。 例如,对特定电子邮件的同意。
custom JSON 对象。 JSON 属性值类型为字符串。 要添加到同意的任何其他上下文信息。 可以在同意页面中以模板宏的形式显示此内容。
claims JSON 对象。 JSON 属性值可以是任何类型。 如果请求已授权,那么会将相应的声明添加到所发出的标识令牌中。
required 布尔型 如果 required 该选项设置为 true,则用户必须表示同意。 如果隐私政策中的规定表明该同意绝不能被接受,则无需征得此同意。
autoGrant 布尔型 如果 autoGrant 该选项设置为 true,则不会提示用户同意,且该同意项将自动获得授权。
global 布尔型 如果 global 该选项设置为 true,则记录的同意状态将适用于所有应用程序。 此设置适用于需要用户同意的项目,例如用户仅需接受一次的条款文件。
audience 字符串 如果请求获得授权,该值将与应用程序中配置的受众列表以及默认客户端 ID 一起添加到已授权的受众中。
以下是自定义同意映射返回的 JSON 示例:
    {
    "purpose": "marketing",
    "attribute": "email",
    "accessType": "read",
    "value": "jhill@ibm.com",
    "custom": {
        "type": "personal"
    },
    "autoGrant": true,
    "required": false
}