Fluxo CIBA

Introdução ao Fluxo CIBA

O CIBA (Client Initiated Backchannel Authentication) é um fluxo de autenticação desacoplada que permite à Instituição Receptora de Dados (Receptora) solicitar o consentimento de um usuário sem redirecioná-lo para o ambiente da Instituição Transmissora de Dados (Transmissora). No Open Finance Brasil, ele é definido pelo perfil CIBA-BR e aplicado, nesta documentação, à autorização de consentimentos de dados cadastrais e transacionais. Para o fluxo de pagamentos, por hora, o Openfinance não irá aplicar este protocolo.

No fluxo CIBA, a Receptora inicia a autenticação por uma chamada entre servidores, o usuário autentica e aprova o consentimento diretamente no canal digital da Transmissora (aplicativo ou internet banking) e a Receptora é notificada quando há uma decisão. Perceba que:

  • o usuário não precisa estar na sessão ou no dispositivo da Receptora no momento da aprovação (fluxo desacoplado);
  • a autenticação e a aprovação acontecem de forma assíncrona, no canal da Transmissora; e
  • a Receptora só obtém os tokens de acesso após a aprovação do consentimento.
🚧

Especificação em versão beta

Esta documentação é baseada na jornada "Jornada de Dados do Cliente com CIBA - v1.0.0-beta2" e no perfil CIBA-BR v2.1.0-beta2, publicados pelo Open Finance Brasil. Por se tratar de versões beta, os detalhes podem sofrer alterações até a publicação da versão final.

Quando utilizar o CIBA

O CIBA é especialmente indicado para os cenários em que o redirecionamento do usuário não é viável ou não é desejado:

  • aplicações server-side, sem interface web;
  • jornadas B2B e de clientes pessoa jurídica, com múltiplos aprovadores; e
  • jornadas com menor atrito de entrada, como solicitações de compartilhamento iniciadas por link ou SMS.

CIBA e Hybrid FlowOs dois fluxos autorizam o mesmo tipo de consentimento. O que muda é a forma como o usuário chega à autenticação e como a Receptora é informada do resultado.

CaracterísticaHybrid FlowCIBA
Grant typeauthorization_code com id_tokenurn:openid:params:grant-type:ciba
Redirecionamento do navegadorObrigatórioNão há
Interação do usuárioSíncrona, na sessão da ReceptoraAssíncrona, no canal da Transmissora
Retorno do resultadoRedirecionamento do usuário à ReceptoraNotificação (PING) da Transmissora à Receptora

Conceitos principais

ConceitoDescrição
Consentimento (consentId)Registro criado pela Receptora na Transmissora, com as permissões, o titular e o prazo do compartilhamento. Nasce com o status AWAITING_AUTHORISATION e passa a AUTHORISED ou REJECTED após a decisão do usuário.
login_hintParâmetro da requisição CIBA que carrega o consentId, permitindo à Transmissora localizar o consentimento e o titular.
auth_req_idIdentificador da transação CIBA, retornado pela Transmissora ao receber a requisição de autenticação. É trocado por tokens ao final do fluxo.
client_notification_tokenToken gerado pela Receptora e enviado na requisição CIBA. A Transmissora o devolve no PING, permitindo à Receptora validar a notificação.
Modo PINGModo de entrega do CIBA-BR em que a Transmissora apenas avisa a Receptora que há um resultado. O PING carrega somente o auth_req_id; o resultado é conhecido na chamada ao /token.
Request objectJWT assinado pela Receptora que contém os parâmetros da requisição CIBA.
PCMPlataforma de Coleta de Métricas do Open Finance Brasil, para a qual as chamadas do fluxo são reportadas.

Visão geral da jornada

  1. O usuário manifesta, no ambiente da Receptora, a intenção de compartilhar seus dados;
  2. A Receptora obtém um token de acesso sistêmico (client_credentials) e cria o consentimento na Transmissora;
  3. A Receptora solicita a autenticação CIBA (POST /bc-authorize) e recebe o auth_req_id (inicio da jornada CIBA);
  4. A Transmissora notifica o usuário (ou os aprovadores), que se autentica e aprova ou rejeita o consentimento no canal digital da Transmissora;
  5. A Transmissora envia o PING à Receptora, informando que há uma decisão;
  6. A Receptora troca o auth_req_id por access_token, id_token e refresh_token (POST /token); e
  7. A Receptora passa a consumir as APIs de dados, respeitando os escopos autorizados e a validade do consentimento.

Para o detalhamento de cada mensagem, consulte o Diagrama de sequência: Fluxo CIBA.

Segurança CIBA no Open Finance Brasil se apoia nos mesmos pilares de segurança das demais jornadas:

  • autenticação mútua (mTLS) com certificados BRCAC;
  • autenticação do cliente via private_key_jwt;
  • request object assinado pela Receptora; e
  • access tokens vinculados ao certificado da Receptora (certificate-bound).

Ciclo de vida do consentimento e obtenção dos tokens, a Receptora deve observar que:

  • o access_token deve ser renovado com o refresh_token antes de expirar;
  • a validade do consentimento (expirationDateTime) não é estendida pela emissão de tokens; e
  • o usuário pode revogar o consentimento a qualquer momento no canal da Transmissora, o que bloqueia novos acessos com o access_token;
  • o consentimento passa a ter 24 horas para ser aprovado considerando a data de criação do mesmo;
  • será permitida a troca do fluxo Hybrid Flow para o fluxo CIBA de um consentimento previamente criado. Esta jornada tem como objetivo aumentar a taxa de conversão.

Referências


Did this page help you?