Я пытаюсь разработать концепцию поддержки нескольких методов аутентификации в среде главного сервера ASP.NET, которая должна поддерживать как клиенты Windows (WPF), так и веб-клиенты (Angular). Пользователи должны иметь возможность войти в систему тремя способами:
- с использованием имени пользователя и пароля, который сверяется с базой данных действительных логинов
- с использованием аутентификации Windows (т. Е. Зарегистрированного пользователя). Для этого может потребоваться, чтобы пользовательский ПК и сервер находились в одной сети / домене
- с использованием выбранных внешних поставщиков аутентификации, таких как Google
Пользователи должны иметь индивидуальные права (претензии), которые вытекают из их индивидуального профиля или членства в группе (например, в случае AD).
Я все еще на этапе разработки концепции, пытаясь выяснить основы здесь, поэтому код еще не написан.
Я думаю так:
- пользователи, входящие в систему с использованием имени пользователя и пароля, получают токен (JWT), который затем разрешает им доступ к защищенным / запрещенным вызовам.
- пользователи, входящие в систему под своей учетной записью Windows, в основном получают тот же токен
- пользователи, входящие в систему через внешних аутентификационных провайдеров, получают внешний токен от провайдера и используют его для входа в систему, а также получают токен с сервера
- независимо от 1-3, пользователи получают выданный сервером токен, который дает им доступ к ограниченным функциям
Это общий / правильный подход для смешанной аутентификации? Если так, как это будет реализовано на стороне главного сервера ASP.NET?