Composants et informations clés pour l'intégration de bout en bout MFA externe

Lorsque vous activez ou concevez-vous une nouvelle intégration MFA externe, vous devez envisager et définir deux composants clés dans IBM® Verify.

Fournisseur MFA
Configuration représentant la projection publique Verify d'une intégration de fournisseur MFA externe. Lors de l'exécution, ce composant agit en tant que client API. Les requêtes et les réponses sont transmises via un webhook en temps réel.
Webhook en temps réel
Fournit la connexion Internet authentifiée sécurisée et le client HTTPS à un fournisseur MFA externe cible. Désignez le webhook en tant que point d'application de contrat d'API. Le webhook sert de médiateur pour la demande et les réponses envoyées entre le composant interne de Verify et le fournisseur MFA externe cible.

Informations sur le fournisseur MFA

Un fournisseur MFA Verify représente la conceptualisation Verify d'un fournisseur MFA externe. Il définit les fonctions de facteur MFA qui sont exposées et la façon dont les utilisateurs Verify sont identifiés et résolus dans le fournisseur MFA cible. L'exemple suivant illustre une configuration de fournisseur MFA.

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

Le tableau suivant présente les attributs de configuration de clé.

Attribut de configuration Descriptif
name Nom usuel abrégé du fournisseur MFA connu dans Verify.
description Brève description du fournisseur.
enabled Indique si le fournisseur est activé lors de l'exécution. Lorsque la valeur est 'true', le fournisseur est considéré comme disponible pour les demandes d'authentification MFA.
credentialPrefix Un préfixe court ajouté à chaque fonction de facteur à et qui est référencé par les évaluations de stratégie d'accès. Cette valeur doit être unique pour tous les fournisseurs d'authentification multi-facteur configurés dans votre titulaire Verify. Dans Verify, un facteur MFA externe est identifié sous la forme {credentialPrefix}:{capability}.
Remarque : cette valeur ne doit pas contenir de deux-points (:).
.
webhookId L'UUID Verify de configuration de l'instance de configuration du webhook en temps réel qui sert de support et qui est associée au fournisseur d'authentification multifactorielle.
uniqueNameAttribute Nom d'un attribut standard ou personnalisé Verify configuré dans le titulaire Verify. Cet attribut fournit un mappage depuis l'utilisateur Verify authentifié vers l'utilisateur du fournisseur MFA externe. La valeur est utilisée pour rechercher un utilisateur spécifique et ses inscriptions et fonctions MFA dans le fournisseur MFA cible.
fonctions Liste d'une ou plusieurs fonctions de facteur MFA qui doivent être exposées depuis Verify et prises en charge par le fournisseur MFA externe. Les valeurs sont des chaînes et peuvent correspondre à toute chaîne de caractères valide. Le comportement d'exécution d'une fonctionnalité doit pouvoir être mappé au modèle de consultation d'inscription et à un autre modèle de demande d'authentification d'exécution.
Voir Référence de l'API de configuration du fournisseur MFA pour plus de détails.

Informations sur le webhook

Une configuration de webhook en temps réel doit être associée à une configuration de fournisseur d'authentification multifactorielle. Le webhook en temps réel assure l'intégration technique en exécution entre l'éditeur de logiciels indépendant (ISV) et le service du fournisseur d'authentification multifactorielle (MFA) cible. Idéalement, le webhook est aussi le point où le contrat MFA externe est appliqué et agit donc comme un médiateur d'API et de protocole entre ISV et le fournisseur MFA cible. Les mécanismes clés par lesquels les webhooks prennent en charge la capacité à appliquer le contrat d'API et la médiation sont les "ressources" et les "transformations". Pour la prise en charge et l'intégration MFA externe, la définition de "ressources" doit correspondre au contrat d'API MFA externe ISV.

