Erste Schritte bei der Aktivierung der Bewertung von Drittanbietern

Um die IBM® Verify und die Risikobewertung durch Dritte zu integrieren, muss der Verify Administrator die folgenden Komponenten und Frameworks konfigurieren:

  1. Webhooks-Konfiguration erstellen
  2. Integrationskonfiguration eines Drittanbieters erstellen
  3. Erstellung eines Zugriffsrichtlinienobjekts zusammen mit einem Risiko-API-Vertrag eines Drittanbieters

Webhooks-Konfiguration erstellen

Eine Echtzeit-Webhook-Konfiguration muss einem Drittanbieter für Risikomanagement zugeordnet sein. Der Echtzeit-Webhook sorgt für die technische Laufzeitintegration zwischen Verify und dem Dienst des Drittanbieters für Risikomanagement. Die Konfiguration des Echtzeit-Webhooks muss abgeschlossen sein, bevor das Risiko durch Drittanbieter berechnet werden kann.

Eine fiktive Echtzeit-Webhook-Konfiguration, die den Drittanbieter für Risikomanagement unterstützen könnte:

{
  "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
}
Hinweis: Falls die Integration eines Drittanbieters die Antwort nicht in dem von Verify erwarteten Format liefert, kann ein Mediator-Dienst oder ein API-Gateway zur einfachen Konvertierung implementiert oder die Webhook-Transformation genutzt werden. Informationen zu Webhook-Transformationen finden Sie in der API-Referenz zur Webhook-Konfiguration.

Integrationskonfiguration eines Drittanbieters erstellen

Für jede Risikointegration eines Drittanbieters muss eine Konfiguration erstellt werden. Dieses Konfigurationsobjekt gibt die Webhooks an, die verwendet werden (Webhook-ID), und Verify-interne-Attribute. Die internen Komponenten von Verify müssen zur Bewertung an den Drittanbieter gesendet werden (über Echtzeit-Webhooks).

Das Zugriffsrichtlinienframework stellt eine Reihe von APIs bereit, die die Erstellung und Verwaltung dieser Konfiguration ermöglichen.

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": ""
        }
}
Anforderungsdetails für Integrationskonfiguration
Element Beschreibung
HTTP-Anforderung Beitrag.
HTTP-Header - Content-Type Der Inhaltstyp der Anforderungsnutzdaten ist immer application/json.
HTTP-Header - Accept Der von den Antwortnutzdaten erwartete Inhaltstyp ist immer application/json.
Nutzdaten JSON-Objekt, das die Integrationskonfiguration eines Drittanbieters darstellt.
WebhookId Erforderlich: Die eindeutige Kennung des Echtzeit-Webhooks, die bei der Erstellung des Drittanbieter-Accounts verwendet wird.
name Obligatorisch: Der Name dieses Konfigurationsobjekts.
version Version für das Konfigurationsobjekt.
evaluationOutboundAttributes Optional: Dieses Objekt stellt dar, welche Verify-Daten an die Risikointegration eines Drittanbieters übergeben werden müssen, die über die relevanten Kontextobjekte, derzeit SessionContext (SubjectContext), AttributeContext, AdaptiveContext oder PolicyContext, verfügbar ist.
supportedAttributes Optional: Stellt die Attribute dar, für die diese Integration von Drittanbietern Werte bereitstellt. Während der Webhook-Orchestrierung wird ein neues Attribut Fixed value erstellt, um das zurückgegebene Attribut darzustellen. Das Attribut Fixed value kann mit einem vordefinierten Wert konfiguriert werden, der aktualisiert werden kann. Wenn ein Webhook-Aufruf fehlschlägt oder dieses Attribut trotz des API-Vertrags nicht in einer Webhook-Antwort zurückgegeben wird, kann die Verify-interne Komponente, die für das Attributmanagement zuständig ist, auf dieselbe Weise aufgerufen werden, wie die angepassten Attribute zur Laufzeit gefüllt werden, um den vorkonfigurierten Wert abzurufen. Erstellen Sie den Platzhalter für das Aufbereitungsattribut (einschließlich eines Standardwerts, wenn eine Ausnahme eintritt), wenn Sie die Attribute verwenden, die von der Drittanbieter-Integration unterstützt werden. Siehe Attributmanagement-API-Referenz.

