Фон
У меня есть приложение .NET (не MVC или ASP.NET) (которое является плагином Excel), которое выполняет 1 вызов REST для данных (вызов REST являетсязащищенные ресурсы - требуется аутентифицированный пользователь).В настоящее время этот плагин Excel аутентифицируется с помощью бэкэнда REST, используя обычную аутентификацию (с полями ввода имени пользователя / пароля).Пользователи проходят проверку подлинности в домене Windows.
Проблема
Я хочу избавиться от ввода имени пользователя / пароля и начать использовать SAML2 для обеспечения единой регистрации для этих пользователей..из этого приложения .NET.
Вопрос 1. Можно ли выполнить проверку подлинности SAML2 на стороне клиента для моего приложения?
Какую инфраструктуру / библиотеку использовать?
Если это возможно (я надеюсь, что это так ...), я нашел эту информацию:
"Нет, это официальная клиентская часть C #стек протоколов ", но существуют различные сторонние библиотеки, которые реализуют SAML2", но, похоже, все они ориентированы на ASP.NET.
- Sustainsys.Saml2
- OneLogin
- AspNetSaml
- ITfoxtec
Я пробовал несколько библиотек, но все они, кажется, хотят перенаправить пользователя (в браузере - который я не использую в приложении) наконкретная конечная точка.
Я не гуру .NET, поэтому, если это возможно, любая библиотека с четким примером / tutorial был бы очень признателен.
Followup 2018-12-13
Таким образом, настоящая проверка подлинности SAML возможна только при включении WebBrowserControl в пользовательскую панель вэто приложение Excel надстройки.Этот WebBrowserControl будет обрабатывать согласование SAML (включая отслеживание всех перенаправлений и т. Д.).Однако я только заметил, что при обращении к URL-адресу, который запускает проверку подлинности SAML в Firefox (с пустыми доверенными URI NTLM), появляется всплывающее окно проверки подлинности.Когда я ввожу свои учетные данные, я аутентифицируюсь.
Вопрос 2
Могу ли я выполнить согласование SAML в бэкэнде .NET без WebBrowserControl, но с помощьюпредоставить имя пользователя и пароль, которые у меня все еще есть в моем графическом интерфейсе?Могу ли я установить правильные заголовки в какой-то момент процесса?Если да, то как?