Estoy diseñando un marco de autorización y ahora estoy pensando en los códigos de error que debo devolver cuando alguien intenta acceder a un recurso y no tiene los permisos necesarios. Estos son mis pensamientos hasta ahora:
-
caso: el usuario no está autenticado, se le ve como "anónimo" - > Aquí creo que 401 sería el código de estado correcto, de modo que el usuario tenga la oportunidad de autenticarse.
-
caso El usuario ya está autenticado. Volvería 404 NO ENCONTRADO. RFC2616 indica que si no queremos revelar exactamente por qué se rechazó la solicitud, 404 es una buena manera de proceder.
También estoy pensando en anunciar otro caso para el usuario: ADMIN. Si ADMIN no está autorizado, debe recibir respuestas personalizadas, para que sepa exactamente cuál es el problema. ¿Qué piensas sobre esto? ¿Tiene sentido? ¿Cómo podría alguien explotar esto?
¿Crees que es mejor usar 404 para todo o que diferenciarías entre 403 y 404, y por qué?
¿Hay alguna buena literatura sobre este tema? (Ya he buscado y no he encontrado nada concluyente)