通过带有Web和Windows客户端的ASP.NET核心支持多种身份验证方法

时间:2019-03-13 09:26:53

标签: c# asp.net authentication

我正在尝试开发一种概念,以在ASP.NET核心服务器环境中支持多种身份验证方法,该环境应同时支持Windows(WPF)客户端和Web客户端(Angular)。用户应该能够使用以下三种方法登录:

  1. 使用用户名和密码,并根据有效登录数据库进行检查
  2. 使用Windows身份验证(即当前登录的用户)。这可能要求用户PC和服务器位于同一网络/域上
  3. 使用选定的外部身份验证提供程序,例如Google

用户应具有个人权利(声明),这些权利可以来自其个人资料或组成员身份(例如,在AD的情况下)。

我仍处于概念阶段,试图在这里弄清楚基础知识,因此尚未编写任何代码。

我的想法如下:

    使用用户名和密码登录的
  1. 用户会收到某种令牌(JWT),然后授权他们访问受保护的/受限制的呼叫。
  2. 使用Windows身份登录的用户基本上会收到相同的令牌
  3. 通过外部身份验证提供者登录的
  4. 用户将从提供者处接收外部令牌,并使用该令牌登录,并从服务器中获取令牌
  5. 不管是1-3,用户最终都会获得服务器发行的令牌,从而可以访问受限功能

这是混合身份验证的常用/正确方法吗?如果是这样,该如何在ASP.NET核心服务器端实现?

0 个答案:

没有答案