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 propiedad | Descripción de la propiedad | Requerido |
---|---|---|
Nombre de la API | Un nombre amigable que puede ayudarte a identificar el recurso de API. | true |
Identificador de la API | El 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 predeterminada | Solo 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 |
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
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ámetroresource
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ámetroresource
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.