http - por - que son etiquetas h1 h2 h3
¿Qué debería pasar para el encabezado WWW-Authenticate en 401 si solo estoy usando OpenID? (2)
Existe una especificación de OAuth Discovery que indica qué colocar en el encabezado WWW-Authenticate, si la especificación aún no estaba obsoleta sin una especificación de reemplazo.
La especificación HTTP dice:
10.4.2 401 no autorizado
La solicitud requiere autenticación de usuario. La respuesta DEBE incluir un campo de encabezado WWW-Authenticate (sección 14.47) que contenga 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?
De acuerdo con RFC2617 el auth-scheme
puede ser cualquier cosa; si realmente quiere un 401, técnicamente no está 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. :-)