Aclaración sobre id_token vs access_token

Estoy creando un sistema con OIDC y OAuth 2.0 (usando Auth0), y no estoy seguro de cómo usar correctamente elid_token yaccess_token. O más bien, estoy confundido acerca de qué roles asignar a los diversos servicios en mi configuración.

Tengo una aplicación frontend totalmente estática (aplicación de una sola página, HTML + JS, sin backend) que garantiza que el usuario se autentique utilizando el flujo implícito contra Auth0. La aplicación frontend luego obtiene datos de una API que también estoy construyendo.

Ahora, que es correcto?

El frontend SPA es el OAuthaplicación clienteMi servicio API es un OAuthservidor de recursos

...o:

El frontend y mi servicio API son ambosaplicación cliente

Si se puede considerar que mi API de interfaz de usuario y servidor de fondo es el cliente, no veo ningún daño real en el uso deid_token como el token de portador en las solicitudes de mi interfaz a mi backend, esto es atractivo porque entonces simplemente puedo verificar el token firmado en el backend y tengo toda la información sobre el usuario que necesito. Sin embargo, si mi API se considera unservidor de recursos, Probablemente debería usar elaccess_token, pero luego tengo que conectarme a los servidores de Auth0 en cada solicitud de API para verificar el token y obtener información básica del usuario, ¿no?

he leídoesta lo que parece sugerir que elaccess_token es el único token válido para usar con mi API. Pero como dije, no estoy seguro acerca de los roles de los servicios individuales. Y usando elid_token es tentador porque no requiere conexiones de red en el backend y contiene información que necesito para extraer los datos correctos.

¿Cuál es la forma correcta de hacerlo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta