Registro dinâmico de client (credencial)

stable

Este endpoint permite realizar o registro dinâmico do client ou credencial.

O parceiro pode escolher a melhor maneira de orquestrar esse registro, desde que ele aconteça antes da solicitação de um token de acesso.

👍

Dica

Como sugestão, o parceiro pode realizar uma implementação para que a aplicação client seja registrada durante a sua inicialização (startup application).

Pré-requisito

Para que seja possível utilizar este endpoint, é necessário que:

🚧

Importante

É obrigatório que ocorra a autenticação entre client e servidor por meio do protocolo TLS durante todas as requisições realizadas nas APIs do Bankly.

Requisição

Requisição HTTP

POST https://auth-mtls.sandbox.bankly.com.br/oauth2/register
--location 
--request POST 'https://auth-mtls.sandbox.bankly.com.br/oauth2/register' \ 
--header 'Content-Type: application/json' \ 
--data-raw '{ 
    "grant_types": ["client_credentials"], 
    "tls_client_auth_subject_dn": "{{subbjectDn da emissão do certificado}}", 
    "token_endpoint_auth_method": “tls_client_auth", 
    "response_types": ["access_token"], 
    "company_key": "{{company_key}}", 
    "scope": "{{scopes}}" 
}'

Cabeçalhos (Headers)

NomeDescrição
Content-TypeObrigatório. Indica o tipo de dado que o arquivo contém. Nesse caso, application/json.

Parâmetros da rota (Path)

Não é necessário enviar parâmetros no path desta requisição.

Corpo da requisição (Body)

No body, envie os seguintes campos em formato JSON:

NomeTipoDescriçãoEspecificação
grant_typesstringObrigatório. Método pelo qual suas aplicações podem obter tokens de acesso.Informe o valor fixo "client_credentials”.
tls_client_auth_subject_dnstringObrigatório. Valor do campo subjectDn, retornado na requisição de download de certificado.---
token_endpoint_auth_methodstringObrigatório. Método de autenticação.Informe o valor fixo “tls_client_auth”.
response_typesstringObrigatório. Tipos de resposta.Informe o valor fixo "access_token”.
company_keystringObrigatório. Identificador que discrimina a operação do parceiro dentro do Bankly.---
scopestringObrigatório. Insira todos os scopes referentes aos serviços que desejará acessar, separados por um espaço.---
{ 
    "grant_types": ["client_credentials"], 
    "tls_client_auth_subject_dn": "{{subbjectDn da emissão do certificado}}", 
    "token_endpoint_auth_method": “tls_client_auth", 
    "response_types": ["access_token"], 
    "company_key": "{{company_key}}", 
    "scope": "{{scopes}}" 
}

📘

Nota

No ambiente de produção, para o registro do client, utilize o DNS: https://auth.bankly.com.br

Resposta (Response)

O status code 200 indicará que o client foi registrado com sucesso.
Sendo bem-sucedido, o retorno irá trazer os seguintes campos em formato JSON:

NomeTipoDescrição
grant_typesstringSempre retornará o valor "client_credentials".
subject_typestringO valor padrão de retorno desse campo é “public”.
tls_client_auth_subject_dnstringValor do campo subjectDn, retornado na requisição de download de certificado.
registration_client_uristringURI para uma página da web que mostra informações sobre o client.
company_keystringIdentificador que discrimina a operação do parceiro dentro do Bankly.
registration_access_token_expires_innumberTempo (em segundos) após o qual o token de acesso do registro de client que foi criado irá expirar.
registration_access_tokenstringToken para obter acesso às informações do client que foi criado.
client_idstringIdentificador único que deverá ser informado na geração do token.
token_endpoint_auth_methodstringMétodo de autenticação a ser usado no endpoint de token para autenticação do client.
require_proof_keybooleanIndica se o servidor de identidade requer que o client forneça prova de chave privada do certificado durante a emissão dos tokens.
scopestringScopes referentes aos serviços que serão acessados.
token_endpoint_auth_methodsarray of stringsLista dos métodos de autenticação a serem usados no endpoint de token para autenticação do client.
client_id_issued_atstringData de emissão do client_id.
access_token_ttlnumberTempo de vida dos tokens de acesso que serão emitidos com o client que foi registrado.
response_typesarray of stringsLista com os tipos de resposta.

🚧

Importante

O parceiro precisa se atentar à data de emissão do client_id. Para garantir a segurança, é imprescindível implementar uma política de DCM (Gerenciamento Dinâmico de Clientes), a fim de expirar o client após 180 dias da sua data de emissão. Além disso, é essencial que seja gerado apenas um client por aplicação, para garantir que seja emitido o menor número de clients possível, o que garantirá a segurança e o controle deles.

{
    "grant_types": [
        "client_credentials"
    ],
    "subject_type": "public",
    "tls_client_auth_subject_dn": "CN=sdb2_bankly.client-auth.sandbox.bankly.services,OU=SDB2_BANKLY,L=Sao Paulo,ST=SP,O=SDB2_BANKLY,C=BR,OID.0.9.2342.19200300.100.1.1=f71cbb0f-8101-4fd0-b1de-5fb0abbf2085,OID.2.5.4.15=Full Bank,OID.2.5.4.5=55272502000163",
    "registration_client_uri": "https://auth-mtls.sandbox.bankly.com.br/oauth2/register/2a0412a0-02ce-4323-b913-4882f8cde84e",
    "company_key": "COMPANY_KEY",
    "registration_access_token_expires_in": 31536000,
    "registration_access_token": "_0ERuo3g_aa7ae5d6-3212-425d-84cf-321bd667b4f9",
    "client_id": "2a0412a0-02ce-4323-b913-4882f8cde84e",
    "token_endpoint_auth_method": "tls_client_auth",
    "require_proof_key": false,
    "scope": "{{scopes}}",
    "token_endpoint_auth_methods": [
        "tls_client_auth"
    ],
    "client_id_issued_at": "2021-08-31T21:20:58.754Z",
    "access_token_ttl": 900,
    "response_types": [
        "access_token"
    ]
}

👍

Dica

Para simular uma requisição nesse endpoint, acesse o API Reference.

Erros

Este endpoint não retorna erros específicos. Porém, ele poderá retornar alguns erros comuns entre todos os endpoints.

Eventos

Este endpoint não possui eventos relacionados a ele.

Diagrama de sequência