Client Credentials & Client ID
Autenticação direta que utiliza apenas client ID, private key e certificado
Para que é utilizado esse fluxo?
O fluxo de autenticação "client credentials" é uma abordagem segura que permite acesso direto a nossas APIs para que o usuário gerencie sua própria conta. Nesse fluxo, o cliente fornece suas próprias credenciais de autenticação, como um ID de cliente, certificado e private key, para obter um token de acesso. Esse token é então usado para autenticar o cliente ao fazer solicitações às nossas APIs, garantindo que apenas o cliente autorizado possa acessar e modificar os recursos relacionados à sua conta.
Bora pro código?

Para exemplificar, iremos listar alguns parâmetros fictícios:
- Client-id: int-hash
- Certificado: certificate.pem
- Private key: private-key.key
Veja a solicitação que seu sistema precisará fazer ao nosso Servidor de Autorização
Campo | Comentário |
---|---|
Método | POST |
Endpoint | https://matls-clients.api.stage.cora.com.br/token |
curl --cert '/Users/seunome/Documentos/cert_key_cora/certificate.pem'\
--key '/Users/seunome/Documentos/cert_key_cora/private-key.key'\
--header 'Content-Type: application/x-www-form-urlencoded' \
-X POST 'https://matls-clients.api.stage.cora.com.br/token' \
-d 'grant_type=client_credentials&client_id=seuclientid'
<?php
$url = "https://matls-clients.api.stage.cora.com.br/token";
$certFile = "certificate.pem";
$privateKey = "private-key.key";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_SSLKEY, $privateKey);
curl_setopt($ch, CURLOPT_SSLCERT, $certFile);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Content-Type" => "application/x-www-form-urlencoded"]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "grant_type=client_credentials&client_id=seuclientid");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
echo PHP_EOL;
Após enviar a requisição acima, o nosso Servidor de Autorização irá responder a seguinte mensagem:
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJPUXhETFpxNmFJb1EzS1Q0dWFEWWhQai1IUUVpMm5iNGl1WEdWV0diVWh3In0.eyJleHAiOjE2NjM5NzcyMDAsImlhdCI6MTY2Mzg5MDgwMCwianRpIjoiNTA0ZDQzOWMtMmU1OS00M2VjLTkxYWMtMGM2YzFhZDVhNTMxIiwiaXNzIjoiaHR0cHM6Ly9hdXRoLnN0YWdlLmNvcmEuY29tLmJyL3JlYWxtcy9jb3JhIiwic3ViIjoiYXBwLWJlY2tlcmVwIiwidHlwIjoiQmVhcmVyIiwiYXpwIjoiYXBwLWJlY2tlcmVwIiwiYWNyIjoiMSIsInNjb3BlIjoib2ZmbGluZV9hY2Nlc3MiLCJjbGllbnRJZCI6ImFwcC1iZWNrZXJlcCIsImNsaWVudEhvc3QiOiIxNzcuNDUuMTUwLjE0NSIsImNsaWVudEFkZHJlc3MiOiIxNzcuNDUuMTUwLjE0NSJ9.bT3jNRJOdTUJjvfwfP-Cz_Gm3XlKsiqI8TOZzoVkmuM7cJpb2YZRW5nAFfoPArfaCsgJoefSUdl46kSy1siQaPGXo0lXI3oSxnvlfsNZgZMgDazIxNaIdnGkVKlwOarQAFwFlbdO5twD8_gDHiBlC3xRVb5rwSHnKNOzdfk4Oa_9bPef3zFOTk7ijnGjdguru0LLvr-dvrYzcPddosfew37tgDrXQDD_JT52298M_qwwKjfQeykQg3O83zDmtXCccVKmxS-PHEeL3OSDgGxIDpTvYf91CGdcP1K66VIav5ufTbi5GUn_LivAD_5apasri7jrRgsHcH__a45PgWqrGw",
"expires_in": 86400,
"refresh_expires_in": 0,
"token_type": "Bearer",
"not-before-policy": 1614056798,
"scope": "offline_access"
}
Caso o token expire é só fazer essa chamada novamente.


Updated 10 months ago