Beispielantwortnutzdaten für Integrationskonfiguration:

{
        "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": ""
        }
}
Antwortdetails für Integrationskonfiguration
Element Beschreibung
Nutzdatentyp JSON-Objekt, das die Integrationskonfiguration eines Drittanbieters darstellt.
HTTP-Statuscode 201 – Erstellt (erfolgreich), 400 – Ungültige Antwort, 403 – Zugriff verweigert, 500 – Interner Serverfehler
id Obligatorisch: Stellt die eindeutige ID für dieses Konfigurationsobjekt dar.
referenceId Obligatorisch: Stellt die Referenz-ID dar, die von Verify-internen Komponenten für die Kommunikation mit den Webhooks verwendet wird.
created Obligatorisch: Gibt die Zeitmarke der Erstellung dieses Konfigurationsobjekts an.
WebhookId Erforderlich: Die eindeutige Kennung des Echtzeit-Webhooks, die bei der Erstellung des Drittanbieter-Accounts verwendet wird.
name Obligatorisch: Der Name dieses Konfigurationsobjekts
version Optional: Version für das Konfigurationsobjekt.
evaluationOutboundAttributes Optional: Wenn die ursprünglichen Anforderungen mit ihnen gesendet wurden.
supportedAttributes Optional: Wenn die ursprünglichen Anforderungen mit ihnen gesendet wurden.
integrationProcessingEndpoint Wenn die ursprünglichen Anforderungen mit ihnen gesendet wurden.

Siehe API-Referenz zur Risikomanagementkonfiguration für Details.

Ein fiktives Konfigurationsobjekt eines Drittanbieters:

{
    "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": ""
    }
}

Zugriffsrichtlinienobjekt erstellen

Das Zugriffsrichtlinienframework in Verify stellt einen Mechanismus bereit, mit dem die Verify-internen Komponenten das externe Risiko des Drittanbieters berechnen können. Die internen Komponenten von Verify werten dieses Zugriffsrichtlinienobjekt aus und greifen auf die in Schritt zwei erstellte Konfiguration für die Drittanbieter-Integration zurück, um Daten an die Drittanbieter-Integration zu senden (über Echtzeit-Webhooks). Auf diese Weise kann eine Aufbereitung externer Risiken oder Attribute erfolgen.

Das Format zum Aktivieren der Integration von Risiken von Drittanbietern im Zugriffsrichtlinienobjekt:

{
      "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", ....]>
      }
    }
Bedingungsattribut Beschreibung
ID Drittanbieter-IntegrationconfigId Drittanbieter-Integration configId (siehe Integrationskonfiguration eines anderen Anbieters erstellen).
Ergebnis Überprüfen Sie das Ergebnis der Risikobewertung, wenn bei den Echtzeit-Webhooks ein Fehler auftritt.
authnMethods Überprüfen Sie die Authentifizierungsfaktoren.

Siehe Zugriffs- und Risikorichtlinien-API für Richtlinienerstellung und -management.

Beispiel für ein Zugriffsrichtlinienobjekt mit Integrationsbedingung eines Drittanbieters:

{
    "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"
    }
}
  • Dieses Zugriffsrichtlinienobjekt zeigt eine Risikointegration eines Drittanbieters an, deren Konfiguration durch das Feld id angegeben wird.
  • Neben integrationAttributes hat die Richtlinie auch die Bedingung customAttributes. Das angepasste Attribut external_risk_score ist das Attribut, dessen Wert von der Integration von Drittanbieter-Risiken bereitgestellt wird.

Nachdem das Zugriffsrichtlinienobjekt erstellt wurde, ordnen Sie es der gewünschten Benutzeranwendung zu.