Debido a problemas de API con OpenId Connect de Azure, tengo el siguiente flujo de trabajo con una aplicación web y un servicio web. Yo controlo ambos.
- La aplicación web que vive en Azure genera un id_token
- La aplicación web envía el token de identificación como encabezado de autorización
Bearer
al servicio web que también vive en Azure a través de https. - el servicio web acepta los reclamos de aud y iss, que no coinciden con el servicio, pero sí coinciden con una lista blanca de otros. Específicamente, el servicio web (lenguaje azul) y la aplicación web tienen diferentes registros de aplicaciones, por lo tanto, identificaciones de aplicaciones diferentes. El servicio web habla con los puntos finales v1 y la aplicación web habla con los puntos finales v2
- El servicio web crea un token de acceso (supongo que tiene el aud correcto, la API muere, solo he leído los mensajes de registro).
- El servicio web está satisfecho con este token y responde a las solicitudes.
Después de leer el código fuente real y hablar con el soporte de MSFT, verifiqué que la validación de la audiencia y el emisor es una simple coincidencia de cadenas, por lo que no he perdido nada al incluir audiencias adicionales.
Mi preocupación es al dar el id_token a mi servicio, ¿tiene demasiado poder?
Hablando de manera práctica, ¿qué le da el token de identificación a mi servicio que un token de acceso no?