Saltar al contenido principal

Configura el servicio de tu aplicación con la Management API de Logto

Utiliza la Management API de Logto para construir flujos personalizados de organización en tu aplicación. A continuación se muestran los pasos básicos para integrar la Management API. Si ya estás familiarizado, puedes saltar directamente al tutorial.

Una vez que te familiarices con la configuración, puedes explorar APIs adicionales para adaptar el resto de los flujos a las necesidades de tu negocio.

Establece una conexión máquina a máquina

Logto utiliza la autenticación máquina a máquina (M2M) para conectar de forma segura tu servicio backend con el endpoint de la Management API de Logto. Tu servicio backend puede entonces utilizar la Management API para manejar tareas relacionadas con la organización, como crear organizaciones, agregar o eliminar miembros, y más.

Esto implica:

  1. Crear una aplicación Máquina a Máquina (M2M) en la Consola de Logto.
Detalles de la aplicación M2M
  1. Adquirir un token de acceso M2M de Logto. Aprende más.
  2. Llamar a las Management APIs de Logto desde tu servicio backend. Por ejemplo, listar todas las organizaciones:
curl \
-X GET https://[tenant_id].logto.app/api/organizations \
-H "Authorization: Bearer $M2M_ACCESS_TOKEN" \
-H "Content-Type: application/json"

Protege el servidor de tu aplicación

Debido a que los usuarios finales pueden realizar ciertas operaciones de organización por sí mismos, añade una capa de autorización entre el usuario final y el servidor de tu aplicación. El servidor debe mediar cada solicitud, validar el token de organización del usuario y los alcances requeridos, y solo entonces utilizar una credencial M2M mantenida en el servidor para invocar la Management API.

Cuando un usuario presenta un token de organización para solicitar una acción (por ejemplo, crear una organización), el servidor primero valida los alcances en el token. Si el token incluye el alcance necesario, como org:create, autoriza la solicitud y llama a la Management API de Logto mediante el flujo M2M para crear la organización.

Si el token no contiene los alcances requeridos, devuelve un 403 Forbidden y omite la lógica M2M. Esto asegura que los usuarios sin los privilegios apropiados no puedan crear organizaciones.

A continuación se muestran patrones comunes de autorización.

Usando permisos de organización

Primero, asegúrate de haber definido permisos y roles de organización en tu plantilla de organización en la sección anterior.

Luego, asegúrate de que UserScope.Organizations (valor: urn:logto:organization) esté incluido en la configuración de Logto. Toma como ejemplo el SDK de React:

// src/App.js
import { UserScope } from '@logto/react';

const config = {
endpoint: 'https://<tenant-id>.logto.app/', // Tu endpoint de Logto
appId: '40fmibayagoo00lj26coc', // Tu app id
resources: [
'https://my.company.com/api', // Tu identificador global de recurso de API
],
scopes: [
UserScope.Email,
UserScope.Phone,
UserScope.CustomData,
UserScope.Identities,
UserScope.Organizations, // Solicita un token de organización
],
};

Esto asegura que al llamar a getOrganizationToken(organizationId), el SDK del cliente solicite un token de organización que contenga los permisos de organización asignados al usuario. Tu servicio backend puede entonces validar el token y autorizar solicitudes posteriores basándose en estos permisos.

Para más detalles sobre cómo proteger permisos a nivel de organización (no de API), consulta la guía completa.

Mezclando permisos a nivel de organización y permisos a nivel de API

Esto aplica cuando tus recursos y permisos de API están registrados globalmente, pero los roles se definen a nivel de organización (puedes asignar permisos de API a roles de organización en la plantilla de organización).

La implementación es la misma que en la sección anterior. Siempre proporciona el ID de la organización y llama a getOrganizationToken(organizationId) para obtener un token de organización; de lo contrario, los permisos de organización no se incluirán.

Para más detalles sobre cómo proteger permisos de API a nivel de organización, consulta la guía completa.