mod_auth_openidc: la actualización del token falla

2

Estoy usando mod_auth_openidc con Apache y el proxy inverso de captura de barniz frente a Grafana para descargar SSO OAuth2; una vez que inicio sesión, después de un tiempo aparece el siguiente error de búsqueda, mientras investigaba el problema; descubrió que el token de OAuth caduca y mod_auth_openidc no puede actualizar el token; Pude rastrear el flujo

Failed to fetch dashboard
NetworkError when attempting to fetch resource.

flujo de actualización del token mod_auth_openidc

  1. El token expira y la llamada http get se redirige al servidor oauth con HTTP 302
  2. La redirección falla con el error http 403 Se usa el método de Opciones HTTP en lugar de get o post

Flujo de red de Firefox -

ingrese la descripción de la imagen aquí

Y si el navegador se actualiza y se carga la página completa, todo está bien, extraño

  1. La redirección mod_auth_openidc al servidor oauth con http 302
  2. El token se actualiza y el servidor oauth redirige a la aplicación con http 302
  3. La página se carga con http 200

Flujo de red de Firefox -

ingrese la descripción de la imagen aquí

Parece que el servidor OAuth no está procesando el método de opción HTTP; Traté de deshabilitar a nivel de Apache usando 'Requerir método GET POST' y luego mod_auth_openidc no funcionó; Se agradece cualquier punto o ayuda

-- Gracias

2
  • Realmente no es así como el proxy de autenticación OIDC debería implementar la actualización del token. El token de actualización debe usarse para actualizar el token. Pero para hacerlo, la aplicación debe llamar a actualizar; consulte el documento github.com/zmartzone/mod_auth_openidc/wiki/… Implementación extraña. No sé por qué necesita descargar SSO. Grafana tiene una implementación de OIDC bastante buena y este mod_auth_openidc no parece ser adecuado para este caso de uso. 16/10/20 a las 19:13
  • Gracias, no pudimos asignar a los usuarios a la función, por lo que estamos usando mod_auth_openidc y Varnish para extraer el ID de correo electrónico; Me enfrento al problema "Solicitud de origen cruzado bloqueada: la política de mismo origen no permite leer el recurso remoto" debido a que la solicitud de OAuth falla; Agregué 'Access-Control-Allow-Origin: *' en el servidor pero la solicitud de OAuth sigue fallando 18/10/20 a las 18:19
1

Gracias, pude resolver el problema con una solución.

El problema se debió a que la solicitud de XHR se estaba bloqueando (cors), ya que el servidor OAuth está en un dominio diferente

Cambiar el OIDCSessionInactivityTimeout a 24 horas funcionó y resolvió el problema

El siguiente enlace proporciona el interior completo y la configuración

https://github.com/zmartzone/mod_auth_openidc/issues/220