Autenticación (autenticación HTTP Digest)

Descripción general

Si el medidor eGauge está configurado con autenticación de contraseña para todo el sitio, todos los recursos requerirán autenticación HTTP Digest. Muchos lenguajes de programación y bibliotecas son compatibles con la autenticación HTTP Digest, por lo que es preferible usar bibliotecas confiables y bien mantenidas para esta función en lugar de implementaciones personalizadas. Si no existe compatibilidad con la autenticación HTTP Digest, se puede implementar manualmente. eGauge Systems no puede ofrecer asistencia con esta implementación.

Wikipedia ofrece información y ejemplos sobre cómo realizar la autenticación de resumen y qué valores de encabezado deben devolverse. Tenga en cuenta que cualquier recurso protegido por la API XML utilizará una "calidad de protección" (qop) de "auth", lo que afectará el cálculo de los valores de encabezado mediante la autenticación de resumen HTTP.

Instrucciones

  1. Realice una solicitud no autenticada al recurso al que desea acceder.
  2. Revise el encabezado WWW-Authentication devuelto. Guarde los siguientes valores:
    Digest realm (espacio del dominio del recurso protegido. Generalmente, se trata de "Administración de eGauge", a menos que la interfaz tenga una marca personalizada).
    nonce (nonce del servidor, cambia para cada solicitud no autenticada)
    qop (siempre será "auth" para la API XML de eGauge)
  3. Realice los siguientes cálculos:
    HA1 = MD5(username:realm:password)
    HA2 = MD5(method:digestURI) (tenga en cuenta que digestURI es la ruta del recurso, sin incluir el host ni el FQDN. Por ejemplo, /cgi-bin/egauge-show)
    response = MD5(HA1:nonce:nonceCount:cnonce:qop:HA2) (nonceCount puede ser "1" para la solicitud inicial. cnonce
    es un nonce generado por el cliente, como un valor hexadecimal de 64 bits)
  4. Envíe una solicitud a la misma URI del paso 1 y esta vez incluya un encabezado "Autorización" con los siguientes parámetros y valores:
    1. Digest username = nombre de usuario para autenticación
    2. realm = reino (del paso 2)
    3. nonce = nonce del servidor (del paso 2)
    4. uri = uri de solicitud (utilizada en HA2 en el paso 3)
    5. response = respuesta (generada en el paso 3)
    6. qop = “auth”
    7. nc = recuento de nonce (puede ser simplemente "1" para pruebas, debe incrementarse para solicitudes posteriores que reutilicen el mismo nonce)
    8. cnonce = nonce de cliente generado en el paso 3

Información

  • No siempre es necesario realizar el paso 2 de este proceso si se realizan solicitudes repetidas al mismo recurso (URI o "digestURI"). Un nonce de servidor caduca después de 10 minutos e intentar reutilizarlo generará un error 401 con el encabezado WWW-Authenticate, como el del paso 1, con el parámetro "stale=true" en la cadena de encabezado.