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 está solicitando 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 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 predeterminado es 3600.false
API predeterminadaSolo se puede establecer cero o una API predeterminada por inquilino.
Cuando se designa una API predeterminada, 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 predeterminada

nota

Esta característica está destinada principalmente a 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 plantear 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 predeterminado a nivel de inquilino. Una vez hecho esto:

  • Logto usará el Recurso de API predeterminado 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 Endpoint 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 predeterminado cuando no haya un parámetro resource presente en las Solicitudes de Token subsiguientes.

Al designar un Recurso de API predeterminado, 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.