Principais componentes e informações para integração de autenticação de diversos fatores externa de ponta a ponta

Ao ativar ou projetar uma nova integração de autenticação de diversos fatores externa, deve-se considerar e definir dois componentes principais em IBM® Verify.

Provedor de autenticação de diversos fatores
A configuração que representa a projeção pública do Verify de uma integração de provedor de autenticação de diversos fatores externa. No tempo de execução, este componente age como um cliente da API. As solicitações e respostas são enviadas por meio de um webhook em tempo real.
Webhook em tempo real
Fornece a conexão de Internet autenticada segura e o cliente HTTPS para um provedor de autenticação de diversos externa fatores de destino. Designar o webhook como o ponto de cumprimento do contrato da API. O webhook media a solicitação e as respostas que são enviadas entre o componente interno do Verify e o provedor de Autenticação de diversos fatores externa de destino.

Informações do Provedor de autenticação de diversos fatores

Um provedor de Autenticação de diversos fatores do Verify representa a conceitualização do Verify de um provedor de Autenticação de diversos fatores externa. Ele define quais os recursos do fator Autenticação de diversos fatores estão expostos e como usuários do Verify são identificados e resolvidos no provedor de Autenticação de diversos fatores de destino. Uma configuração de provedor de Autenticação de diversos fatores é mostrada no exemplo a seguir.

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

A tabela a seguir mostra os principais atributos de configuração.

Atributo de configuração Descrição
name O nome fácil curto do provedor de Autenticação de diversos fatores que é conhecido em Verify.
description Uma breve descrição do provedor.
enabled Indica se o provedor está ativado no tempo de execução. Quando 'true', o provedor é considerado disponível para desafios de Autenticação de diversos fatores.
credentialPrefix Um prefixo curto que é adicionado a cada recurso de fator e é referenciado por avaliações de política de acesso. Este valor deve ser exclusivo em todos os provedores de Autenticação de diversos fatores configurados dentro do seu locatário do Verify. Dentro do Verify, um fator de autenticação de diversos fatores externa é identificado como {credentialPrefix}:{capability}.
Observação: este valor não deve conter dois pontos (:).
.
webhookId O Verify UUID da instância de configuração do webhook em tempo real que serve de base e que está associado ao provedor de MFA.
uniqueNameAttribute O nome de um atributo padrão ou customizado Verify configurado no locatário Verify. Este atributo fornece um mapeamento a partir do usuário autenticado do Verify para o usuário do provedor de Autenticação de diversos fatores externa. O valor é usado para consultar um usuário específico e seus registros e recursos de Autenticação de diversos fatores no provedor de Autenticação de diversos fatores de destino.
Recursos do A lista de um ou mais recursos de fator de Autenticação de diversos fatores que devem ser expostos de Verify e suportados pelo provedor de Autenticação de diversos fatores externa. Os valores são sequências e podem conter qualquer sequência de caracteres válida. O comportamento de tempo de execução de um recurso deve ser mapeado para o padrão de consulta de inscrição e um outro padrão de desafio de tempo de execução.
Veja Referência da API de configuração do provedor de Autenticação de diversos fatores para obter detalhes.

Informações do Webhook

A configuração de um webhook em tempo real deve estar associada à configuração de um provedor de MFA. O webhook em tempo real proporciona a integração técnica em tempo de execução entre o ISV e o serviço do provedor de MFA de destino. Idealmente, o webhook também é o ponto em que o contrato de autenticação externa de diversos fatores é aplicado e, portanto, atua como um mediador de API e protocolo entre o ISV e o provedor de Autenticação de diversos fatores de destino. Os principais mecanismos pelos quais os webhooks suportam a capacidade de impor o contrato e a mediação da API são "recursos" e "conversões". Para suporte e integração de Autenticação de diversos fatores externa, a definição de "recursos" deve corresponder ao contrato de API de Autenticação de diversos fatores externa de ISV.

