## 🔄 Solicitar um Código de Autorização A solicitação do código de autorização é o primeiro passo crucial no processo de autorização do **OAuth 2.0**. Neste ponto, você será direcionado para o servidor de autorização da Conta Azul (`auth.contaazul.com`). Isso permite que um cliente Conta Azul vincule sua conta ERP à sua aplicação, concedendo permissão para que seu aplicativo acesse os dados necessários. **Nosso Endpoint de requisição do código de autorização:** ➡️ `https://auth.contaazul.com/oauth2/authorize` ### **O que acontece?** 1. **Construção da URL** 🛠️: É necessário construir uma URL específica para realizar uma chamada ao servidor de autorização por meio de um navegador. 2. **Login Conta Azul** 🔐: O servidor de autorização redireciona para a tela de login do **Conta Azul Pro** (ERP) para vincular o cliente Conta Azul à aplicação. 3. **MFA** 📱: Após realizar o login, é necessário informar o código de autenticação em duas etapas associado à conta do cliente Conta Azul. 4. **Geração do código de autorização** ✨: Se o login for feito e o MFA informado, o servidor de autorização gera um código de autorização de curta duração (expira em 3 minutos). Este código é uma credencial temporária que seu aplicativo usará no próximo passo para obter os tokens de acesso. 5. **URL de redirecionamento** ↩️: O servidor de autorização, então, redireciona o navegador de volta para uma URL informada no seu aplicativo (`redirect_uri`), anexando o código de autorização a essa URL. fluxoauth.png ### **Como fazer?** 📝 A URL que você constrói para iniciar o processo precisa ter o seguinte formato: `https://auth.contaazul.com/oauth2/authorize?response_type=code&client_id=SEU_CLIENT_ID&redirect_uri=SUA_URL_REDIRECIONAMENTO&state=ESTADO&scope=openid+profile+aws.cognito.signin.user.admin` Ela contém vários parâmetros de consulta que informam ao servidor de autorização sobre sua solicitação: | Parâmetro | Valor | Valor Fixo? | Finalidade | Detalhes | | --- | --- | --- | --- | --- | | response_type | code | Sim | Informa ao servidor que está buscando um código de autorização | - | | client_id | Disponível nos detalhes da sua integração no Portal do Desenvolvedor | Não | Identificador único do aplicativo | - | | redirect_uri | Disponível nos detalhes da sua integração no Portal do Desenvolvedor | Não | Esta é a URL que o servidor deve redirecionar o navegador após a autorização | É crucial que esta URL seja **exatamente igual** à URL informada na integração pelo Portal do Desenvolvedor, ao contrário resultará em um erro de redirecionamento | | state | **Valor aleatório** e único para cada solicitação de autorização | Não | Quando o servidor redireciona de volta para sua redirect_url, ele inclui o mesmo valor state, pois os dois precisam ser idênticos | Proteção contra CSRF (Cross-Site Request Forgery) e ajuda na manutenção de contexto caso exista várias solicitações pendentes | | scope | openid+profile+aws.cognito.signin.user.admin | Sim | Define as permissões que seu aplicativo está solicitando | No Conta Azul, seu aplicativo terá a permissão de administrador | Após montar a URL e fazer a chamada para o servidor de autenticação pelo navegador, você será redirecionado para o login da Conta azul, conforme imagem abaixo: image3.png Depois de fazer o login, você será encaminhado para a autenticação em **duas etapas (MFA)**. O código de segurança que você precisa inserir é gerado pelo seu aplicativo de autenticação, o mesmo que foi configurado e é utilizado para fazer login no Conta Azul Pro. authmfa.jpg Após o vínculo com o cliente Conta Azul, o código de autorização e o state estarão presentes como parâmetros na redirect_uri: `https://SUA_URL_REDIRECIONAMENTO?code=CODIGO_AUTORIZACAO&state=ESTADO` Com o código de autorização em mãos, é necessário estar realizando outra chamada ao servidor, utilizando um endpoint diferente, trocando esse código pelo token de acesso. Mas isso já é parte do próximo passo do protocolo OAuth 2.0!