Azure ADAL (версия 2.14) Ошибка AcquireToken

Я могу аутентифицировать пользователя при локальной работе, используя строку

AuthenticationResult result = context.AcquireToken(resource,clientID, returnURI, PromptBehavior.Always);

Локально, я получаю экран входа и UserInfo.

Когда я публикую веб-приложение в Azure, приведенный выше код завершается с этой ошибкой

"Error HRESULT E_FAIL has been returned from a call to a COM component"

[COMException (0x80004005): Error HRESULT E_FAIL has been returned from a call to a COM component.]

Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext.RunAsyncTask(Task`1 task) +89

Что вызывает это? Я публикую на общедоступном сайте (например, xxx.azurewebsites.net) - поэтому у меня нет доступа к серверу сервера для внесения каких-либо изменений - кроме использования портала.

Код работает, как и ожидалось, локально.

Также версия javascript (ADAL.js) работает с использованием того же клиента, clientID и returnURI.

1 ответ

Выполняемый вами поток получения токена предназначен для запуска в настольном приложении, а не в веб-приложении. Диалог, который появляется на вашем рабочем столе, определяется вашим локальным процессом и существованием локального сеанса Windows. Он не может работать в рамках одного веб-приложения, поскольку отсутствует сеанс Windows и процесс выполняется в другом месте на сервере. Пожалуйста, ознакомьтесь с нашими примерами, чтобы понять, как получить токены из веб-приложения, и все, что с "openid" или "oauth" с https://github.com/AzureADsamples будет работать.

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