Pular para o conteúdo principal

Aplicativo de terceiros (OAuth / OIDC)

A integração de aplicativos de terceiros do Logto permite que você utilize o Logto como um Provedor de Identidade (IdP) para aplicativos externos.

Um Provedor de Identidade (IdP) é um serviço que verifica identidades de usuários e gerencia suas credenciais de login. Após confirmar a identidade de um usuário, o IdP gera tokens de autenticação ou afirmações e permite que o usuário acesse vários aplicativos ou serviços sem precisar fazer login novamente.

Diferente dos aplicativos que você criou no guia Integre Logto ao seu aplicativo, que são desenvolvidos e totalmente controlados por você, os aplicativos de terceiros são serviços independentes desenvolvidos por desenvolvedores externos ou parceiros de negócios.

Essa abordagem de integração é ideal para cenários de negócios comuns. Você pode permitir que usuários acessem aplicativos parceiros usando suas contas Logto, assim como usuários corporativos fazem login no Slack com Google Workspace. Você também pode construir uma plataforma aberta onde aplicativos de terceiros podem adicionar a funcionalidade "Entrar com Logto", semelhante ao "Entrar com Google".

O Logto é um serviço de identidade construído sobre o protocolo OpenID Connect (OIDC), fornecendo capacidades de autenticação (Authentication) e autorização (Authorization). Isso torna a integração de um aplicativo de terceiros OIDC tão simples quanto a de um aplicativo web tradicional.

Além disso, como o OIDC é construído sobre o OAuth 2.0 adicionando uma camada de autenticação, você também pode integrar aplicativos de terceiros usando o protocolo OAuth.

Criar um aplicativo de terceiros no Logto

  1. Vá para Console > Aplicativos.
  2. Clique no botão "Criar aplicativo". Selecione "Aplicativo de terceiros" como o tipo de aplicativo e escolha um dos seguintes protocolos de integração:
    • OIDC / OAuth
  3. Selecione um tipo de aplicativo com base no tipo do aplicativo de terceiros:
    • Web tradicional: Aplicativos renderizados no servidor (ex.: Node.js, PHP, Java) que podem armazenar um segredo do cliente com segurança no backend.
    • Single Page App (SPA): Aplicativos renderizados no lado do cliente (ex.: React, Vue, Angular) que rodam inteiramente no navegador e não podem armazenar segredos com segurança.
    • Nativo: Aplicativos móveis ou desktop (ex.: iOS, Android, Electron) que rodam em dispositivos dos usuários.
  4. Insira um nome e uma descrição para seu aplicativo e clique no botão "Criar". Um novo aplicativo de terceiros será criado.

Todos os aplicativos de terceiros criados serão catalogados na página de Aplicativos sob a guia "Aplicativos de terceiros". Essa organização ajuda você a distingui-los dos seus próprios aplicativos, facilitando o gerenciamento de todos os seus aplicativos em um só lugar.

Guia de integração

Encontrar as configurações do aplicativo

Na página de detalhes do aplicativo, você pode encontrar o Client ID, Client secret (apenas para apps web tradicionais) e os endpoints OIDC necessários para integração.

Se o serviço de terceiros suportar descoberta OIDC, basta fornecer o Discovery endpoint. Caso contrário, clique em Mostrar detalhes dos endpoints para ver todos os endpoints, incluindo o authorization endpoint e o token endpoint.

Integrar com serviços que suportam IdP de terceiros

Se você estiver conectando um serviço ou produto que suporta nativamente configuração de provedor de identidade externo (ex.: plataformas SaaS corporativas, ferramentas de colaboração), a configuração é simples:

  1. Abra a página de configuração de IdP ou SSO do serviço.
  2. Copie o Client ID (e Client secret se necessário) do Logto e cole na configuração do serviço.
  3. Forneça o Discovery endpoint se o serviço suportar auto-descoberta OIDC, ou copie manualmente o Authorization endpoint e o Token endpoint.
  4. Copie o Redirect URI da página de configuração do serviço e adicione-o aos URIs de redirecionamento permitidos do seu aplicativo Logto.
  5. Configure os scopes se o serviço permitir. Como o Logto é um provedor OIDC, inclua o escopo openid se precisar autenticar usuários (concede acesso a um Token de ID (ID token) e ao endpoint UserInfo). O escopo openid é opcional se você precisar apenas de acesso a recursos OAuth.

O serviço irá lidar automaticamente com o fluxo OAuth / OIDC após a configuração.

Integrar via protocolo OAuth / OIDC

Se um aplicativo de terceiros precisar integrar-se ao Logto como IdP programaticamente, ele deve implementar o padrão Authorization Code Flow. Recomendamos usar uma biblioteca cliente OAuth 2.0 / OIDC para sua linguagem de programação para facilitar a implementação.

Aplicativos web tradicionais são clientes confidenciais que podem armazenar um segredo do cliente com segurança no servidor backend. Veja Authorization Code Flow para detalhes completos de implementação.

Etapas principais:

  1. Iniciar autorização: Redirecione o usuário para o endpoint de autorização do Logto com client_id, redirect_uri, response_type=code e scope.
  2. Tratar callback: Receba o code de autorização do redirecionamento.
  3. Trocar tokens: Do seu backend, faça um POST para o token endpoint com o código, client_id e client_secret.

Por motivos de segurança, todos os aplicativos de terceiros OIDC serão redirecionados para uma tela de consentimento para autorização do usuário após serem autenticados pelo Logto.

Todas as permissões de perfil de usuário solicitadas pelo terceiro, escopos de recursos de API, permissões de organização e informações de associação à organização serão exibidas na tela de consentimento.

Essas permissões solicitadas só serão concedidas aos aplicativos de terceiros após o usuário clicar no botão "Autorizar".

tela de consentimento

Próximas ações

Perguntas frequentes

O Logto utiliza Controle de Acesso Baseado em Papel (RBAC) para gerenciar permissões de usuários. Na tela de consentimento, apenas escopos (permissões) já atribuídos ao usuário — através de seus papéis — serão exibidos. Se um aplicativo de terceiros solicitar escopos que o usuário não possui, eles serão excluídos para evitar consentimento não autorizado.

Para gerenciar isso:

  • Defina papéis globais ou papéis de organização com escopos específicos.
  • Atribua papéis aos usuários conforme suas necessidades de acesso.
  • Os usuários herdarão automaticamente os escopos de seus papéis.

Caso de uso: Integre o Apache Answer para lançar uma comunidade para seus usuários

Usando o Logto como um provedor de identidade de terceiros (IdP)