Tipo de Concessão de Autenticação do Cliente TLS
Use o tipo de concessão TLS (Transport Layer Security) quando o escopo da autorização for limitado aos recursos protegidas sob o controle do cliente ou para proteger os recursos registrados no Servidor de Autorização OAuth.
O diagrama a seguir exibe o fluxo TLS Client Authentication Grant Type.
Pré-requisito: Faça upload do certificado do cliente para o armazenamento de certificados do cliente.
- Como parte do handshake TLS, o aplicativo cliente apresenta seu próprio certificado e ID do Cliente para obter um token de acesso. Observação: Este certificado deve corresponder ao certificado no armazenamento de certificados do cliente.
- Esse token do acesso solicitado está associado aos recursos próprios do cliente e não ao proprietário do recurso específico ou está associado ao proprietário do recurso para o qual o aplicativo cliente está autorizado a agir.
- O Servidor de Autorização retorna o token de acesso ao aplicativo cliente somente após a validação bem-sucedida do certificado.
- O aplicativo cliente usa o token de acesso em uma chamada de API para atualizar o aplicativo.
| Função | Disponível |
|---|---|
| Requer autenticação do cliente | Sim |
| Exige que o cliente saiba as credenciais do usuário | Não |
| Interação do usuário final baseada em navegador | Não |
| Pode usar um Provedor de Identidades externo para autenticação | Não |
| O token de atualização é permitido | Não |
| O token de acesso está no contexto do aplicativo cliente | Sim |
Consulte Exemplo de Fluxo de Autorização do Tipo de Concessão de Autenticação do Cliente TLS para obter um fluxo de exemplo.
Exemplo de Fluxo de Autorização de Tipo de Concessão de Autenticação de Cliente TLS
O tipo de concessão Autenticação do Cliente TLS (Transport Layer Security) fornece um fluxo de concessão específico no qual o Proprietário do Recurso não está envolvido. Nesse cenário, o aplicativo cliente está executando processos que não têm a participação do Proprietário do Recurso, por exemplo, um processo em batch ou uma tarefa servidor a servidor.
Ao usar esse tipo de concessão, o aplicativo cliente solicita um token de acesso com seu próprio certificado (o certificado que é carregado no perfil do cliente) juntamente com o ID do Cliente e usa o token de acesso em nome do próprio aplicativo cliente. Esse fluxo de concessão é mais adequado quando um Provedor de Serviços deseja fornecer alguns métodos de API que devem ser usados pelo aplicativo cliente em geral, em vez de métodos de API que se aplicam a um determinado Proprietário de Recurso, por exemplo, métodos de API para manutenção.
- Especifique o Aplicativo Confidencial como o tipo de aplicativo. Os aplicativos móveis/navegadores não têm um certificado de cliente e não podem usar o tipo de concessão Autenticação de Cliente TLS.
- Selecione Autenticação do Cliente TLS como o tipo de concessão.
- Selecione Confiável ou Confidencial como o Tipo de Cliente.
- Importe o Certificado do Cliente. Este certificado é usado para validar a solicitação de token. Observação: O cliente deve usar esse mesmo certificado na solicitação de token.
Consulte Tipo de Concessão de Autenticação do Cliente TLS para obter mais informações sobre o tipo de concessão de Autenticação do Cliente TLS e um fluxograma de autorização.
-
Um evento iniciado pelo cliente (por exemplo, uma tarefa programada) solicita acesso a recursos protegidos de um aplicativo cliente OAuth.
O URL do evento contém parâmetros de consulta que indicam o tipo de acesso que está sendo solicitado:
Exemplo de Solicitação Usando o Cabeçalho de AutorizaçãoNota
cacert.crt é o certificado de CA que assinou o certificado do servidor para esse TLS.
client.key é uma chave privada de cliente.
client.crt é um certificado de cliente.
curl -i --cacert cacert.crt --key client.key --cert client.crt -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=tls_client_auth&client_id=<client ID>&scope=<scope value>'
Exemplo de Solicitação Usando mTLS
Para saber como obter o
secureDomainURL, consulte Tipos de Concessão de Acesso.curl -v \ --cert cert.crt \ --key key.key \ --cacert ca.crt \ --location '<secureDomainURL>/oauth2/v1/token' \ --header 'Authorization: Basic <base64Encoded clientid:secret>' --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id=<client-id>' \ --data-urlencode 'scope=urn:opc:idm:_myscopes_' - O aplicativo cliente solicita um token de acesso do Servidor de Autorização OAuth.
- O Servidor de Autorização OAuth:
- Autentica o aplicativo cliente com base no certificado enviado como parte do handshake TLS.
- Retorna um token de acesso que contém todos os escopos aplicáveis com base nos privilégios especificados pelas atribuições de aplicativo concedidas ao aplicativo cliente solicitante.
- O aplicativo cliente usa o token de acesso para executar uma solicitação.