Callback de autenticação do desenvolvedor

Este documento descreve como implementar o seu ponto final de chamada de autenticação do desenvolvedor.

1. Leitores-alvo

Você precisa implementar seu ponto final de chamada de autenticação do desenvolvedor (e por isso tem que ler este documento) somente se você quiser permitir que desenvolvedores (terceiros) usem Console de desenvolvedores.

2. O que é “Developer Authentication Callback Endpoint”?

O retorno de chamada de autenticação do desenvolvedor é uma API da Web que você é obrigado a implementar para autenticar desenvolvedores. Authlete chama a API da Web quando a autenticação do desenvolvedor é necessária.

3. Por que o ponto final de chamada de autenticação do desenvolvedor é necessário?

Como a Authlete NÃO tem nenhuma tabela de banco de dados para gerenciar contas de desenvolvedores, a Authlete não pode realizar a autenticação do desenvolvedor. Isso é por design. Portanto, a Authlete delega a autenticação do desenvolvedor para o ponto final de chamada de autenticação do desenvolvedor.

4. Configurações

Authlete precisa saber a localização do ponto final de chamada de autenticação do desenvolvedor, 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.

  1. Login Console do proprietário de serviço, e você verá a lista de seus serviços.
  2. Clique em Editar o botão Editar de um serviço para o qual você fornecerá um ponto final de retorno de chamada de autenticação do desenvolvedor.
  3. Clique na guia “Autenticação do desenvolvedor” e você encontrará “Callback” no topo.
  4. Valores de entrada para os parâmetros de configuração corretamente.
  5. Clique no botão “Atualizar” para salvar as alterações.
propriedade descrição
Callback Endpoint de chamada de autenticação do desenvolvedor A URL do ponto final de retorno de chamada de autenticação do desenvolvedor. O local deve ser acessível a partir do servidor Authlete. A URL deve começar https:// por segurança.
Autenticação do desenvolvedor Callback API Key & Secret Se esses valores não estiverem vazios, Authlete usa os valores para adicionar Authorization cabeçalho para Autenticação Básica ao chamar o ponto final de chamada de autenticação do desenvolvedor. Você pode garantir que as solicitações de autenticação do desenvolvedor tenham vindo da Authlete verificando as credenciais de API.

5. Solicitação de chamada de autenticação do desenvolvedor

Um pedido da Authlete para um ponto final de chamada de autenticação do desenvolvedor segue a especificação descrita abaixo.

Método HTTP

POST método

Tipo de conteúdo

application/json

Autenticação Básica

Se você definir valores não vazios para “Chave de API de retorno de chamada de autenticação do desenvolvedor” e “Segredo de API de chamada de autenticação do desenvolvedor” 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.

Formato de dados

O corpo da entidade de um pedido de chamada de autenticação do desenvolvedor é o JSON. O JSON contém as propriedades listadas na tabela abaixo (DeveloperAuthenticationCallbackRequest.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 forma de login do Console do Desenvolvedor, as propriedades que você tem que se preocupar são apenas id e password. (O login social para console de desenvolvedor ainda não é suportado.)

propriedade descrição
serviceApiKey A chave API do seu serviço.
id Quando a propriedade do SNS é nula, o id é o valor que o desenvolvedor inseriu no campo “Login ID” na forma de login do Developer Console.
Caso contrário, quando a propriedade do SNS não é nula, o id é o valor do sujeito (= identificador único) do desenvolvedor no SNS.
password Quando a propriedade sns é nula, a senha é o valor que o desenvolvedor insira para o campo “Password” na forma de login do Developer Console.
Caso contrário, quando a propriedade do SNS não é nula, a senha não tem significado.
sns Quando o desenvolvedor realizou login social na página de login, a propriedade SNS detém o nome do SNS, como FACEBOOK.
a propriedade sns é sempre nula, a menos que você habilite suporte de login social na guia “Autenticação do Desenvolvedor”
accessToken Quando o desenvolvedor realizou login social na página de login, o accessToken possui o token de acesso que foi emitido a partir do ponto final do token do SNS.
refreshToken Quando o desenvolvedor realizou login social na página de login, a propriedade updateToken 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 desenvolvedor realizou login social na página de login, a propriedade expirana 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 desenvolvedor realizou login social na página de login, a propriedade rawTokenResponse detém o conteúdo da resposta do ponto final do token do SNS.
Implementações corretas do aplicativo de retorno de pontos finais de token/json, de modo que o conteúdo da propriedade rawTokenResponse é formatado em JSON. No entanto, observe que o ponto final do Token do Facebook retorna dados no formato de aplicativo/x-www-url-encoded. Trata-se de uma violação contra a RFC 6749 (OAuth 2.0).

6. Resposta de retorno de chamada de autenticação do desenvolvedor

Um ponto final de retorno de chamada de autenticação do desenvolvedor é necessário para retornar uma resposta que esteja em conformidade com os requisitos descritos abaixo.

Tipo de conteúdo

application/json; charset=UTF-8

Cabeçalhos HTTP recomendados

Cache-Control: no-store
Pragma: no-cache

Formato de dados

O corpo da entidade de uma resposta de retorno de chamada de autenticação do desenvolvedor deve ser JSON. As propriedades previstas para serem contidas no JSON estão listadas na tabela abaixo (DeveloperAuthenticationCallbackResponse.java em authlete-java-comum é sempre o formato mais recente).

propriedade descrição
authenticated O resultado da autenticação. Pôr true quando o desenvolvedor foi autenticado com sucesso.
subject O identificador exclusivo do desenvolvedor 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 desenvolvedor por um endereço de e-mail, seu serviço pode procurar um desenvolvedor 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 desenvolvedores).
Quando authenticated propriedade é false, subject a propriedade pode ser nula.
displayName O nome de exibição do desenvolvedor. Pode ser nulo. Seu comprimento não deve exceder 100.

7. Implementação da amostra

TBW