2014-10-10 6 views
0

Фон: У нас есть WebAPI, настроенный с использованием Azure ACS и ADFS для аутентификации.Инициальная/кордовая аутентификация с ACS

Доступ к любому ресурсу WebAPI через браузер будет перенаправлять неавторизованных пользователей на страницу входа в ADFS через ACS. После успешного входа в систему пользователь будет перенаправлен для возврата Url в качестве настройки в ACS вместе с маркером безопасности. Это прекрасно работает.

Проблема: Мы разрабатываем мобильные приложения с использованием базы Ionic (http://ionicframework.com/). Мы хотим использовать те же ACS и ADFS для аутентификации, которые мы используем для WebAPI. В этом процессе мы сталкиваемся следующие вопросы:

Выпуск 1: Доступ к любой WebAPI ресурс с помощью мобильного приложения (Ionic, Cordova, angularjs) перенаправляет пользователя на ACS, и мы получаем ниже ошибки.

XMLHttpRequest не может загрузить протокол HTTPS: // {} имя_домена .accesscontrol.windows.net/v2/wsfederation уа = WS ... 52fitem & ДАП = 2014-10-10T14% 3a24% 3a34Z & WHR = HTTPS% 3a% 2f % 2f {} .com домена. В запрошенном ресурсе нет заголовка «Access-Control-Allow-Origin». Поэтому исходный 'null' не допускается.

Следовательно, мы не можем аутентифицировать пользователя через ACS с помощью мобильного приложения.

Выпуск 2: Установка URL-адреса возврата в качестве пустого в ACS вызывает следующую ошибку. ACS90050: адрес ответа не сконфигурирован с помощью принципала полагающейся стороны.

Шаги, предпринятые до настоящего времени: -> Мы включили CORS на WebAPI.

ответ

0

Мы зарегистрировали билет с Microsoft, чтобы узнать, разрешен ли CORS в ACS. Мы получили ответ.

ACS не обеспечивает решение CORS, которое мы исследовали. К сожалению, ответ по-прежнему: «Нет ACS не обеспечивает решение CORS». То есть, ACS не дает нам доступа к корню для стандартного междоменного решения. Кроме того, предоставление токена считается HTTPOnly, поскольку манипулирование токеном с Javascript по своей сути опасно.

Имеется образец, который может служить руководством, если вы хотите продолжить этот путь, хотя он не рекомендуется из-за аспекта безопасности. Скачать образцы, найденные в:

Windows Azure AD контроля доступа (СКД) Примеры кода: https://code.msdn.microsoft.com/Windows-Azure-AD-Access-0dcde385

Образец в: C# \ Webservice \ ACS2WindowsPhoneSample может предоставить некоторые указания, но мы не смогли бы помочь с модифицирующими образец.