O código de exemplo a seguir é um exemplo de webhook em tempo real compatível com o provedor de MFA apresentado na seção anterior.
{
    "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"]
}
A tabela a seguir descreve os atributos configuráveis que estão associados a recursos.
Atributo Descrição
suffix Opcional. O sufixo a ser incluído na URL base que está sendo usada na solicitação de saída. As solicitações de saída de um recurso webhook são direcionadas para base URL + suffix. Nenhuma barra é incluída além do que está definido na configuração. A URL de solicitação de saída pode ser modificada usando uma conversão de saída. Por exemplo, na amostra anterior do enrollments, os componentes Webhooks do ISV iniciam o terminal da API https://some.address.com/v1/enrollments do provedor de Autenticação de diversos fatores de destino.
method Opcional. O método que modifica o método HTTP de saída de POST para o que for especificado. O método HTTP que é usado para iniciar o terminal da API. Os valores válidos são POST, PUT, GET, DELETE, PATCH. O método pode ser modificado com uma conversão de saída.
transform.outgoing Opcional. Define as conversões de dados que são aplicadas a solicitações de saída antes de serem enviadas. As conversões têm acesso aos seguintes elementos de solicitação conforme enviados da estrutura de Autenticação de diversos fatores interna do ISV: body, headers, http method, path, host.
transform.incoming Opcional. Define as conversões de dados que são aplicadas às respostas recebidas antes de retornar à estrutura de Autenticação de diversos fatores do ISV. As conversões têm acesso aos seguintes elementos de solicitação enviados da estrutura de Autenticação de diversos fatores interna do ISV: body, headers, status_code, request (a solicitação original que produz a resposta atual).
exepctedStatus Opcional. ExpectedStatus é o status do ` HTTP ` esperado da API acionada por este webhook. Se o atributo não estiver presente, é esperado um código de status no intervalo de 200 a 299. O status esperado é verificado antes que a conversão de entrada seja executada. Veja o status do HTTP.
Veja a Referência da API de configuração do Webhooks.
O provedor externo de MFA pode retornar as seguintes respostas com base no resultado determinado da solicitação externa.
Resposta Definição
PENDENTE A autenticação ainda está pendente de conclusão.
SUCESSO A autenticação foi bem-sucedida.
COM FALHA A autenticação falhou.
CANCELED A autenticação não foi concluída porque uma entidade cancelou a tentativa.
TEMPO DE ESPERA A autenticação não foi concluída devido ao tempo limite ter sido excedido.
A tabela a seguir resume as considerações para a criação de recursos de webhook que suportem integrações externas de MFA. O design de recursos é orientado pelas necessidades do padrão de integração de Autenticação de diversos fatores que está sendo suportado.
Recurso do Webhook Padrão Descrição
enrollments consulta de inscrição Esse recurso é iniciado pelo cliente de Autenticação de diversos fatores interna do ISV quando responde a uma solicitação para localizar os registros e recursos de Autenticação de diversos fatores de um usuário específico. Esse recurso geralmente é necessário quando o ISV apresenta ao usuário uma seleção de opções de fator de Autenticação de diversos fatores como parte de um desafio de Autenticação de diversos fatores em tempo de execução.
{{mfa_capability_name}}_1 initiate - sms, otp

ou

validate - totp

Esse recurso é iniciado como a preferência do cliente de Autenticação de diversos fatores do ISV quando o nome do fator de Autenticação de diversos fatores corresponde ao atributo {{mfa_capability_name}}.

É usado para iniciar um desafio de Autenticação de diversos fatores se o padrão de capacidade é initiate+validate. Ele é usado para validar um token de Autenticação de diversos fatores ou valor se o padrão de capacidade é validate only.

{{mfa_capability_name}}_2 initiate + validate - sms, otp Esse recurso é iniciado como a preferência do cliente de Autenticação de diversos fatores do ISV quando o nome do fator de Autenticação de diversos fatores corresponde ao atributo {{mfa_capability_name}}. Ele é usado para validar um desafio de Autenticação de diversos fatores.
initiate initiate + validate - sms, otp)

ou

initiate + wait for completion - mobile push
Esse recurso é usado para iniciar um desafio de Autenticação de diversos fatores se nenhum recurso específico do recurso de fator for definido.
validate initiate - sms, otp Esse recurso é usado para validar um desafio de Autenticação de diversos fatores se nenhum recurso específico do recurso de fator for definido.
result initiate + wait for completion - mobile push Esse recurso é usado para pesquisar a conclusão do desafio de Autenticação de diversos fatores após o início do desafio. Normalmente requer que uma resposta inicial anterior retorne um identificador de transação, alguns outros dados de estado ou um identificador.