Тихий поиск токенов в Identity Server 4 - PullRequest
0 голосов
/ 26 апреля 2020

Есть ли способ для собственного приложения / WPF заставить Identity Server 4 выдавать токен без необходимости пользовательского интерфейса, как это позволяет библиотека MSAL от Microsoft - https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/wiki/Integrated-Windows-Authentication.

Библиотека MSAL работает только в том случае, если у вас есть пользователь Windows, для которого выполняется резервное копирование в клиенте Azure AD, указанном свойством полномочий.

Использование класса. NET HttpClient Я надеялся, что если я установлю UseDefaultCredentials в HttpClientHandler и настрою Identity Server, чтобы он использовал Windows Аутентификацию в качестве своего «провайдера», это было бы возможно.

Однако при попытке получить 401 Не авторизовано когда он пытается аутентифицировать пользователя на этой точке в примере быстрого запуска. Я подозреваю, что у меня Windows проблемы с аутентификацией с классом HttpClient еще до того, как мы углубимся в специфику Identity Server.

Если бы я прошел этот этап, мне также понадобилась бы возможность обрабатывать обратный вызов, чтобы иметь дело с код / ​​токен доступа. Есть ли другой способ сделать это?

Я понимаю, что в WPF может быть показано окно браузера, чтобы обрабатывать все, но по сложным и политическим причинам внутри компании, мы хотели бы избежать этого, если это возможно.

1 Ответ

0 голосов
/ 01 мая 2020

Таким образом, правильный способ сделать это - использовать Auth Code с PKCE, вы можете настроить его так, чтобы он выдал вам токен refre sh, поэтому вы можете утверждать, что вы видите браузер только один раз при первоначальном входе в систему. (Я советую this)

Если вы не можете получить токен refre sh, вы можете выполнить автоматическое обновление с помощью браузера без заголовка.

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

Если вы вообще не хотите использовать браузер, вы можете использовать поток Учетные данные для пароля владельца ресурса. Пожалуйста, обратитесь к сообщению Скотта Брэди в блоге о погоде, которую вы должны или не должны использовать.

Многие члены Рабочей группы OAuth теперь считают тип гранта ROP C как устарела.

А что касается

Я понимаю, что в WPF может отображаться окно браузера для обработки всего, кроме сложных и политических причин внутри компании, которые мы хотели бы по возможности избегайте этого.

Скажите им, что избежать этого невозможно.

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