HTTP-ответ и заголовки для аутентификации AJAX / oData? - PullRequest
0 голосов
/ 09 июля 2011

Как службы oData или AJAX должны реагировать, когда срок действия файла cookie для аутентификации истек и пора обновлять?

Что сервер должен отправить клиенту, когда

  1. Доступ к сервису oData или AJAX запрещен (доступ запрещен)

  2. Когда учетные данные сеанса устарели и требуют обновления, возможно, путем перенаправления на ADFS, OpenID или Azure ACS IDP

Просто глядя в Википедии, я могу догадаться, что мне следует отправить какую-то версию 403.x для первого сценария и 401 для второго сценария.

Пожалуйста, подтвердите, если вышеупомянутое правильно, и что я должен включить в заголовок ответа и тело также.

Некоторые примеры, которые я считаю неверными, делают следующее:

  • Автоматически выдает ошибку службы AJAX и не возвращает данных
  • Попытка перенаправить вызов AJAX на IDP
  • Отправить клиенту текст ошибки, не в формате JSON

Ответы [ 2 ]

1 голос
/ 15 июля 2011

всегда безопасно играть с кодами статуса HTTP вместо того, чтобы создавать свои собственные токены или что-то в этом роде.

Поскольку основы OData - сделать возможным для любого клиента, который знает, как общаться HTTP, имеет смысл поиграться с кодом состояния HTTP. Клиенты будут решать, что делать с конкретным кодом статуса.

0 голосов
/ 21 сентября 2011

Коды состояния HTTP - это путь.В частности, OData не определяет ничего, что уже реализовано на более низком уровне (например, безопасность и аутентификация).

401 - для неавторизованного, 403 - для неавторизованного.Для secnario 1 вы говорите только «Доступ запрещен», но не , почему вы запрещаете доступ.Пользователь не аутентифицирован?Затем верните 401. Является ли пользователь аутентифицированным, но не имеет привилегий?Затем верните 403.

Для сценария 2 я бы согласился вернуть подробный статус 401 (т. Е. С действительным заголовком «WWW-Authenticate» для вашего провайдера аутентификации.)

Статья Википедии IРекомендуем начать с (возможно, вы уже нашли это): https://secure.wikimedia.org/wikipedia/en/wiki/List_of_HTTP_status_codes

Надеюсь, это кому-нибудь поможет.: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...