Schlüsselkomponenten und Informationen für die End-to-End-Integration externer MFA
Wenn Sie eine neue externe MFA-Integration aktivieren oder entwerfen, müssen Sie zwei Schlüsselkomponenten in IBM® Verify berücksichtigen und definieren.
- MFA-Provider
- Die Konfiguration, die die öffentliche Verify-Projektion einer externen MFA-Providerintegration darstellt. Zur Laufzeit fungiert diese Komponente als API-Client. Anfragen und Antworten werden über einen Echtzeit-Webhook gesendet.
- Echtzeit-Webhook
- Stellt die sichere authentifizierte Internetverbindung und den HTTPS-Client für einen externen MFA-Zielprovider bereit. Legen Sie den Webhook als API-Vertragsdurchsetzungspunkt fest. Der Webhook vermittelt die Anforderungen und Antworten, die zwischen der internen Komponente von Verify und dem externen MFA-Zielprovider gesendet werden.
Informationen zum MFA-Provider
Ein Verify-MFA-Provider stellt die Verify-Konzeption eines externen MFA-Providers dar. Sie definiert, welche MFA-Faktorfunktionen verfügbar gemacht werden und wie Verify-Benutzer im Ziel-MFA-Provider ermittelt und aufgelöst werden. Im folgenden Beispiel wird eine MFA-Providerkonfiguration gezeigt.
{
"name": "The Provider Name",
"description": "ISV - External Provider Integration",
"enabled": true,
"credentialPrefix": "emfa",
"webhookId": "{{webhook.id}}",
"uniqueNameAttribute": "{{unique.name.attribute}}",
"capabilities": [
"mobile_otp",
"mobile_bio",
"custom_totp"
]
}In der folgenden Tabelle sind die Schlüsselkonfigurationsattribute aufgeführt.
| Konfigurationsattribut | Beschreibung |
|---|---|
name |
Der kurze Anzeigename des MFA-Providers, der in Verify bekannt ist. |
description |
Eine Kurzbeschreibung des Providers. |
enabled |
Gibt an, ob der Provider zur Laufzeit aktiviert wird. Bei "true" wird der Provider als verfügbar für MFA-Abfragen betrachtet. |
credentialPrefix |
Ein kurzes Präfix, das jeder Faktorfunktion unter hinzugefügt und von Zugriffsrichtlinienauswertungen referenziert wird. Dieser Wert muss für alle konfigurierten MFA-Provider in Ihrem Verify-Tenant eindeutig sein. In Verify wird ein externer MFA-Faktor als {credentialPrefix}:{capability} angegeben.:Hinweis: Dieser Wert darf keinen Doppelpunkt enthalten. |
webhookId |
Die Verify Konfigurations-UUID der Echtzeit-Webhook-Konfigurationsinstanz, die dem MFA-Anbieter zugeordnet ist. |
uniqueNameAttribute |
Der Name eines Verify-Standardattributs oder eines angepassten Attributs, das im Verify-Tenant konfiguriert ist. Dieses Attribut stellt eine Zuordnung des authentifizierten Verify-Benutzers zum Benutzer des externen MFA-Providers bereit. Der Wert wird verwendet, um einen bestimmten Benutzer und seine MFA-Registrierungen und -Funktionen im Ziel-MFA-Provider zu suchen. |
| -Funktionen | Die Liste der MFA-Faktorfunktionen, die von Verify bereitgestellt und vom externen MFA-Provider unterstützt werden sollen. Die Werte sind Zeichenfolgen und können beliebige gültige Zeichenfolgen enthalten. Das Laufzeitverhalten einer Funktion muss dem Muster für die Registrierungssuche und einem anderen Laufzeitabfragemuster zugeordnet werden können. |
Webhook-Informationen
Eine Echtzeit-Webhook-Konfiguration muss mit einer MFA-Anbieter-Konfiguration verknüpft sein. Der Echtzeit-Webhook sorgt für die technische Laufzeitintegration zwischen dem ISV und dem MFA-Dienst des Zielanbieters. Im Idealfall ist der Webhook auch der Punkt, an dem der externe MFA-Vertrag durchgesetzt wird und somit als API und Protokollmediator zwischen ISV und dem Ziel-MFA-Provider fungiert. Die Schlüsselmechanismen, mit denen Webhooks die Möglichkeit zur Durchsetzung von API-Verträgen und -Mediation unterstützen, sind "Ressourcen" und "Umsetzungen". Für die externe MFA-Unterstützung und -Integration muss die Definition von "Ressourcen" mit dem ISV-Vertrag für die externe MFA-API übereinstimmen.
{
"name": "Some MFA Provider",
"type": "realtime",
"urls": ["https://some.address.com"],
"authentication": {
"type": "oauth",
"oauth": {
"client_id": "some_client_id",
"client_secret": "some_client_secret",
"token_endpoint": "https://some.address.com/token",
"token_endpoint_auth_method": "client_secret_basic"
}
},
"resources": {
"enrollments": {
"suffix": "/v1/enrollments",
"method": "GET",
"transform": {
"outgoing": (CEL TRANSFORM),
"incoming": (CEL TRANSFORM)
}
},
"initiate": {
"suffix": "/v1/mfa",
"method": "POST",
"expectedStatus": [201]
"transform": {
"outgoing": (CEL TRANSFORM),
"incoming": (CEL TRANSFORM)
}
},
"validate": {
"suffix": "/v1/mfa",
"method": "POST",
"transform": {
"outgoing": (CEL TRANSFORM),
"incoming": (CEL TRANSFORM)
}
},
"custom_totp_1": {
"suffix": "/v1/mfa",
"method": "POST",
"transform": {
"outgoing": (CEL TRANSFORM),
"incoming": (CEL TRANSFORM)
}
},
"result": {
"suffix": "/v1/mfa/transactions",
"method": "GET",
"transform": {
"outgoing": (CEL TRANSFORM),
"incoming": (CEL TRANSFORM)
}
}
},
"purpose": ["external_mfa"]
}| Attribut | Beschreibung |
|---|---|
suffix |
Optional. Das Suffix, das der Basis-URL hinzugefügt werden soll, die in abgehenden Anforderungen verwendet wird. Abgehende Anforderungen von einer Webhook-Ressource werden an base URL + suffix übertragen. Über die Definition in der Konfiguration hinaus werden keine Schrägstriche hinzugefügt. Die abgehende Anforderungs-URL kann mithilfe einer abgehenden Transformation geändert werden. Beispiel: Im vorherigen enrollments-Beispiel starten die ISV-Webhooks-Komponenten den API-Endpunkt https://some.address.com/v1/enrollments des Ziel-MFA-Providers. |
method |
Optional. Die Methode, die die abgehende HTTP-Methode von POST in die angegebene Methode ändert. Die HTTP-Methode, die zum Starten des API-Endpunkts verwendet wird. Gültige Werte sind POST, PUT, GET, DELETE und PATCH. Die Methode kann mit einer abgehenden Transformation geändert werden. |
transform.outgoing |
Optional. Definiert die Datentransformationen, die auf abgehende Anforderungen angewendet werden, bevor sie gesendet werden. Transformationen haben Zugriff auf die folgenden Anforderungselemente, die vom internen ISV-MFA-Framework gesendet wurden: body, headers, http
method, path, host. |
transform.incoming |
Optional. Definiert die Datentransformationen, die auf eingehende Antworten angewendet werden, vor der Rückkehr zum ISV-MFA-Framework. Transformationen haben Zugriff auf die folgenden Anforderungselemente, die vom internen ISV-MFA-Framework gesendet werden: body, headers, status_code, request (die ursprüngliche Anforderung, die die aktuelle Antwort erzeugt). |
exepctedStatus |
Optional. ist der Status „ HTTP “, der von der API erwartet wird, die durch diesen Webhook gestartet wird. Wenn das Attribut nicht vorhanden ist, wird ein Statuscode im Bereich von 200 bis 299 erwartet. Der erwartete Status wird geprüft, bevor die eingehende Transformation ausgeführt wird. Siehe „ HTTP -Status “. |
| Antwort | Definition |
|---|---|
| PENDING (Anstehend) | Die Authentifizierung ist noch nicht abgeschlossen. |
| ERFOLG | Die Authentifizierung war erfolgreich. |
| FEHLGESCHLAGEN | Die Authentifizierung ist fehlgeschlagen. |
| CANCELED | Die Authentifizierung wurde nicht abgeschlossen, da eine Instanz den Vorgang abgebrochen hat. |
| TIMEOUT | Die Authentifizierung konnte nicht abgeschlossen werden, da die Zeitüberschreitung überschritten wurde. |
| Webhook-Ressource | Muster | Beschreibung |
|---|---|---|
enrollments |
Registrierungssuche | Diese Ressource wird vom internen ISV-MFA-Client gestartet, wenn sie auf eine Anforderung zum Suchen der MFA-Registrierungen und -Funktionen eines bestimmten Benutzers antwortet. Diese Ressource ist in der Regel erforderlich, wenn der ISV dem Benutzer eine Auswahl von MFA-Faktoroptionen als Teil einer MFA-Laufzeitabfrage präsentiert. |
{{mfa_capability_name}}_1 |
initiate - sms, otpoder
|
Diese Ressource wird als Vorgabe für den ISV-MFA-Client gestartet, wenn der Name des MFA-Faktors dem Attribut {{mfa_capability_name}} entspricht.Sie wird zum Starten einer MFA-Abfrage verwendet, wenn das Prozessmuster |
{{mfa_capability_name}}_2 |
initiate + validate - sms, otp |
Diese Ressource wird als Vorgabe für den ISV-MFA-Client gestartet, wenn der Name des MFA-Faktors dem Attribut {{mfa_capability_name}} entspricht. Sie wird zur Validierung einer MFA-Abfrage verwendet. |
initiate |
initiate + validate - sms, otp)oder initiate + wait for
completion - Mobile Push |
Diese Ressource wird zum Starten einer MFA-Abfrage verwendet, wenn keine faktorfunktionsspezifische Ressource definiert ist. |
validate |
initiate - sms, otp |
Diese Ressource wird zur Validierung einer MFA-Abfrage verwendet, wenn keine faktorfähigkeitsspezifische Ressource definiert ist. |
result |
initiate + wait for completion - Mobile Push |
Diese Ressource wird verwendet, um den Abschluss der MFA-Abfrage nach dem Start der Abfrage abzufragen. Normalerweise ist es erforderlich, dass eine frühere Startantwort eine Transaktions-ID, einige andere Statusdaten oder eine interne Kennung zurückgibt. |