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:
- Webhooks-Konfiguration erstellen
- Integrationskonfiguration eines Drittanbieters erstellen
- 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
}
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": ""
}
}
| 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": ""
}
}
| 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
idangegeben wird. - Neben
integrationAttributeshat die Richtlinie auch die BedingungcustomAttributes. Das angepasste Attributexternal_risk_scoreist 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.