Saltar al contenido principal

Aplicación de terceros (OAuth / OIDC)

La integración de aplicaciones de terceros de Logto te permite aprovechar Logto como un Proveedor de Identidad (IdP) para aplicaciones externas.

Un Proveedor de Identidad (IdP) es un servicio que verifica las identidades de los usuarios y gestiona sus credenciales de inicio de sesión. Tras confirmar la identidad de un usuario, el IdP genera tokens de autenticación o aserciones y permite al usuario acceder a varias aplicaciones o servicios sin necesidad de iniciar sesión nuevamente.

A diferencia de las aplicaciones que creaste en la guía Integra Logto en tu aplicación, que son desarrolladas y totalmente controladas por ti, las aplicaciones de terceros son servicios independientes desarrollados por desarrolladores externos o socios comerciales.

Este enfoque de integración es ideal para escenarios empresariales comunes. Puedes permitir que los usuarios accedan a aplicaciones de socios usando sus cuentas de Logto, igual que los usuarios empresariales inician sesión en Slack con Google Workspace. También puedes construir una plataforma abierta donde las aplicaciones de terceros puedan añadir la funcionalidad "Iniciar sesión con Logto", similar a "Iniciar sesión con Google".

Logto es un servicio de identidad construido sobre el protocolo OpenID Connect (OIDC), proporcionando capacidades tanto de autenticación (Authentication) como de autorización (Authorization). Esto hace que integrar una aplicación de terceros OIDC sea tan sencillo como una aplicación web tradicional.

Así, dado que OIDC se basa en OAuth 2.0 añadiendo una capa de autenticación, también puedes integrar aplicaciones de terceros usando el protocolo OAuth.

Crear una aplicación de terceros en Logto

  1. Ve a Consola > Aplicaciones.
  2. Haz clic en el botón "Crear aplicación". Selecciona "Aplicación de terceros" como tipo de aplicación y elige uno de los siguientes protocolos de integración:
    • OIDC / OAuth
  3. Selecciona un tipo de aplicación según el tipo de aplicación de terceros:
    • Web tradicional: Aplicaciones renderizadas en el servidor (por ejemplo, Node.js, PHP, Java) que pueden almacenar de forma segura un secreto de cliente en el backend.
    • Aplicación de una sola página (SPA): Aplicaciones renderizadas del lado del cliente (por ejemplo, React, Vue, Angular) que se ejecutan completamente en el navegador y no pueden almacenar secretos de forma segura.
    • Nativa: Aplicaciones móviles o de escritorio (por ejemplo, iOS, Android, Electron) que se ejecutan en dispositivos de los usuarios.
  4. Ingresa un nombre y una descripción para tu aplicación y haz clic en el botón "Crear". Se creará una nueva aplicación de terceros.

Todas las aplicaciones de terceros creadas se catalogarán en la página de Aplicaciones bajo la pestaña "Aplicaciones de terceros". Esta organización te ayuda a distinguirlas de tus propias aplicaciones, facilitando la gestión de todas tus aplicaciones en un solo lugar.

Guía de integración

Encuentra las configuraciones de la aplicación

En la página de detalles de la aplicación, puedes encontrar el ID de cliente, el secreto de cliente (solo para aplicaciones web tradicionales) y los endpoints OIDC necesarios para la integración.

Si el servicio de terceros admite descubrimiento OIDC, simplemente proporciona el endpoint de descubrimiento. De lo contrario, haz clic en Mostrar detalles de endpoints para ver todos los endpoints, incluidos el endpoint de autorización y el endpoint de token.

Integración con servicios que admiten IdP de terceros

Si estás conectando un servicio o producto que admite de forma nativa la configuración de proveedores de identidad externos (por ejemplo, plataformas SaaS empresariales, herramientas de colaboración), la configuración es sencilla:

  1. Abre la página de configuración de IdP o SSO del servicio.
  2. Copia el ID de cliente (y el secreto de cliente si es necesario) desde Logto y pégalos en la configuración del servicio.
  3. Proporciona el endpoint de descubrimiento si el servicio admite auto-descubrimiento OIDC, o copia manualmente el endpoint de autorización y el endpoint de token.
  4. Copia el URI de redirección desde la página de configuración del servicio y agrégalo a los URI de redirección permitidos de tu aplicación Logto.
  5. Configura los alcances (scopes) si el servicio lo permite. Dado que Logto es un proveedor OIDC, incluye el alcance openid si necesitas autenticar usuarios (otorga acceso a un token de ID y al endpoint UserInfo). El alcance openid es opcional si solo necesitas acceso a recursos OAuth.

El servicio gestionará automáticamente el flujo OAuth / OIDC una vez configurado.

Integración mediante el protocolo OAuth / OIDC

Si una aplicación de terceros necesita integrarse con Logto como IdP de forma programática, debe implementar el Flujo de código de autorización (Authorization Code Flow) estándar. Recomendamos usar una biblioteca cliente OAuth 2.0 / OIDC para tu lenguaje de programación para gestionar la implementación.

Las aplicaciones web tradicionales son clientes confidenciales que pueden almacenar de forma segura un secreto de cliente en el servidor backend. Consulta Flujo de código de autorización (Authorization Code Flow) para detalles completos de implementación.

Pasos clave:

  1. Iniciar autorización: Redirige al usuario al endpoint de autorización de Logto con client_id, redirect_uri, response_type=code y scope.
  2. Gestionar la devolución: Recibe el code de autorización desde la redirección.
  3. Intercambiar tokens: Desde tu backend, haz un POST al endpoint de token con el código, client_id y client_secret.

Por razones de seguridad, todas las aplicaciones OIDC de terceros serán redirigidas a una pantalla de consentimiento (Consent screen) para la autorización del usuario después de ser autenticadas por Logto.

Todos los permisos de perfil de usuario solicitados por terceros, alcances de recursos de API, permisos de organización e información de membresía de la organización se mostrarán en la pantalla de consentimiento.

Estos permisos solicitados solo se otorgarán a las aplicaciones de terceros después de que el usuario haga clic en el botón "Autorizar".

pantalla de consentimiento

Acciones adicionales

Preguntas frecuentes

Logto utiliza el Control de acceso basado en roles (RBAC) para gestionar los permisos de los usuarios. En la pantalla de consentimiento, solo se mostrarán los alcances (permisos) ya asignados al usuario, a través de sus roles. Si una aplicación de terceros solicita alcances que el usuario no tiene, estos serán excluidos para evitar consentimientos no autorizados.

Para gestionar esto:

  • Define roles globales o roles de organización con alcances específicos.
  • Asigna roles a los usuarios según sus necesidades de acceso.
  • Los usuarios heredarán automáticamente los alcances de sus roles.

Caso de uso: Integra Apache Answer para lanzar una comunidad para tus usuarios

Usar Logto como proveedor de identidad (IdP) de terceros