Le code d'exemple suivant illustre un webhook en temps réel capable de prendre en charge le fournisseur d'authentification multifactorielle (MFA) présenté dans la section précédente.
{
    "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"]
}
Le tableau suivant décrit les attributs configurables associés aux ressources.
Attribut Descriptif
suffix Facultatif. Suffixe à ajouter à l'URL de base utilisée dans la demande sortante. Les demandes sortantes provenant d'une ressource de webhook sont dirigées vers base URL + suffix. Aucune barre oblique n'est ajoutée au-delà de ce qui est défini dans la configuration. L'URL de demande sortante peut être modifiée en utilisant une transformation sortante. Par exemple, dans l'exemple enrollments précédent, les composants ISV Webhooks commencent par le noeud final d'API https://some.address.com/v1/enrollments du fournisseur MFA cible.
method Facultatif. Méthode qui modifie la méthode HTTP sortante depuis POST vers tout ce qui est spécifié. Méthode HTTP utilisée pour démarrer le noeud final d'API. Valeurs admises : POST, PUT, GET, DELETE, PATCH. La méthode peut être modifiée avec une transformation sortante.
transform.outgoing Facultatif. Définit les transformations de données appliquées aux demandes sortantes avant leur envoi. Les transformations ont accès aux éléments de demande suivants, comme ils sont envoyés depuis l'infrastructure MFA interne ISV : body, headers, http method, path, host.
transform.incoming Facultatif. Définit les transformations de données appliquées aux réponses entrantes avant le retour à l'infrastructure MFA ISV. Les transformations ont accès aux éléments de de demande suivants, comme ils sont envoyés depuis de l'infrastructure MFA interne ISV : body, headers, status_code, request (la demande d'origine qui produit la réponse actuelle).
exepctedStatus Facultatif. ExpectedStatus Il s'agit du statut de l' HTTP ation attendu de l'API lancée par ce webhook. Si l'attribut n'est pas présent, un code de statut dans la plage 200 à 299 est attendu. Le statut attendu est vérifié avant l'exécution de la transformation entrante. Consultez l'état de l' HTTP.
Voir la référence d'API de configuration de webhooks.
Le fournisseur MFA externe est en mesure de renvoyer les réponses suivantes en fonction du résultat qu'il a déterminé pour la requête externe.
Réponse Définition
EN ATTENTE L'authentification n'est pas encore terminée.
SUCCESS L'authentification a réussi.
ECHEC L'authentification a échoué.
CANCELED L'authentification n'a pas abouti car une entité a annulé la tentative.
TIMEOUT L'authentification n'a pas abouti car le délai d'attente a été dépassé.
Le tableau suivant résume les éléments à prendre en compte lors de la conception de ressources Webhook destinées à prendre en charge les intégrations MFA externes. La conception de ressources est fonction des besoins du modèle d'intégration MFA qui est pris en charge.
Ressource de webhook Modèle Descriptif
enrollments consultation d'inscription Cette ressource est démarrée par le client MFA interne ISV lorsqu'elle répond à une demande de recherche des fonctions et inscriptions MFA d'un utilisateur spécifique. Cette ressource est généralement nécessaire quand ISV présente à l'utilisateur une sélection d'options de facteur MFA dans le cadre d'une demande d'authentification MFA d'exécution.
{{mfa_capability_name}}_1 initiate - sms, otp

ou

validate - totp

Cette ressource est démarrée en tant que préférence client MFA ISV lorsque le nom du facteur MFA correspond à l'attribut {{mfa_capability_name}}.

Elle est utilisée pour lancer une demande d'authentification MFA si le modèle de fonctionnalité est initiate+validate. Elle est utilisée pour valider un jeton ou une valeur MFA si le modèle de fonctionnalité est validate only.

{{mfa_capability_name}}_2 initiate + validate - sms, otp Cette ressource est démarrée en tant que préférence client MFA ISV lorsque le nom du facteur MFA correspond à l'attribut {{mfa_capability_name}}. Elle est utilisée pour valider une demande d'authentification MFA.
initiate initiate + validate - sms, otp)

ou

initiate + wait for completion - mobile push
Cette ressource est utilisée pour lancer une demande d'authentification MFA si aucune ressource spécifique à la fonction de facteur n'est définie.
validate initiate - sms, otp Cette ressource est utilisée pour valider une demande d'authentification MFA si aucune ressource spécifique à la fonction de facteur n'est définie.
result initiate + wait for completion - mobile push Cette ressource est utilisée pour connaître l'état d'achèvement après le démarrage de la demande d'authentification MFA. Nécessite généralement qu'une réponse de démarrage antérieure renvoie un identificateur de transaction, d'autres données d'état ou un descripteur.