Поддержка нескольких методов аутентификации с ASP.NET ядро с веб-клиентами и Windows

#c# #asp.net #authentication

#c# #asp.net #аутентификация

Вопрос:

Я пытаюсь разработать концепцию поддержки нескольких методов аутентификации в ASP.NET серверная среда Core, которая должна поддерживать как клиенты Windows (WPF), так и веб-клиенты (Angular). Пользователи должны иметь возможность входить в систему с помощью трех методов:

  1. использование имени пользователя и пароля, которые проверяются по базе данных действительных логинов
  2. использование проверки подлинности Windows (т. Е. текущего пользователя, вошедшего в систему). Для этого может потребоваться, чтобы компьютер пользователя и сервер находились в одной сети / домене
  3. использование выбранных внешних поставщиков аутентификации, таких как Google

Пользователи должны иметь индивидуальные права (претензии), которые либо вытекают из их индивидуального профиля, либо из членства в группе (например, в случае AD).

Я все еще нахожусь на этапе разработки концепции, пытаясь разобраться в основах, поэтому код еще не написан.

Мое мышление заключается в следующем:

  1. пользователи, входящие в систему с использованием имени пользователя и пароля, получают какой-либо токен (JWT), который затем разрешает им доступ к защищенным / ограниченным вызовам.
  2. пользователи, входящие в систему с использованием своего удостоверения Windows, в основном получат один и тот же токен
  3. пользователи, входящие в систему через внешних поставщиков аутентификации, получат внешний токен от поставщика и будут использовать его для входа в систему, а также получат токен от сервера
  4. независимо от 1-3, пользователи в конечном итоге получают выпущенный сервером токен, который предоставляет им доступ к ограниченным функциям

Является ли это распространенным / правильным подходом для смешанной аутентификации? Если да, то как это будет реализовано на ASP.NET серверная часть core?

Комментарии:

1. Лучше всего использовать IdentityServer4, он имеет OpenID, а также позволит подключаться напрямую, предоставляя имя пользователя и пароль, если вы не хотите сначала перенаправлять пользователя в браузер, хотя не уверены в подлинности Windows

2. концепция, которую вы хотите исследовать, вероятно, «федеративная идентификация»