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.
Siehe API-Referenz für MFA-Providerkonfiguration für Details.

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.

Der folgende Beispielcode ist ein Beispiel für einen Echtzeit-Webhook, der den im vorigen Abschnitt vorgestellten MFA-Anbieter unterstützen kann.
{
    "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"]
}
In der folgenden Tabelle werden die konfigurierbaren Attribute beschrieben, die Ressourcen zugeordnet sind.
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. ExpectedStatus 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 “.
Siehe API-Referenz für Webhooks-Konfiguration.
Der externe MFA-Anbieter kann je nach dem von ihm ermittelten Ergebnis der externen Anfrage die folgenden Antworten zurückgeben.
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.
Die folgende Tabelle fasst die zu beachtenden Punkte bei der Entwicklung von Webhook-Ressourcen zur Unterstützung externer MFA-Integrationen zusammen. Das Ressourcendesign wird durch die Anforderungen des MFA-Integrationsmusters gesteuert, das unterstützt wird.
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, otp

oder

validate - totp

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 initiate+validate lautet. Sie wird verwendet, um ein MFA-Token oder einen Wert zu validieren, wenn das Prozessmuster validate only ist.

{{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.