Importante:
Essa documentação é exclusiva para os produtos:
• PIX Indireto
• PISP
• Corban Digital
• Extrato (Account Statement)
• FX as a Service - Câmbio
Para gerar as credenciais e o certificado dinâmico para os demais produtos, acesse a documentação certificado dinâmico (demais produtos).
Objetivo
Esta documentação explica alguns conceitos e nomenclaturas importantes tanto para geração das credenciais quanto a geração do certificado dinâmico. O intuito também é demonstrar o passo a passo para gerar as credenciais para os ambientes de homologação e produção, e posteriormente, o fluxo da geração do certificado dinâmico.o.
Importante: Para APIs de cartões não é preciso gerar o certificado dinâmico via STS, pois este processo não é um padrão para todo o banco. Ou seja, depende do negócio, comunidade, ou segurança de acordo com o projeto.
Conceitos
Certificado dinâmico (CSR)
O Certificate Signing Request (CSR) é um certificado não assinado, usado apenas no ambiente de produção, gerado pelo responsável técnico e que contém os dados da empresa requisitante e sua chave pública.
Esse procedimento é realizado para que ao solicitar um certificado ao Itaú o solicitante identifique sua aplicação e receba um certificado de uso único e exclusivo.
O CSR (Certificate Signing Request) é o arquivo que contém a chave pública do certificado e as demais informações de identificação. Utilizado para requisitar ao STS Itaú a assinatura do certificado.
Seu formato segue o seguinte padrão:
-----BEGIN CERTIFICATE REQUEST-----
...
-----END CERTIFICATE REQUEST-----
A segurança do processo é baseada no conceito de chave assimétrica ou chave pública.
Importante: Para renovar/gerar o certificado dentro do prazo de validade de 365 dias, basta utilizar o arquivo .CSR gerado anteriormente e gerar novas credenciais para o ambiente conforme sua necessidade (homologação ou produção).
Credenciais
As credenciais são o conjunto client_id + client_secret, ambas permitem identificar a aplicação que está enviando uma requisição.
Client ID
O Client ID é um valor alfanumérico exclusivo gerado de forma aleatória pelo Google Analytics.
Client secret
O Client secret é uma informação alfanumérica necessária para gerar o certificado dinâmico. Esta informação é altamente sensível, portanto, mantenha-o sempre em um lugar seguro.
Chave privada
A chave privada é um valor altamente sensível. Portanto, deve ser armazenada de forma segura, ela será requisitada para comprovar que o certificado está em uso pelo seu dono no processo de mutual TLS.
Seu formato segue o seguinte padrão:
-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
SSL
O SSL (Secure Socket Layer) na requisição, oferece total segurança entre aplicativos cliente/servidor, preservando a integridade e a veracidade do conteúdo trafegado na rede, por meio da autenticação das partes envolvidas com a troca destas informações. A versão recomendada pelo banco é a 1.1.1.c ou superior.
Token temporário
O token temporário é um valor alfanumérico que representa a autenticação da credencial. Ele é obrigatório para consumo das APIs disponibilizadas pelo Itaú assim como o certificado, e sua validade é de 5 minutos após sua geração.
Como faço para obter um token temporário?
Para obter um token temporário, é necessário gerar suas credenciais diretamente no Portal do desenvolvedor para o ambiente conforme sua necessidade.
Lembre-se: O token temporário emitido tem validade de 5 minutos e deve ser utilizado durante esse período para o consumo das APIs sendo necessário sua renovação após expirado.
Pré-requisitos para gerar o certificado dinâmico
Credenciais – Tenha o (client_id, token temporário e a chave de seção) geradas do Portal do desenvolvedor.
Produto contratado: Tenha no mínimo um destes produtos contratados (PIX Indireto, PISP, Corban Digital, Extrato (Account Statement) e FX as a Service - Câmbio);
Ambiente de desenvolvimento configurado - Tenha um ambiente de desenvolvimento configurado em uma das linguagens de programação. Exemplo: Java, C#, Python, cURL ou PHP.
Ou tenha alguma ferramenta que permita a execução de requisições web para executar chamadas em APIs Rest. Exemplo: Postman, Insomnia ou cURL.
OpenSSL - Tenha o OpenSSL na versão 1.1.1 recomendada pelo banco instalado em sua máquina, pois será a ferramenta utilizada neste tutorial para gerar o arquivo CSR e validar se tudo ocorreu como o esperado.
Importante: Por padrão o OpenSSL vem por default para quem tem o Git Bash instalado na máquina.
Passo a passo para gerar as credenciais (homologação ou produção)
Confira os passos abaixo para gerar credenciais tanto para homologação quanto produção.
Passo 1 - Realizar o Login no Portal do desenvolvedor;
Passo 2 - Clicar em gestão de credenciais, localizado no menu lateral à esquerda;
Importante: Somente o usuário administrador tem permissão para gerar as credenciais.
Figura 01: A imagem acima demonstra a home do Portal do Desenvolvedor com destaque na opção gestão de credenciais.
Passo 3 - Escolher o ambiente de homologação ou produção que a credencial será utilizada;
- Homologação: Caso opte pelo ambiente de homologação e ainda não tenha gerado nenhuma credencial, será apresentada uma mensagem informando que você não gerou nenhuma credencial para este ambiente.
Figura 02. A imagem acima demonstra a página de gestão de credenciais para homologação e uma mensagem informando que não existe credenciais cadastradas para este ambiente e que para cadastrar, bastar acionar o botão “gerar credencial”.
- Produção: Caso opte pelo ambiente de produção e ainda não tenha gerado nenhuma credencial, será apresentada uma mensagem informando que você não gerou nenhuma credencial neste ambiente.
Figura 03. A imagem acima demonstra a página de gestão de credenciais para produção e uma mensagem informando que não existe credenciais cadastradas para este ambiente e que para cadastrar, bastar acionar o botão “gerar credencial”.
Passo 4 - Clicar no botão gerar credencial após escolher o ambiente que a credencial será utilizada;
Figura 04. A imagem acima demonstra o botão “gerar credencial” para gerar suas credenciais conforme o ambiente escolhido.
Passo 5 - Após clicar no botão gerar credencial, preencha o formulário de acordo com as informações solicitadas:
a) Nome da aplicação: Não é permitido espaços entre as palavras e com limite máximo de até 50 caracteres. Exemplo: (APP_de_cobrança; APP_de_pagamento; Recebimento_aplicação,etc.);
Importante: Não será permitido editar o nome da aplicação após a geração da credencial, portanto, escolha um nome que o ajude na sua identificação.
b) Descrição da aplicação (opcional): Caso prefira, insira neste campo um texto descritivo com as informações sobre a sua aplicação, para facilitar a identificação da credencial. Exemplo: (aplicativo de cobrança do parceiro XPTO);
c) Informe o ambiente que a credencial será utilizada: Selecione uma das opções (homologação ou produção) para visualizar quais produtos estão disponíveis para o ambiente escolhido;
Importante: Caso o produto contratado não tenha ambiente de produção, ele não será apresentado em tela caso esse ambiente seja selecionado.
d) Selecione os produtos que devem utilizar essa credencial: Será disponibilizado em lista os produtos disponíveis para o ambiente selecionado. Escolha um ou mais produtos que devem utilizar esta credencial.
Figura 05. A imagem acima demonstra os campos do formulário a ser preenchido com as informações necessárias para gerar a credencial conforme o ambiente selecionado.
Passo 6 - Após preencher o formulário, clicar no botão gerar credencial;
Figura 06. A imagem acima demonstra os campos do formulário corretamente preenchidos, com destaque no botão “gerar credencial”.
Passo 7 - Após clicar no botão gerar credencial será apresentado um aviso importante;
Figura 07. A imagem acima demonstra um aviso importante a respeito do client_secret prestes a ser gerado no próximo passo, informando que ele será disponibilizado apenas uma vez e caso o perca será necessário gerar uma nova credencial para obtê-lo novamente.
Importante
Neste passo, por questões de segurança:
- O client_secret por ser um dado sensível será disponibilizado uma única vez, por isto, é fortemente recomendado que o guarde em um local seguro.
- Caso o perca, será necessário gerar uma nova credencial para obter um novo client_secret.
Passo 8 - Clicar em:
- Cancelar: para interromper a geração da credencial:
Figura 08. A imagem acima demonstra um aviso com destaque ao botão para cancelar a geração da credencial.
- Confirmar: para prosseguir com a geração da credencial:
Figura 09. A imagem acima demonstra o aviso com destaque ao botão para confirmar a geração da credencial.
Ao confirmar, será apresentado uma mensagem informando que a credencial foi criada com sucesso:
Figura 10. A imagem acima demonstra a mensagem informando que a credencial foi criada com sucesso.
Após a confirmação, será disponibilizada uma página com a credencial criada, o token temporário, o client_ID e o client_secret, de acordo com o ambiente escolhido:
Figura 11. A imagem acima demonstra a página com a credencial criada, com todos os campos corretamente preenchidos, juntamente com o token temporário, o client_ID e o client_secret.
Neste momento, você já tem sua credencial gerada para o ambiente e produtos que você escolheu, ordenadas por data e hora da criação, sendo da mais recente para a mais antiga.
Para conferir as informações de cada credencial criada, basta expandir cada geração.
Figura 12. A imagem acima demonstra a página de gestão das credenciais geradas, o qual é permitido expandir para ver as informações referente a cada geração.
Após expandir a geração escolhida será apresentado as seguintes informações:
a) Nome da aplicação com os produtos selecionados anteriormente;
b) Data/hora da geração: dia e horário que a credencial foi gerada;
c) Descrição da aplicação: caso você tenha optado por preencher esse campo, será apresentado a descrição correspondente a esta credencial;
d) Usuário gerador: é o usuário administrador o qual possui permissão para gerar a credencial;
e) Token temporário: informação alfanumérica com validade de 5 minutos, necessária para gerar o certificado dinâmico;
f) Cliente ID: informação alfanumérica gerada de forma aleatória;
g) Client secret: informação necessária para gerar o certificado dinâmico e só ficará disponível para visualização apenas uma vez. Recomenda-se que seja guardado em um local seguro.
h) Botão atualizar: esse botão é responsável por gerar um novo token a qualquer momento;
i) Botão copiar: esse botão é responsável por copiar o conteúdo do campo correspondente para a área de transferência.
Figura 13. A imagem acima demonstra uma geração expandida e com os campos correspondentes da nova credencial gerada.
Importante
Ao realizar o logout do portal do desenvolvedor e realizar novamente o login, não será permitido visualizar o client_secret.
Por questão de segurança essa informação não fica disponível por tempo indeterminado, caso necessite dessa informação, é necessário gerar uma nova credencial para ter acesso a um novo client_secret.
Figura 14. A imagem acima exibe um aviso na página de gestão de credenciais no campo do client secret, informando que não é possível visualizá-lo por tempo indeterminado. Isso acontece por questões de segurança quando é realizado o logout do portal do desenvolvedor e posteriormente, o login.
Renovar o token temporário
Após expirar o token temporário ou perder esta informação, é necessário gerar um novo token.
- Acionar o ícone atualizar para gerar um novo token;
Figura 15. A imagem acima evidencia o ícone atualizar o token temporário.
- Insira o client_secret no campo correspondente e acione o botão confirmar;
Figura 16. A imagem acima evidencia o campo client_secret a ser preenchido e o botão confirmar.
- O token temporário será atualizado com sucesso e com validade de 5 minutos.
Figura 17. A imagem acima evidencia o campo do token temporário com o token atualizado e na parte superior da imagem uma mensagem informando sucesso na atualização.
Parabéns! Você concluiu as etapas necessárias para gerar as credenciais e já tem em mãos o token temporário, cliente_ID, o client_secret, e neste momento você já está pronto para gerar seu certificado dinâmico.
Passo a passo para gerar o certificado dinâmico
Passo 9 - Gerar o Certificado Dinâmico.
1 - Escolha o seu sistema operacional e execute no OpenSSL os comandos correspondentes ao sistema escolhido;
- Windows
- Copiar o conteúdo abaixo;
openssl req -new -subj "//CN={{CLIENT_ID}}\OU={{SITE OU APP DO PARCEIRO}}\L={{CIDADE}}\ST={{ESTADO}}\C={{PAIS}}" -out ARQUIVO_REQUEST_CERTIFICADO.csr -nodes -sha512 -newkey rsa:2048 -keyout ARQUIVO_CHAVE_PRIVADA.key
Exemplo de como deve ficar o comando a ser executado:
openssl req -new -subj "//CN=56a29ee3-60fe-47f8-95d9-7538b80ccf04\OU=ABC LTDA\L=SAO PAULO\ST=SP\C=BR" -out ARQUIVO_REQUEST_CERTIFICADO.csr -nodes -sha512 -newkey rsa:2048 -keyout ARQUIVO_CHAVE_PRIVADA.key
- Copie o comando com suas informações corretamente preenchidas e execute em seu terminal. O comando foi executado com sucesso, caso a saída abaixo seja exibida:
Generating a RSA private key
...........................+++++
...............................................................+++++
writing new private key to 'ARQUIVO_CHAVE_PRIVADA.key'
- Linux e macOS
- Copiar o conteúdo abaixo;
openssl req -new -subj "/CN={{CLIENT_ID}}/OU={{SITE OU APP DO PARCEIRO}}/L={{CIDADE}}/ST={{ESTADO}}/C={{PAIS}}" -out ARQUIVO_REQUEST_CERTIFICADO.csr -nodes -sha512 -newkey rsa:2048 -keyout ARQUIVO_CHAVE_PRIVADA.key
Exemplo de como deve ficar o comando a ser executado:
openssl req -new -subj "/CN=56a29ee3-60fe-47f8-95d9-7538b80ccf04OU ABC LTDA L=SAO PAULOST=SP/C=BR" -out ARQUIVO_REQUEST_CERTIFICADO.csr -nodes -sha512 - newkey rsa:2048 -keyout ARQUIVO_CHAVE_PRIVADA.key
- Copie o comando com suas informações corretamente preenchidas e execute em seu terminal. O comando foi executado com sucesso, caso a saída abaixo seja exibida:
Generating a RSA private key
...........................+++++
...............................................................+++++
writing new private key to 'ARQUIVO_CHAVE_PRIVADA.key'