1

Я пытаюсь войти в мое приложение Java API, находящееся в Azure и защищенное каталогом Activety.Как войти в Azure и приложение с защитой API Active Directory без ADAL?

В this article я читал, чтобы сделать этот вызов для получения маркера:

ПОЛУЧИТЬ https://login.windows.net/developertenant.onmicrosoft.com/oauth2/authorize?response_type=id_token&client_id=aeadda0b-4350-4668-a457-359c60427122&redirect_uri=https%3A%2F%2Flocalhost%3A44326%2F&state=8f0f4eff-360f-4c50-acf0-99cf8174a58b&nonce=8b8385b9-26d3-42a1-a506-a8162bc8dc63 HTTP/1.1

Но как выяснить, какие состояния и какие нонса установить для моего собственного API-приложения?

Просто используя пример состояния и nonce из приведенного выше примера, я отвечу на ответ так называемым flowToken. Является ли этот тип токена, который я должен отправить, как указано в упомянутой статье? Смотрите эту часть:

Расположение: https://localhost:44326/#id_token=eyJ0eXAiOiJKV1QiLC[SNIP]gu1OnSTN2Q2NVu3ug&state=8f0f4eff-360f-4c50-acf0-99cf8174a58b&session_state=e4ec5227-3676-40bf-bdfe-454de9a2fdb2

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

Пожалуйста, НЕ говорите мне использовать ADAL. Потому что это то, что я уже пробовал, и что не сработало. Как видите, here.

ответ

0

Поскольку авторизация grand flow содержит несколько перенаправлений URL, которые трудно реализовать в SPA. Вам необходимо реализовать OAuth2 implicit grant flow in Azure Active Directory (AD) на стороне клиента, а также ADAL для JS. Для получения дополнительной информации о рабочем потоке вы можете обратиться к https://docs.microsoft.com/en-us/azure/active-directory/active-directory-authentication-scenarios#single-page-application-spa.

И самый простой способ пройти через AAD в SPA - использовать ADAL для JS. И согласно вашему вопросу Access to azure hosted API App denied by CORS policy, вы можете попробовать установить конфигурацию приложения AAD, которое защищает ваш сервер. И.Е.

Попробуйте использовать идентификатор клиента в переменной theEndpoints для установки в функцию adalAuthenticationServiceProvider.init. Он отлично работает в моем тестовом проекте.

Любая дополнительная забота, пожалуйста, сообщите мне.