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 будет работать.