开始启用第三方评估

要集成 IBM® Verify 和第三方风险评估, Verify 管理员需要配置以下组件和框架:

  1. 创建 Webhook 配置
  2. 创建第三方集成配置
  3. 创建访问策略对象以及第三方风险 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 验证认证因素。

请参阅用于策略创建和管理的访问和风险策略 API

具有第三方集成条件的访问策略对象的示例:

{
    "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 是由第三方参与方风险集成提供其值的属性。

创建访问策略对象后,将其附加到所需的用户应用程序。