Table of Contents
Este documento descreve como implementar o seu ponto final de chamada de autenticação.
Você precisa implementar seu ponto final de retorno de chamada de autenticação (e por isso tem que ler este documento) somente se uma ou ambas as condições seguintes atenderem.
/auth/authorization/direct/service-api-key
), fornecido pela Authlete, e se você quiser autenticar seus usuários finais pelo seu ID e senha na página de autorização./auth/token/direct/service-api-key
), fornecido pela Authlete, e se você quiser apoiar Concessão de credenciais de senha do proprietário de recursos, e se você quiser autenticar seus usuários finais pelo seu ID e senha.O retorno de chamada de autenticação é uma API da Web que você é obrigado a implementar para autenticar seus usuários finais. Authlete chama a API da Web quando a autenticação do usuário final é necessária.
Como o Authlete NÃO possui nenhuma tabela de banco de dados para gerenciar contas de usuário final, a Authlete não pode realizar a autenticação do usuário final. Isso é por design. Portanto, a Authlete delega a autenticação do usuário final ao seu ponto final de retorno de chamada de autenticação.
Authlete precisa saber a localização do seu ponto final de retorno de chamada de autenticação, por isso é necessário definir as informações necessárias através Console do proprietário de serviço. Por favor, siga os passos abaixo.
Existem três parâmetros de configuração.
parâmetros | descrição |
---|---|
Authentication Callback Endpoint | A URL do seu ponto final de retorno de chamada de autenticação. O local deve ser acessível a partir do servidor Authlete. A URL deve começar https:// por segurança. |
Authenticação Callback API Key & Secret | Se esses valores não estiverem vazios, a Authlete usará os valores para adicionar o cabeçalho autorização para autenticação básica ao chamar o ponto final de retorno de chamada de autenticação. Você pode garantir que as solicitações de autenticação tenham vindo da Authlete verificando as credenciais de API. |
POST
método
application/json
Se você definir valores não vazios para “Autenticação Callback API Key” e “Authentication Callback API Secret” do serviço usando Console do proprietário de serviço, solicitações da Authlete contêm Authorization
cabeçalho para Autenticação Básica.
O corpo da entidade de um pedido de chamada de autenticação é JSON. O JSON contém as propriedades listadas na tabela abaixo (AutenticaçãoCallbackRequest.java em authlete-java-comum é sempre o formato mais recente).
Provavelmente, o número de propriedades é muito maior do que você imaginava. No entanto, se você não tem uma mente para apoiar o login social na página de autorização e não tem uma mente para suportar o OpenID Connect, as propriedades que você tem que se preocupar são apenas id
e password
.
propriedade | descrição |
---|---|
serviceApiKey |
A chave API do seu serviço. |
clientId |
O ID do aplicativo do cliente que acionou a solicitação de retorno de chamada de autenticação. |
id |
Quando a propriedade do SNS é nula, id é (1) o valor que o usuário final inserem no campo “Login ID” na interface do usuário de autorização exibida no ponto final da autorização, ou (2) o valor de username solicitar parâmetro para o ponto final do token. Veja “RFC 6749, 4.3. Concessão de credenciais de senha do proprietário de recursos” para username solicitar parâmetro. Caso contrário, quando sns a propriedade não é nula, id é o valor do sujeito (= identificador único) do usuário final no SNS. |
password |
Quando sns a propriedade é nula, password é (1) o valor que o usuário final inserem no campo “Senha” na interface do usuário de autorização exibida no ponto final da autorização, ou (2) o valor de password solicitar parâmetro para o ponto final do token. Veja “RFC 6749, 4.3. Concessão de credenciais de senha do proprietário de recursos” para password solicitar parâmetro. Caso contrário, quando sns propriedade não é nulo, senha não tem significado. |
claims |
Uma matriz de strings que lista nomes de reivindicação (como given_name ), solicitado por solicitação de autorização. ‘Claim’ é uma informação sobre um usuário final. Os nomes de reivindicação padrão são definidos em “5.1. Reivindicações Padrão” em “Núcleo de conexão OpenID 1.0”. Você pode listar nomes de reclamação que deseja apoiar no campo “Reivindicações Suportadas” na guia “ID Token” em Console do proprietário de serviço Como abaixo. Alegações que não estão listadas em “Reivindicações Suportadas” nunca aparecerão em propriedades de sinistros. Observe que os nomes de reivindicação na solicitação de retorno de chamada de autenticação podem ser seguidos por uma tag local como given_name#ja . Veja “Idiomas e scripts de sinistros” em “Núcleo de conexão OpenID 1.0”. |
claimsLocales |
Uma matriz de strings que lista nomes locais. Os valores vêm de claims_locales parâmetro de solicitação contido na solicitação de autorização que acionou a solicitação de chamada de autenticação. Veja “Idiomas e scripts de sinistros” em “Núcleo de conexão OpenID 1.0” para detalhes sobre claims_locales . Você pode listar os locais de reclamação que deseja apoiar no campo “Locais de reclamação suportados” na guia “ID Token” na guia “ID Token” Console do proprietário de serviço. Alegações que não estão listadas em “Locais de Reivindicação Suportada” nunca aparecerão em claimsLocales propriedade. |
sns |
Quando o usuário final realizou o login social na página de autorização, sns a propriedade detém o nome do SNS, como FACEBOOK. a propriedade sns é sempre nula, a menos que você habilite o suporte de login social na guia “Autenticação do Usuário” |
accessToken |
Quando o usuário final realizou o login social na página de autorização, accessToken a propriedade detém o token de acesso que foi emitido a partir do ponto final do token do SNS. |
refreshToken |
Quando o usuário final realizou o login social na página de autorização, refreshToken a propriedade detém o token de atualização que foi emitido a partir do ponto final do token do SNS. Se o SNS não emitiu um token de atualização, esta propriedade será nula. |
expiresIn |
Quando o usuário final realizou o login social na página de autorização, expiresIn a propriedade detém a duração do token de acesso em segundos. Se o SNS não tiver retornado informações sobre a duração, esta propriedade é 0. |
rawTokenResponse |
Quando o usuário final realizou o login social na página de autorização, rawTokenResponse a propriedade detém o conteúdo da resposta do ponto final do token do SNS. Implementações corretas do retorno dos pontos finais do token application/json , então o conteúdo de rawTokenResponse a propriedade é formatada em JSON. No entanto, note que o ponto final do token do Facebook retorna dados no formato de application/x-www-url-encoded . Isso é uma violação contra RFC 6749 (OAuth 2.0). |
Um ponto final de retorno de chamada de autenticação é necessário para retornar uma resposta que esteja em conformidade com os requisitos descritos abaixo.
application/json; charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
O corpo da entidade de uma resposta de retorno de chamada de autenticação deve ser JSON. As propriedades previstas para serem contidas no JSON estão listadas na tabela abaixo (AutenticaçãoCallbackResponse.java em authlete-java-comum é sempre o formato mais recente).
Se você não tem uma mente para apoiar OpenID Connect, você sempre pode definir nulo para reivindicar propriedade.
propriedade | descrição |
---|---|
authenticated |
O resultado da autenticação. Pôr true quando o usuário final foi autenticado com sucesso. |
subject |
O identificador exclusivo do usuário final em seu serviço. Deve consistir apenas em letras ASCII imprimíveis e seu comprimento não deve exceder 100. Note que o valor de subject propriedade na resposta não tem que ser igual ao valor de id propriedade no pedido. Por exemplo, se o seu serviço pode identificar um usuário final por um endereço de e-mail, seu serviço pode procurar um usuário final por um endereço de e-mail quando o dado id parece um endereço de e-mail. Nesse caso, o valor de subject propriedade na resposta é diferente de id propriedade na solicitação (a menos que seu sistema use endereços de e-mail como assuntos de usuários finais). Quando authenticated propriedade é false , subject a propriedade pode ser nula. |
claims |
Uma sequência JSON que contém pares de nome de reivindicação e valor de reivindicação. A seguir, um exemplo que contém dois pares. {Quando um nome de reivindicação é um dos reivindicações padrão, seu valor deve seguir o formato definido em “5. Reivindicações” em “Núcleo de conexão OpenID 1.0”. claims propriedade no pedido é uma lista de nomes de reclamações. Espera-se que você colete os valores das reivindicações encontradas na lista. No entanto, se os valores das reclamações solicitadas não estiverem disponíveis em seu sistema (embora você os tenha listado em “Reivindicações Suportadas”) ou se você não quiser fornecer valores de sinistro, claims propriedade na resposta pode ser nulo. As reclamações devolvidas de um ponto final de retorno de chamada de autenticação estão incorporadas em um token de ID que será devolvido do ponto final de autorização para o aplicativo do cliente que fez a solicitação de autorização. |
TBW