管理同意映射
已同意的范围会被存储并可供管理,请参阅 “管理隐私同意 ”。 此外,已同意的范围可与某项隐私目的相关联。 请参阅 “管理隐私用途 ”。
授权详情代表了细粒度的权限,因此用户已同意的授权详情也会被存储并可供管理。 与权限范围类似,已获同意的授权详情也可以与隐私目的相关联。
不过,与字符串类型的作用域不同,授权详细信息是 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
}