Simplificar a Autenticação OAuth e OIDC com Logto
A nossa comunidade expressou interesse em utilizar o Logto como Provedor de Identidade para certos produtos, como o Outline ou plugins do ChatGPT. Em teoria, o Logto pode servir como um provedor de OAuth ou OIDC (OpenID Connect) desde que o produto que pretendes integrar suporte qualquer um destes protocolos.
Logto é uma solução de identidade fácil de usar que oferece todas as funcionalidades necessárias. Suporta vários métodos de login como nomes de utilizador, e-mails, números de telefone e logins sociais populares, como Google e GitHub. Seja um indivíduo ou uma empresa de qualquer tamanho, Logto oferece a solução perfeita de Gestão de Identidade e Acesso ao Cliente (CIAM) adaptada às necessidades específicas do teu projeto.
Introdução
A nossa comunidade expressou interesse em utilizar o Logto como Provedor de Identidade para certos produtos, como o Outline ou plugins do ChatGPT. Em teoria, o Logto pode servir como um OAuth 2.0 (OAuth) ou OpenID Connect (OIDC) provedor desde que o produto que pretendes integrar suporte qualquer um destes protocolos.
Neste artigo, oferecemos um tutorial geral para integrações OAuth ou OIDC usando Logto como um Provedor de Identidade. Além disso, fornecemos tutoriais dedicados para integrações específicas, incluindo:
- Implementar autenticação de usuários em plugins ChatGPT com Logto
- Simplificar autenticação do Outline com Logto
Embora certos detalhes possam diferir entre os produtos, a configuração fundamental permanece genérica. Se tiveres alguma dúvida ou necessitares de mais assistência, encorajamos-te a juntares-te ao nosso servidor Discord para mais discussões.
Vamos começar!
Pré-requisitos
Antes de começarmos, assegura-te que tens o seguinte:
- Uma instância do Logto em execução ou acesso a uma conta no Logto Cloud.
- Um produto que suporte um provedor de identidade terceiro usando OAuth ou OIDC (referido como "o produto").
Configurar Logto
Se estás a auto-hospedar Logto, consulta a documentação "Get started" do Logto para configurar a tua instância do Logto.
Abre o Logto Console acedendo a URL https://cloud.logto.io/
se estás a usar o Logto Cloud, ou utiliza o endpoint que configuraste para auto-hospedagem.
Criar aplicação
Vai ao separador "Applications" e clica em "Create application".
No modal que aparece, escolhe "Traditional Web" e fornece um nome para a aplicação, como "My App". Clica em "Create application".
Serás direcionado para uma página de tutorial no Logto. Clica em "Skip" no canto superior direito para avançar para a página de detalhes da Aplicação.
Configurar URI de Redirecionamento
Na secção "Redirect URIs", insere o valor fornecido na documentação do produto. Normalmente, é dinâmico com base no teu ID ou configuração de endpoint no produto. Por exemplo, em plugins do ChatGPT, o URI de Redirecionamento é:
https://chat.openai.com/aip/[your-plugin-id]/oauth/callback
Se o teu ID de plugin é foo123
, o valor deverá ser:
https://chat.openai.com/aip/foo123/oauth/callback
Alternativamente, pode ser referido como "Redirect URL," "Callback URI," ou "Callback URL.”
Opcional: Certificar-se que Logto emite Token de Atualização
Alguns produtos podem requerer um Token de Atualização ao enviar pedidos de troca de tokens para o Logto. Para OAuth, apenas precisas de assegurar que o escopo offline_access
está incluído. De acordo com o protocolo OIDC, por padrão, o produto deve também adicionar o parâmetro de pesquisa prompt=consent
no pedido inicial de autorização para o fluxo de Código de Autorização; caso contrário, nenhum Token de Atualização será emitido.
Se o produto usar OAuth ou não adicionar o parâmetro prompt=consent
ou o escopo offline_access
mas necessitar de um Token de Atualização (por exemplo, plugins do ChatGPT), desliza até à secção "Advanced settings" e ativa "Always issue Refresh Token."
Isso é tudo!
Clica no botão "Save Changes" na parte inferior. Mantém esta página aberta, pois será útil para mais configuração.
Configurar o produto
Segue os passos indicados na documentação do produto para configuração OAuth ou OIDC.
Configuração básica
A maioria dos valores de configuração necessários podem ser encontrados na página de detalhes da aplicação do Logto. Alguns nomes podem ter aliases, por isso, consulta a tabela abaixo para referência:
Nome no Logto | Aliases | Uso |
---|---|---|
App ID | Application ID, Client ID | |
App Secret | Application Secret, Client Secret | |
Redirect URI | Redirect URL, Callback URI, Callback URL | Redirecionamento após login |
Post Sign-out Redirect URIs | Post Sign-out Redirect URL, Post Logout (Redirect) URI, Post Logout (Redirect) URL | Redirecionamento após logout |
Authorization Endpoint | Authorization URI, Authorization URL, Auth Endpoint, Auth URL, Auth URI | Autenticação inicial |
Token Endpoint | Token URL, Token URI | Requerer uma concessão de token |
Userinfo Endpoint | Userinfo URL, Userinfo URI, User Info Endpoint, User Info URL, User Info URI | Obter informação do usuário atual |
Para produtos modernos, um "endpoint de descoberta" pode ser suficiente. Nestes casos, substitui auth
por .well-known/openid-configuration
no Endpoint de Autorização. Por exemplo, se o Endpoint de Autorização for https://default.logto.app/oidc/auth
, o endpoint de descoberta seria https://default.logto.app/oidc/.well-known/openid-configuration
.
Opcional: Configuração do escopo
Se o produto suportar OIDC ou requerer um Token de ID a ser emitido, adiciona openid profile
à configuração do escopo. Consulta a tabela de escopo-claim abaixo:
Claim | Tipo | Escopo Necessário |
---|---|---|
sub | string | openid |
name | string | profile |
username | string | profile |
picture | string | profile |
string | ||
email_verified | boolean | |
phone_number | string | phone |
phone_number_verified | boolean | phone |
Verificação: Testar a integração do Logto
Clica no botão de login no produto, serás direcionado para a experiência de login do Logto.
Se tudo estiver configurado corretamente, assim que completares o processo de login ou registo no Logto, serás redirecionado de volta para o produto sem erros.
E isto conclui o nosso guia sobre a simplificação da autenticação OAuth e OIDC com Logto. Se encontrares algum problema durante a integração, por favor não hesites em contactar-nos por email para [email protected] ou junta-te ao nosso servidor Discord!