Как получить токены доступа без AdalJS?

Я зарегистрировал приложение в Azure AD.

Как программно получить токены доступа без использования библиотеки AdalJS в JavaScript?

Спасибо!

2 ответа

Вы должны будете использовать неявный поток грантов вручную. Вы можете ознакомиться с некоторыми основными документами здесь: https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-authentication-scenarios.

Вы аутентифицируете пользователя, перенаправляя его, например, для входа https://login.microsoftonline.com/yourtenant.onmicrosoft.com/oauth2/authorize?client_id=your-client-id&response_type=id_token&redirect_uri=https%3A%2F%2Flocalhost&nonce=abcdef,

Конечно, вам нужно заменить значения вашими соответствующими значениями. И генерировать уникальный одноразовый номер для каждого запроса.

Как только пользователь вернется, вам нужно взять id_token от фрагмента и декодировать его, чтобы получить информацию о пользователе. Затем вы можете получить токены доступа для API со скрытым iframe с очень похожим URL, как и раньше, но на этот раз с response_type=token&prompt=none&resource=https%3A%2F%2Fgraph.microsoft.com%2F, Замените ресурс URI/id ресурса, для которого вы хотите токен. Затем вам нужно будет прослушать изменение URL-адреса iframe и извлечь токен доступа из его фрагмента, когда он вернется успешно (или проанализировать ошибку в случае сбоя аутентификации).

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

Это не сработало для меня, поэтому я использую ADAL. Я добавил скрипт на свою страницу с помощью пользовательского действия ScriptLink и получил там токен. Когда adal добавляет iFrame со ссылкой, я перенаправляю туда, и он возвращает меня на мою страницу с параметрами в хэше (url), поэтому мой скрипт извлекает токен из хеша URL.

Другие вопросы по тегам