Saltar al contenido principal

Recursos de API

Los recursos de API, también conocidos como Indicadores de Recursos, indican los servicios o recursos objetivo a solicitar, generalmente, una variable en formato URI que representa la identidad del recurso. Este es un concepto clave en el sistema de autorización de Logto, ya que define el punto final que la política de autorización está diseñada para proteger.

Indicador de recurso

  • Un valor de recurso indica el servicio o recurso objetivo al que se solicita acceso.
  • Su valor DEBE ser un URI absoluto.
  • El URI NO DEBE incluir un componente de fragmento.
  • NO DEBERÍA incluir un componente de consulta.
  • DEBERÍAS proporcionar el URI más específico posible para la API completa o el conjunto de recursos que pretende acceder.

En la práctica, un cliente puede conocer un URI base o la aplicación o recurso con el que interactuar. Sería apropiado usarlo como el valor del parámetro de recurso.

Por ejemplo, el URI base de Logto Management API.

https://tenantId.logto.app/api

Por defecto, este recurso de API está pre-registrado en tu servicio Logto. Todas las Management API bajo este URI están protegidas por Logto.

Esquema de recurso de API de Logto

Nombre de la propiedadDescripción de la propiedadRequerido
Nombre de la APIUn nombre amigable para el usuario que puede ayudarte a identificar el recurso de API.true
Identificador de la APIEl valor único del Indicador de Recurso de la API, con las restricciones listadas arriba.
Logto lo usará para identificar el recurso de API solicitado y otorgar los tokens de autorización en consecuencia.true
Tiempo de expiración del token (en segundos)El tiempo de expiración establecido para el token de acceso. El valor de expiración por defecto es 3600.false
API por defectoSolo se puede establecer cero o una API por defecto por inquilino.
Cuando se designa una API por defecto, el parámetro de recurso puede omitirse en la solicitud de autenticación. Los intercambios de tokens subsiguientes usarán esa API como la audiencia por defecto, resultando en la emisión de JWTs.false
nota:

Las solicitudes con un token de acceso expirado deben ser restringidas. Esto se implementa para proteger tu API de un token abusado. Cuanto mayor sea el valor establecido, más tiempo sobrevivirá un token de acceso emitido, y más vulnerable será tu API.

API por defecto

nota:

Esta característica está destinada principalmente para aplicaciones que NO soportan indicadores de recursos OIDC, por ejemplo, plugins de ChatGPT.

Logto aprovecha RFC 8707: Indicadores de Recursos para OAuth 2.0 para implementar el control de acceso basado en roles (RBAC). Aunque es una de las características de OAuth 2.0, aún no está ampliamente soportada.

En la implementación de Logto, cada permiso (alcance) definido por el usuario debe estar asociado con un Recurso de API. De lo contrario, se tratará como un permiso de OpenID Connect (o OAuth). Generalmente, esto no afecta tu proceso de autorización. Sin embargo, al integrarse con aplicaciones de terceros que carecen de soporte para RFC 8707 (por ejemplo, plugins de ChatGPT), puede presentar desafíos ya que la solicitud de autorización inicial puede no incluir un parámetro resource. En consecuencia, Logto siempre emitirá Tokens de Acceso Opacos.

Para abordar este problema, puedes designar un Recurso de API como el recurso por defecto a nivel de inquilino. Una vez hecho esto:

  • Logto usará el Recurso de API por defecto cuando no haya un parámetro resource presente en la Solicitud de Autenticación.
  • Si se incluye el alcance openid, se emitirá un Token de Acceso Opaco para el Punto final de información del usuario cuando no haya un parámetro resource presente en las Solicitudes de Token subsiguientes.
  • Si no se incluye el alcance openid, se emitirá un Token de Acceso JWT para el Recurso de API por defecto cuando no haya un parámetro resource presente en las Solicitudes de Token subsiguientes.

Al designar un Recurso de API por defecto, puedes asegurar una integración fluida con aplicaciones que carecen de soporte para RFC 8707 mientras mantienes los controles de acceso apropiados.

Registrar los recursos de API en Logto

Para obtener un token de acceso restringido por audiencia de Logto, primero, registra tus APIs de backend para habilitar los tokens de acceso restringidos por audiencia de Logto. Cuando se recibe una solicitud de autorización, Logto identificará los recursos de API registrados y otorgará acceso en consecuencia.

Para registrar tus APIs, navega a Consola > Recursos de API. Verás un recurso incorporado con el identificador de API mostrado como https://[your-tenant-id].logto.app/api. Este recurso abarca todas las Management APIs de Logto y asegura que estén protegidas y accesibles solo para usuarios autorizados de Logto.

Haz clic en el botón Crear recurso de API y sigue el formulario interactivo para crear tus propios recursos de API:

  • Un nombre de API legible que pueda ayudarte mejor a identificar esta entidad.
  • Un identificador de API único en formato URI. Representa la identidad del recurso de API.

La nueva API aparecerá en la lista una vez creada. Puedes gestionarla o eliminarla en la página de detalles de la API haciendo clic en la entidad.

Token opaco vs JWT ¿Cuándo debería usar JWTs? Métodos de autorización de API