Исключение в Azure AcquireTokenAsyn c () accessing_ws_metadata_exchange_failed - PullRequest
0 голосов
/ 16 апреля 2020

Что касается добавления внешних пользователей gmail в группу Azure Active Directory, я пригласил пользователя gmail с портала azure, и пользователь gmail дал согласие на доступ к Приложению, зарегистрированному в Azure Корпоративном приложении.

Когда пользователь gmail пытался войти на мою страницу единого входа, проверка Azure вызывает исключение, когда я пытаюсь получить токен с помощью метода AcquireTokenAsyn c ()

accessing_ws_metadata_exchange_failed

Код состояния ответа не указывает на успешность: 406 (не допустимо).

Ниже приведен мой C# код для проверки пользователей по Azure Active Directory.

var authority = string.Format(CultureInfo.InvariantCulture, "https://login.windows.net/{0}", tenantId);
var authenticationcontext = new AuthenticationContext(authority);
var upc = new UserPasswordCredential(username, password); //gmailusername and password
authenticationResult = authenticationcontext.AcquireTokenAsync("https://graph.windows.net", clientId, upc).Result;

1 Ответ

1 голос
/ 17 апреля 2020

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

Учетные данные для пароля владельца ресурса (ROP C), которые вы здесь используете, действительно действительны Это был устаревший путь обновления, который не является современной аутентификацией.

Кстати, этот поток входа также не поддерживает пользователей с многофакторной аутентификацией или паролем с истекшим сроком действия.

Вы может использовать поток кода авторизации для входа в систему (фоновое веб-приложение / собственное приложение).

В случае фонового веб-приложения поток кода авторизации работает при перенаправлении пользователя войти в систему, получив код, который вы обменяете на токены.

В нативных приложениях его можно использовать, отображая всплывающее окно страницы входа для пользователя. Может использоваться при различных перегрузках AcquireTokenAsync().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...