Аутентификация для веб-API с использованием Azure AD

Мне нужно реализовать аутентификацию для веб-API Azure с использованием активного каталога Azure.

клиентское приложение (которое использует webapi) может быть или не быть в лазурном. как мне нужно аутентифицировать пользователя, где я должен сгенерировать токен, если мое приложение не в лазурном (если это приложение IOS). проверка подлинности должна работать во всех случаях, даже если клиентское приложение находится в лазурном или нет.

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


person Ram    schedule 24.11.2016    source источник


Ответы (2)


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

Я не могу ответить на этот вопрос слишком подробно, потому что это довольно большая тема, и то, как это делается, также зависит от вашей платформы. Существует образец приложения, которое вы можете проверить, которое делает именно то, что вы хотите. Полный список примеров для нативных приложений можно найти на здесь.

person juunas    schedule 25.11.2016
comment
Это то, что я сделал, но у меня возникла небольшая проблема: мой клиент может получить токен, но когда я передаю его API, он возвращается неавторизованным. Я не могу понять, что не так. Мой клиент - это простое настольное консольное приложение. - person Diceyus; 13.02.2017
comment
Вероятно, это означает, что ваш API не считает токен действительным. Ничего не зная о вашей настройке, я могу только упомянуть, что вы должны проверить правильность ожидаемых audience и authority. Может быть, задать вопрос об этом с помощью кода из API? - person juunas; 13.02.2017
comment
Насколько я понимаю, аудитория для веб-API должна использоваться в качестве ресурса в клиенте, и я могу получить токен для этого ресурса. - person Diceyus; 14.02.2017
comment
Вы можете проверить токен, например, jwt.io. Убедитесь, что значение aud заявки соответствует тому, которое вы настроили в API. А потом действительно задайте вопрос о проблеме :) - person juunas; 14.02.2017
comment
Я следую инструкциям здесь (docs.microsoft.com/en-us/azure/active-directory/develop/), и я могу успешно пройти его аутентификацию при локальном запуске WEB API. Но когда я развертываю то же самое в Azure (бесплатная учетная запись), я получаю Несанкционированный доступ из WEB API. Единственное изменение на клиенте - это URI запроса, а код WEB API не изменился. - person Diceyus; 14.02.2017

Служба приложений для использования разных поставщиков аутентификации Azure Active Directory, Facebook, Google, Microsoft, Twitter. Мы можем установить любой тип аутентификации / авторизации на портале Azure. Подробнее об использовании аутентификации для API Приложения в Службе приложений Azure см. На странице документ.

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

введите здесь описание изображения

person Tom Sun - MSFT    schedule 24.11.2016