Pular para o conteúdo principal

Configurar login social com protocolo OAuth 2.0

O conector oficial do Logto para o protocolo OAuth 2.0.

dica:

Este guia assume que você tem um entendimento básico dos Conectores (Connectors) do Logto. Para aqueles que não estão familiarizados, consulte o guia de Conectores para começar.

Introdução

O conector OAuth permite a conexão do Logto a um provedor de identidade social arbitrário que suporta o protocolo OAuth 2.0.

nota:

O conector OAuth é um tipo especial de conector no Logto, você pode adicionar alguns conectores baseados no protocolo OAuth.

Crie seu aplicativo OAuth

Ao abrir esta página, acreditamos que você já sabe qual provedor de identidade social deseja conectar. A primeira coisa a fazer é confirmar se o provedor de identidade suporta o protocolo OAuth, que é um pré-requisito para configurar um conector válido. Em seguida, siga as instruções do provedor de identidade para registrar e criar o aplicativo relevante para autorização OAuth.

Configure seu conector

Nós SOMENTE suportamos o tipo de concessão "Authorization Code" por questões de segurança e ele se encaixa perfeitamente no cenário do Logto.

clientId e clientSecret podem ser encontrados na página de detalhes dos seus aplicativos OAuth.

clientId: O client ID é um identificador único que identifica o aplicativo cliente durante o registro com o servidor de autorização. Este ID é usado pelo servidor de autorização para verificar a identidade do aplicativo cliente e associar quaisquer tokens de acesso autorizados a esse aplicativo cliente específico.

clientSecret: O client secret é uma chave confidencial emitida para o aplicativo cliente pelo servidor de autorização durante o registro. O aplicativo cliente usa essa chave secreta para se autenticar com o servidor de autorização ao solicitar tokens de acesso. O client secret é considerado informação confidencial e deve ser mantido seguro o tempo todo.

tokenEndpointAuthMethod: O método de autenticação do endpoint de token é usado pelo aplicativo cliente para se autenticar com o servidor de autorização ao solicitar tokens de acesso. Para descobrir métodos suportados, consulte o campo token_endpoint_auth_methods_supported disponível no endpoint de descoberta OpenID Connect do provedor de serviços OAuth 2.0, ou consulte a documentação relevante fornecida pelo provedor de serviços OAuth 2.0.

clientSecretJwtSigningAlgorithm (Opcional): Somente necessário quando tokenEndpointAuthMethod é client_secret_jwt. O algoritmo de assinatura JWT do client secret é usado pelo aplicativo cliente para assinar o JWT que é enviado ao servidor de autorização durante a solicitação de token.

scope: O parâmetro de escopo é usado para especificar o conjunto de recursos e permissões que o aplicativo cliente está solicitando acesso. O parâmetro de escopo é tipicamente definido como uma lista de valores separados por espaço que representam permissões específicas. Por exemplo, um valor de escopo de "read write" pode indicar que o aplicativo cliente está solicitando acesso de leitura e escrita aos dados de um usuário.

Espera-se que você encontre authorizationEndpoint, tokenEndpoint e userInfoEndpoint na documentação do fornecedor social.

authenticationEndpoint: Este endpoint é usado para iniciar o processo de autenticação. O processo de autenticação geralmente envolve o usuário fazer login e conceder autorização para que o aplicativo cliente acesse seus recursos.

tokenEndpoint: Este endpoint é usado pelo aplicativo cliente para obter um token de acesso que pode ser usado para acessar os recursos solicitados. O aplicativo cliente geralmente envia uma solicitação ao endpoint de token com um tipo de concessão e código de autorização para receber um token de acesso.

userInfoEndpoint: Este endpoint é usado pelo aplicativo cliente para obter informações adicionais sobre o usuário, como seu nome completo, endereço de email ou foto de perfil. O endpoint de informações do usuário é tipicamente acessado após o aplicativo cliente ter obtido um token de acesso do endpoint de token.

Logto também fornece um campo profileMap que os usuários podem personalizar o mapeamento dos perfis dos fornecedores sociais, que geralmente não são padrão. As chaves são nomes de campos de perfil de usuário padrão do Logto e os valores correspondentes devem ser nomes de campos dos perfis sociais. Na fase atual, o Logto só se preocupa com 'id', 'name', 'avatar', 'email' e 'phone' do perfil social, apenas 'id' é obrigatório e os outros são campos opcionais.

responseType e grantType podem ser SOMENTE valores FIXOS com o tipo de concessão de código de autorização, então os tornamos opcionais e os valores padrão serão preenchidos automaticamente.

Por exemplo, você pode encontrar resposta de perfil de usuário do Google e, portanto, seu profileMap deve ser assim:

{
"id": "sub",
"avatar": "picture"
}
nota:

Fornecemos uma chave customConfig OPCIONAL para colocar seus parâmetros personalizados. Cada provedor de identidade social pode ter sua própria variante no protocolo padrão OAuth. Se o provedor de identidade social desejado seguir estritamente o protocolo padrão OAuth, então você não precisa se preocupar com customConfig.

Tipos de configuração

NomeTipoObrigatório
authorizationEndpointstringtrue
userInfoEndpointstringtrue
clientIdstringtrue
clientSecretstringtrue
tokenEndpointResponseTypeenumfalse
responseTypestringfalse
grantTypestringfalse
tokenEndpointstringfalse
scopestringfalse
customConfigRecord<string, string>false
profileMapProfileMapfalse
Campos do ProfileMapTipoObrigatórioValor padrão
idstringfalseid
namestringfalsename
avatarstringfalseavatar
emailstringfalseemail
phonestringfalsephone

Referência

O Framework de Autorização OAuth 2.0