Не удалось завершить диалог аутентификации на основе браузера - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть приложение WPF, и я следую этому руководству: https://blogs.msdn.microsoft.com/dsnotes/2017/05/10/adal-secure-web-api-with-adfs-3-0-for-desktop-client/, чтобы заставить WPF проходить аутентификацию в ADFS.

У меня есть кнопка на главной странице, и вот кодпозади для обработчика события нажатия кнопки:

string authority = "https://server1.mycompany.local/adfs";
string resourceURI = "https://localhost/MyWebAPIsample/";
string clientID = "bdf737f9-567a-4998-b5e5-500b9bc2d776";
string clientReturnURI = "https://arbitraryreturnuri/";

var authContext = new AuthenticationContext(authority, false);
var authResult = await authContext.AcquireTokenAsync(resourceURI, clientID, new Uri(clientReturnURI), new PlatformParameters(PromptBehavior.Auto));

В последней строке var authResult = await ... я получаю эту ошибку: Microsoft.IdentityModel.Clients.ActiveDirectory.AdalServiceException: ' The browser based authentication dialog failed to complete. Reason: The request could not be processed by the server due to invalid syntax.' и authentication_ui_failed

Но на интерфейсе я четкоПосмотрите всплывающее окно аутентификации, и я могу ввести свои учетные данные AD для входа в систему. Я пробовал исправления из других постов, но не могу понять, в чем дело.Что-то явно не так с моим кодом или что-то, что я должен перепроверить, чтобы выяснить, что происходит?Я все еще новичок в библиотеках AD, ADFS и ADAL.Спасибо!

Примечания: я использую Visual Studio 2017 с Windows Server 2016. У меня есть серверная часть NodeJS, но я не думаю, что это имеет значение для этого обсуждения.

1 Ответ

0 голосов
/ 13 декабря 2018

Я наконец понял эту проблему после нескольких часов глупой отладки.В другом потоке я столкнулся с решением, которое говорит «включить аутентификацию по формам», и я проверил, и оно было включено, поэтому я подумал, что это хорошо.Но я проверил другие элементы (опять же, я все еще новичок в ADFS), и это заставило мою систему не использовать аутентификацию форм (чего я не мог сказать - все, что я знал, это то, что я вводил свои учетные данные пользователя AD),После отмены выбора всех других параметров аутентификация, казалось, немного отличалась от моего исходного окна аутентификации и работала.

Вот шаги на Windows Server 2016, чтобы получить доступ к «Аутентификации», объясненной, как я пять, так как это мой уровеньadfs понимание

  1. Открыть диспетчер сервера
  2. В разделе инструментов откройте Управление AD FS
  3. Нажмите на вкладку Services слева
  4. Справанажмите Authentication Methods и выберите Edit Primary Authentication Methods
  5. Отмените выбор ВСЕХ методов аутентификации, кроме Forms authentication как в интрасети, так и в экстрасети
...