2

Во время недавнего роудшоу Microsoft Cloud в Лондоне что-то, что вышло из одной из бесед в Службе приложений, использовало AAD B2C для аутентификации.Можно ли анонимно вызвать приложение API и автоматически перенаправить браузер на страницу входа в AD?

Можно в настоящее время добавить Azure AD в качестве аутентификации для АНИ App:

enter image description here

Вызов этого API приложение из на основе браузера веб-приложения без каких-либо результатов заголовка авторизации в 302 редиректа сразу после с ответом 401.

В облачном мероприятии было упомянуто, что можно было бы анонимно называть приложение API из веб-приложения и иметь службу приложения azure App для перенаправления на страницу входа в AAD, получить токен при успешном входе в систему, а затем передать вызов в приложение API и вернуть данные.

Однако я изо всех сил пытаюсь понять, как это можно достичь без какой-либо ответственности за вызывающее веб-приложение для обработки перенаправления. Обычно вы обрабатываете ответ 401 от API, получая токен-носитель через AAD на стороне клиента и отправляя его как заголовок авторизации с запросом api.

Я прошел через многочисленные примеры на сайте Azure и других, и все они обрабатывают вход/получение маркера в клиентском веб-приложении.

Возможно ли это?

+0

Привет, Деклан, вы можете уточнить свои настройки? Как называется ваш веб-API? Вызывается ли он браузером или вызывается каким-то кодом в вашем веб-приложении? –

+0

У меня есть приложение API в Azure, которое я импортировал в управление API. Я вызываю API-интерфейс управления API для api (который выглядит как http://MyApiManagement.azure-api.net/MyApi) из C# WebClient в веб-приложении. Я возвращаю ответ перенаправления 302, где API перенаправляется на страницу входа в AAD, но как мне исходить оттуда? Спасибо –

+0

Я не вижу, как это возможно. Я думаю, что ответ перенаправления от вашего WebClient должен быть передан вручную клиенту, используя ответ от вашего контроллера MVC. –

ответ

1

UPDATE Я только что понял (как указывал @ Даррел-Миллера, что вы действительно не хотите, чтобы позволить пользователю ставить учетные данные в.

Единственное, что до сих пор не ясно мне, где вы хотите предоставить учетные данные для AAD ?, Что именно вы хотели бы достичь.

Еще больше, зачем вы используете AAD, если нет никакого взаимодействия с пользователем. Если все, что вы хотите, это безопасное соединение, вы можете просто использовать стандартный ключ приложения для веб-api без включения AAD. И его довольно просто добавить MS_Applicati onKey к вашему заголовку, и вам хорошо идти.

Как вы описали в своем комментарии, у вас есть веб-клиент, который пытается выполнить запросы и получает 302, поэтому мой первоначальный ответ wast, что вы будете использовать ADAL. Но теперь, когда я углубился в то, что вы хотите, вероятно, вы хотите использовать KurveJS: https://github.com/MicrosoftDX/kurvejs

И у него есть модель приложения AAD v2 с Active Directoy B2C.

Это позволяет легко добавлять поставщик третьих удостоверений личности стороны, такие как Facebook и регистрация/зарегистрировался/редактирование профиля опыт с помощью политик B2C AD

Вы можете прочитать об этом здесь: https://github.com/MicrosoftDX/kurvejs/blob/master/docs/B2C/intro.md


Вы имеете в виду это? https://msdn.microsoft.com/en-us/magazine/dn463788.aspx

Просто используйте ADAL nuget для обработки вызова ...

Вы можете прочитать это от должности:

Как только выполнение попадет вызов AcquireToken, вы получите диалоговое окно аутентификации, показанное на рисунке 8. ADAL заботится о контакте с правой конечной точки и отдавая аутентификации, предоставляемой сервером во всплывающем диалоговом окне, не требуя от вас писать какой-либо код пользовательского интерфейса.

Я надеюсь, что это сработает для вас!

+0

OP пытается вызвать API из веб-приложения на сервере. Появление диалога, вероятно, не очень хорошая идея. –

Смежные вопросы