Authentication 自动和手动验证广告用户-WebAPI 2服务器和SPA客户端

Authentication 自动和手动验证广告用户-WebAPI 2服务器和SPA客户端,authentication,asp.net-web-api,active-directory,asp.net-web-api2,single-page-application,Authentication,Asp.net Web Api,Active Directory,Asp.net Web Api2,Single Page Application,我正在使用WebAPI 2 RESTful服务器和SPA web客户端(Angular2)开发一个企业/互联网应用程序,因此我有两个使用ASP.NET 4.6空模板创建的独立项目,它们都使用OWIN和IIS托管 认证的要求是: 登录到工作站的Active Directory用户在浏览器中从应用程序打开任何页面后,如果在数据库中找到用户id/名称,将自动进行身份验证,而无需输入她的用户/pass。将其命名为自动登录。否则,如果在数据库中找不到它,它将重定向到登录页面 此外,还应该有一个注销选项,它

我正在使用WebAPI 2 RESTful服务器和SPA web客户端(Angular2)开发一个企业/互联网应用程序,因此我有两个使用ASP.NET 4.6空模板创建的独立项目,它们都使用OWIN和IIS托管

认证的要求是:

  • 登录到工作站的Active Directory用户在浏览器中从应用程序打开任何页面后,如果在数据库中找到用户id/名称,将自动进行身份验证,而无需输入她的用户/pass。将其命名为自动登录。否则,如果在数据库中找不到它,它将重定向到登录页面
  • 此外,还应该有一个注销选项,它会在用户注销后将用户重定向到登录页面
  • 在登录页面中,任何AD用户都可以输入她/他的AD用户并通过,在成功检查数据库(存在)和AD(有效凭证)后,她/他将登录到系统(显然,它可能不同于当前登录到工作站的用户)
  • 除了web客户端,它还将拥有其他客户端,如移动应用程序,这些客户端将连接WebAPI后端并由其提供服务。用户也将使用他们的广告用户&pass登录到那里。将其命名为手动登录。
  • 根据REST架构,将广告企业和互联网/移动用户放在一起,身份验证应该是基于令牌的——这是我到目前为止发现的,但我不确定

    我阅读了关于OWIN身份验证体系结构和Windows身份验证的内容,并进行了检查,现在我认为它是最适合此要求的解决方案,因为它允许应用程序定义的用户与Windows/AD用户并行进行身份验证。但即使在深入研究它和它之后,我仍然没有找到我的路,并且感到困惑

    有人能帮忙吗

  • 我应该在WebApi服务器和SPA客户端上做些什么来满足这些身份验证要求

  • 我应该添加哪些中间件以及如何配置/操作它们

    UseCookieAuthentication

    使用外部签名确认

    使用OAuthBealerTokens

  • 我可以仅仅依靠承载令牌(使用OAuthBealerTokens MW)并为经过身份验证的windows用户获得相同的令牌来统一基于承载令牌的身份验证模型吗?如果是,怎么做

  • 我应该如何以及在何处放置代码以检查数据库中是否存在AD用户,如果不存在,则拒绝验证

  • 非常感谢