Cuando el token de identificación proporcionado por OpenID Connect — OIDC llega a un back-end a través de un punto final de API, debe validarse . Existen bibliotecas específicas del proveedor para validar tokens, como las de Google y Apple . ¿Existe una biblioteca que pueda validar cualquier token de identificación OIDC estándar?
Si entiendo correctamente la API documentada de la popular biblioteca openid-client , parece estar orientada hacia un flujo de trabajo de aplicación basado en la web (de ahí, por ejemplo, los diversos puntos finales que parecen ser necesarios al construir un objeto Issuer ) y el soporte de Passport middleware (que, de nuevo, se dirige a las aplicaciones web). ¿Se puede usar la biblioteca openid-client para validar simplemente un token de ID de OpenID Connect obtenido a través de un flujo de trabajo independiente del flujo de trabajo web de la biblioteca? ¿Hay otra biblioteca de JavaScript que pueda hacer esto? Esto parece importante, porque los desarrolladores deben evitar implementar su propio código para implementar la funcionalidad de seguridad .
Hay bibliotecas de Node.js que validan JWT, que también pueden ejecutarse en el navegador. La biblioteca openid-client se centra en un flujo de código de nivel superior. Una biblioteca como jose puede ser una mejor opción y brindarle un control más preciso, si su requisito es trabajar solo con JWT.
En el navegador se utilizan las API criptográficas web , a diferencia de las implementaciones de Node. Todos los navegadores de escritorio y móviles actualizados los admiten.
El código que escribirías en el navegador es similar a este código mío . La biblioteca hace estas cosas:
Más información en mi entrada de blog . Tenga en cuenta que un token de ID es una afirmación para informar al cliente cómo y cuándo ocurrió el evento de autenticación. Por lo general, solo se envían tokens de acceso a los backends, ya que también pueden contener alcances personalizados y notificaciones que se usan para la autorización.