开始启用第三方评估
要集成 IBM® Verify 和第三方风险评估, Verify 管理员需要配置以下组件和框架:
- 创建 Webhook 配置
- 创建第三方集成配置
- 创建访问策略对象以及第三方风险 API 合同
创建 Webhook 配置
实时网络钩子配置必须与第三方风险提供商相关联。 实时网络钩子提供了 Verify 与第三方风险提供商服务之间的技术运行时集成。 在计算第三方风险之前,必须完成实时网络钩子配置。
可能支持第三方风险提供商的虚构实时网络钩子配置:
{
"name": "some name",
"type": "realtime",
"urls": [
"https://somedomain.com/1351/app_proxy/api/risk"
],
"authentication": {
"header": {
"values": [
{
"key": "SEC",
"value": "some-value"
}
]
},
"type": "header"
}
"purpose": [
"external_risk"
],
"notification": null
}
注: 如果第三方集成未能以 "验证" 期望的格式提供响应,那么它可能会实现介体服务或 API 网关以进行简单转换,或者使用 Webhook 变换。 有关 webhooks 转换的信息,请参阅 webhooks 配置 API 参考文档。
创建第三方集成配置
对于每个第三方风险集成,都需要创建一个配置。 此配置对象标识使用的 Webhook(Webhook 标识)并验证内部属性。 验证内部组件必须向第三方发送评估信息(通过实时网络钩子)。
访问策略框架提供了一组 API,允许创建和管理此配置。
POST '/integrations/v1.0/config' \
'Content-Type: application/json' \
'Accept: application/json' \
{
"WebhookId": "some-Webhook-id",
"name": "some third party integration",
"version": 1,
"evaluationOutboundAttributes": {
"sessionContext": {
...
},
"attributeContext": {
...
},
"policyContext": {
...
},
"adaptiveContext": {
...
}
},
"supportedAttributes": [],
"integrationProcessingEndpoint": {
"redirectUri": ""
}
}
集成配置请求详细信息
| Element | 描述 |
|---|---|
| HTTP 请求 | POST。 |
HTTP 标头 - Content-Type |
请求有效内容的内容类型始终为 application/json。 |
HTTP 标头 - Accept |
期望的响应有效内容的内容类型始终为 application/json。 |
| 有效内容 | 表示第三方集成配置的 JSON 对象。 |
WebhookId |
必须填写:创建第三方提供程序时使用的实时网络钩子的唯一标识符。 |
name |
必需:此配置对象的名称。 |
version |
配置对象的版本。 |
evaluationOutboundAttributes |
可选:此对象表示需要从相关上下文对象(当前为 SessionContext (SubjectContext)、AttributeContext、AdaptiveContext 或 PolicyContext)传递至第三方风险集成的 Verify 数据。 |
supportedAttributes |
可选:表示此第三方集成为其提供值的属性。 在 Webhook 编排期间,系统将创建新的 Fixed value 属性以表示所返回属性。 Fixed value 属性可以使用可更新预定义值进行配置。 如果 Webhook 调用失败,或者尽管存在 API 合同,但在 Webhook 响应中未返回该属性,那么可以使用在运行时填充定制属性的方式来调用负责属性管理的 Verify 内部组件以获取预配置的值。 如果您要使用第 3 方集成支持的属性,请创建补充属性占位符(如果发生某些异常,则添加缺省值)。 请参阅属性管理 API 参考。 |
样本集成配置响应有效内容:
{
"id" : "config-id"
"WebhookId": "some-Webhook-id",
"referenceId": "reference-id",
"created": "created timestamp",
"name": "some third integration",
"version": 1,
"evaluationOutboundAttributes": {
"sessionContext": {
...
},
"attributeContext": {
...
},
"policyContext": {
...
},
"adaptiveContext": {
...
}
},
"supportedAttributes": [],
"integrationProcessingEndpoint": {
"redirectUri": ""
}
}
集成配置响应详细信息
| Element | 描述 |
|---|---|
| 有效内容类型 | 表示第三方集成配置的 JSON 对象。 |
| HTTP 状态码 | 201-创建成功,400®-错误响应,403-禁止访问,500-服务器内部错误 |
id |
必需:表示此配置对象的唯一标识。 |
referenceId |
必需:表示 Verify 内部组件在与 Webhook 通信时使用的引用标识。 |
created |
必需: 表示创建此配置对象时的时间戳记。 |
WebhookId |
必填:创建第三方提供程序时使用的实时网络钩子的唯一标识符。 |
name |
必需:此配置对象的名称 |
version |
可选: 配置对象的版本。 |
evaluationOutboundAttributes |
可选:原始请求是否随其发送。 |
supportedAttributes |
可选:原始请求是否随其发送。 |
integrationProcessingEndpoint |
原始请求是否随其发送。 |
请参阅风险管理配置 API 参考以获取详细信息。
虚构的第三方配置对象:
{
"WebhookId": "some-Webhook-id",
"name": "some third party integration",
"version": 1,
"evaluationOutboundAttributes": {
"sessionContext": {
"uid": true,
"groupIds": false
},
"attributeContext": {
"appId": false,
"ipAddress": true
},
"policyContext": {
"id": true,
"policyName": true
},
"adaptiveContext": {
"city": true
}
},
"supportedAttributes": [],
"integrationProcessingEndpoint": {
"redirectUri": ""
}
}
创建访问策略对象
Verify 中的访问策略框架提供了一种机制,通过此机制,Verify 内部组件可以计算来自第三方提供程序的外部风险。 验证内部组件会评估该访问策略对象,并参考在步骤二中创建的第三方集成配置(通过实时网络钩子)向第三方集成发送数据。 这样可能发生外部风险或属性扩充。
用于在访问策略对象中启用第三方风险集成的格式:
{
"name": "3rd Party Risk Evaluation",
"alwaysRun": true,
"conditions": [ {
"type":"integrationAttributes":,
"id" : "<configId>"
}]
},
"result": {
"action": "ACTION_MFA_ALWAYS",
"serverSideActions": {[]},
"authnMethods": <["urn:ibm:security:authentication:asf:macotp"]> or <["smsotp", "emailotp", ....]>
}
}
| 条件属性 | 描述 |
|---|---|
| 标识 | 第三方集成configId 第三方集成configId,请参阅创建第三方集成配置。 |
| result | 如果实时网络钩子出现错误,则验证风险评估结果。 |
authnMethods |
验证认证因素。 |
具有第三方集成条件的访问策略对象的示例:
{
"name": "3rd Party Integration via webhooks",
"description": "",
"rules": [
{
"id": "1",
"name": "3rd party provider",
"alwaysRun": true,
"firstFactor": false,
"conditions": [
{
"type": "integrationAttributes",
"id": "16a1f2fb-c43f-4a0e-b294-1b25a87a9546"
}
],
"result": {
"action": "ACTION_ALLOW",
"serverSideActions": [],
"authnMethods": [
"urn:ibm:security:authentication:asf:macotp"
]
}
},
{
"id": "1634292657617",
"name": "Colour Severity",
"description": "",
"alwaysRun": false,
"firstFactor": false,
"conditions": [
{
"type": "customAttributes",
"customAttributes": [
{
"name": "external_risk_score",
"opCode": "EQ",
"values": [
"4"
]
}
],
"firstFactor": false
}
],
"result": {
"action": "ACTION_DENY",
"serverSideActions": [],
"authnMethods": []
}
},
{
"id": "1634292240488",
"name": "Default rule",
"description": "",
"alwaysRun": false,
"firstFactor": false,
"conditions": [],
"result": {
"action": "ACTION_ALLOW",
"serverSideActions": [],
"authnMethods": [
"urn:ibm:security:authentication:asf:macotp"
]
}
}
],
"meta": {
"label": "initial policy",
"state": "ACTIVE",
"scope": [
"developers"
],
"schema": "urn:access:policy:5.0:schema",
"enforcementType": "fedSSO"
}
}
- 此访问策略对象显示第三方风险集成,其配置由字段
id标识。 - 除了
integrationAttributes之外,该策略还具有customAttributes条件。 定制属性external_risk_score是由第三方参与方风险集成提供其值的属性。
创建访问策略对象后,将其附加到所需的用户应用程序。