サード・パーティー・アセスメントの有効化の概要

およびサードパーティのリスク評価を IBM® Verify 統合するには、管理者は Verify 以下のコンポーネントとフレームワークを設定する必要があります:

  1. Webhook 構成の作成
  2. サード・パーティー統合構成の作成
  3. サード・パーティー・リスク API 規約付きアクセス・ポリシー・オブジェクトの作成

Webhook 構成の作成

リアルタイムWebhookの設定は、サードパーティのリスクプロバイダーに関連付ける必要があります。 リアルタイムWebhookは、Verifyとサードパーティのリスク管理サービスとの間で、技術的な実行時統合を実現します。 サードパーティのリスクを算出するには、事前にリアルタイムWebhookの設定を完了しておく必要があります。

サードパーティのリスクプロバイダーに対応している可能性のある、架空のリアルタイムWebhook設定:

{
  "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
}
注: サードパーティの統合が、Verifyが期待する形式でレスポンスを提供できない場合、簡単な変換を行うためにメディエーターサービスやAPIゲートウェイを実装するか、Webhookの変換機能を利用することができます。 Webhookの変換については、 Webhook設定APIリファレンスを参照してください。

サード・パーティー統合構成の作成

サード・パーティー・リスク統合ごとに、構成を作成する必要があります。 この構成オブジェクトは、使用される Webhook (Webhook ID) および Verify 内部属性を識別します。 Verifyの内部コンポーネントは、評価のために(リアルタイムの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": ""
        }
}
統合構成要求の詳細
エレメント 説明
HTTP 要求 投稿。
HTTP ヘッダー - Content-Type 要求ペイロードのコンテンツ・タイプは、常に application/json です。
HTTP ヘッダー - Accept 応答ペイロードの予期されるコンテンツ・タイプは、常に application/json です。
Payload サード・パーティー統合構成を表す JSON オブジェクト。
WebhookId 必須:サードパーティプロバイダーの作成時に使用される、リアルタイムWebhookの一意の識別子。
name 必須: この構成オブジェクトの名前。
version 構成オブジェクトのバージョン。
evaluationOutboundAttributes オプション: このオブジェクトは、関連するコンテキスト・オブジェクト (現在は SessionContext (SubjectContext)、AttributeContext、AdaptiveContext、または PolicyContext) から使用可能なサード・パーティー・リスク統合に渡す必要がある Verify データを表します。
supportedAttributes オプション: このサード・パーティー統合によって値を提供される属性を表します。 Webhook オーケストレーション中に、返された属性を表す新しい Fixed value 属性が作成されます。 Fixed value 属性は、更新可能な事前定義値を使用して構成できます。 Webhook 呼び出しが失敗した場合、または API 規約にかかわらず Webhook 応答でその属性が返されない場合は、属性管理を行う Verify 内部コンポーネントを、実行時にカスタム属性が取り込まれて事前構成された値を取得するのと同じ方法で呼び出すことができます。 サード・パーティー統合によってサポートされる属性を使用している場合は、エンリッチメント属性プレースホルダー (何らかの例外が発生した場合のデフォルト値を含む) を作成します。 属性管理 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": ""
        }
}
統合構成応答の詳細
エレメント 説明
ペイロード・タイプ サード・パーティー統合構成を表す JSON オブジェクト。
HTTP 状況コード 201-作成済み(成功)、400®-不正なリクエスト、403-アクセス拒否、500-サーバー内部エラー
id 必須: この構成オブジェクトの固有 ID を表します。
referenceId 必須: Webhook との通信で Verify 内部コンポーネントによって使用される参照 ID を表します。
created 必須: この構成オブジェクトが作成されたときのタイム・スタンプを表します。
WebhookId 必須:サードパーティプロバイダーの作成時に使用される、リアルタイムWebhookの一意の識別子。
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 内部コンポーネントがサード・パーティー・プロバイダーからの外部リスクを計算するためのメカニズムを提供します。 Verifyの内部コンポーネントは、このアクセスポリシーオブジェクトを評価し、ステップ2で作成されたサードパーティ連携の設定を参照して、サードパーティ連携へ(リアルタイムWebhookを介して)データを送信します。 これにより、外部リスクまたは属性についての拡張を行うことができます。

アクセス・ポリシー・オブジェクト内でサード・パーティー・リスク統合を有効にするためのフォーマット:

{
      "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", ....]>
      }
    }
条件属性 説明
ID サード・パーティー統合configId サード・パーティー統合configIdについては、サード・パーティー統合構成の作成を参照してください。
result リアルタイムのWebhookからエラーが発生した場合は、リスク評価の結果を確認してください。
authnMethods Verify 認証要素。

ポリシーの作成と管理のためのアクセス・ポリシーとリスク・ポリシーの 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 は、サード・ パーティー・リスク統合によって値が提供される属性です。

アクセスポリシーオブジェクトを作成したら、それを対象のユーザーアプリケーションに紐付けます。