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

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

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

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

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

Я думаю так:

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

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

...