1

Вопрос по ajax, owin, azure-active-directory, single-sign-on – WAAD не обновляет токен доступа из JavaScript

Для приложений, которые проверяют подлинность пользователей с помощью Windows Azure Active Directory (WAAD), не удается обновить токен из JavaScript.

Все ресурсы защищены атрибутом Authorize, который выполняет вызов login.windows.net/advan0}, если срок действия токена истек. Если запрос от загрузки страницы, он работает как ожидалось, но если запрос от ajax-вызова javascript, он не может сделать вызов login.windows.net/ndom0}. Возвращается со статусом 302 и сообщением

XMLHttpRequest не может загрузитьhttps://login.windows.net/xxx, В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Следовательно, происхождение 'xxx' не разрешено.

Как обновить токен от вызовов javascript?

1 ответ
1

Похоже

вы защитили свой веб-API с помощью метода, более подходящего для веб-UX. Взгляните на ADAL JS для более надежного способа работы с приложениями на основе JavaScript:http://www.cloudidentity.com/blog/2014/10/28/adal-javascript-and-angularjs-deep-dive/ Для объяснения того, как обновление токенов работает, посмотрите видео, связанное в этом посте HTH V.

Спасибо за ответ, я прочитал в блогах. Но у меня есть веб-приложение MVC с контроллерами, реализующими System.Web.Mvc.Controller (без реализации System.Web.Http.ApiController). Так что это не сочетание UX и API. Страница UX имеет несколько кнопок, которые загружают данные, использующие вызовы jQuery AJAX, методы действий которых - возвращение JSON - защищены с помощью атрибутов [Authorize]. После входа в WAAD загрузка страницы и данных (с использованием вызовов AJAX) работает нормально. Но в течение нескольких минут эти вызовы начинают сбой с сообщением выше. Итак, вы предлагаете мне использовать ADAL JS, хотя я не выполняю вход / аутентификацию на стороне клиента?

от Shruthika Katakam

Вы когда-нибудь выясняли, как решить эту проблему? Я испытываю это сейчас на своих контроллерах и использую аутентификацию Azure AD.

от Sherman

Я хочу сказать, что если вы не используете аутентификацию, управляемую JS, у вас будут проблемы, подобные этой. Протоколы на основе перенаправления не предназначены для обновления токенов. Если вам нужна поддержка как UX, так и API, смотритеcloudidentity.com/blog/2014/04/28/... а такжеcloudidentity.com/blog/2014/04/22/....

от vibronet

Я не делаю чистую аутентификацию JS на стороне клиента. Это простое приложение MVC с аутентификацией WAAD и вызовом ajax, которое требует авторизации пользователей. ,

от Shruthika Katakam

Похожие вопросы