Pregunta ¿Qué debería pasar para el encabezado WWW-Authenticate en 401 si solo estoy usando OpenID?


La especificación HTTP dice:

10.4.2 401 no autorizado

La solicitud requiere autenticación de usuario. La respuesta DEBE incluir un WWW-Authenticate   campo de encabezado (sección 14.47) que contiene un desafío aplicable al recurso solicitado.

Si el único esquema de inicio de sesión que apoyo es OpenID (o CAS, o tokens OAuth, etc.), ¿qué debería poner en este campo? Es decir, ¿cómo indico que el cliente necesita preautenticar y crear una sesión en lugar de tratar de enviar credenciales junto con cada solicitud?

Antes de responder, "no envíe un 401; envíe un redireccionamiento 3xx a la página de inicio de sesión de OpenID", ¿qué ocurre con los clientes que no son HTML? ¿Cómo, por ejemplo, apilaría Stack Overflow una API con la que mi software personalizado podría interactuar?


32
2018-06-02 15:25


origen


Respuestas:


De acuerdo a RFC2617 el auth-scheme puede ser cualquier cosa; si realmente quieres un 401 no eres técnicamente rompiendo especificaciones inventando algo como WWW-Authenticate: OpenID realm="My Realm" location="http://my/login/location". Habiendo dicho eso, el comportamiento del código de otras personas cuando haces eso es, por supuesto, indefinido. :-)


26
2017-07-06 17:11



Hay un Especificación de OAuth Discovery eso indicaría qué poner en el encabezado WWW-Authenticate, si la especificación no estaba obsoleta sin una especificación de reemplazo aún.


3
2018-06-02 16:39