Я хочу сгенерировать токен доступа и внедрить токен активного каталога azure из своего веб-приложения с помощью javascript. Я попытался сгенерировать токен, вызвав REST-API с помощью ajax, но столкнулся с проблемой CORS. Затем я попытался использовать ADAL и MSAL, но ничего не получилось. Как я могу программно сгенерировать токен в своем веб-приложении?
Вы можете использовать ADAL/MSAL для интеграции AAD в javascript. Если вы используете поток учетных данных клиента, который не поддерживается в javascript, вы получите ошибку CORS.
Есть примеры для получения токена доступа:
Используйте ADAL для JS с неявным потоком предоставления : https://stackoverflow.com/a/38319300/13308381
Используйте MSAL.js 1.0 с неявным потоком предоставления: https://learn.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-javascript-spa
Используйте MSAL.js 2.0 с потоком кода авторизации:https://learn.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-javascript-auth-code
И неявный поток предоставления, и поток кода авторизации должны сначала выполнить вход пользователя в ваше приложение. Боюсь, вы должны выполнить запрос из внутреннего приложения с потоком учетных данных клиента, о котором я упоминал в ответе. Кроме того, ответ объяснил об этом.
Спасибо за ваш ответ, Памела Пэн. Используя этот неявный поток, я застрял на ошибке. Ошибка «InteractionRequiredAuthError: AADSTS65001: пользователь или администратор не дал согласия на использование приложения с идентификатором «xxxxxx» с именем «xxxxx powerBI Embed Test1». Отправьте интерактивный запрос авторизации для этого пользователя и ресурса». не могли бы вы мне помочь?
Какому примеру вы следовали? Если вы используете ADAL, пожалуйста, обратитесь к этой проблеме.
Я решил это. Необходимо добавить разрешение mail.read в Microsoft graph API. Просто войдите в свою учетную запись администратора и перейдите к регистрации приложения, затем выберите разрешения API и нажмите «Добавить разрешение».
Мне приятно знать :)
Спасибо за ваш ответ. Все эти статьи перенаправляют меня в окно входа в систему. Я не хочу никаких всплывающих окон. Я просто хочу добавить код в свое веб-приложение, которое генерирует для меня токен доступа. Есть ли способ сделать это?