Authentication 开发用于用户身份验证的登录WebApi,该API存储在active directory或数据库中

Authentication 开发用于用户身份验证的登录WebApi,该API存储在active directory或数据库中,authentication,asp.net-web-api,forms-authentication,windows-authentication,jwt,Authentication,Asp.net Web Api,Forms Authentication,Windows Authentication,Jwt,我有一个系统,它有两种类型的用户 内部用户。。。身份验证模式为“Windows”,它们保存在active directory中 外部用户。。。身份验证模式为“表单”,通常保存在数据库AspNetUsers表中 我必须开发一个LoginApi,它接收用户名和密码,然后验证用户是内部用户还是外部用户。此Api将由第三方(iPad)使用 我建议的解决办法是 我不知道,这个主意行吗?还有其他更简单的解决方案吗 我在谷歌上搜索了很多,但所有的结果都在附近 基于纯令牌的身份验证 基于纯表单的身份验证 纯

我有一个系统,它有两种类型的用户

  • 内部用户。。。身份验证模式为“Windows”,它们保存在active directory中
  • 外部用户。。。身份验证模式为“表单”,通常保存在数据库AspNetUsers表中
我必须开发一个LoginApi,它接收用户名和密码,然后验证用户是内部用户还是外部用户。此Api将由第三方(iPad)使用

我建议的解决办法是

我不知道,这个主意行吗?还有其他更简单的解决方案吗

我在谷歌上搜索了很多,但所有的结果都在附近

  • 基于纯令牌的身份验证
  • 基于纯表单的身份验证
  • 纯基于Windows的身份验证

  • 没有什么能完全满足我的需要!请尽可能详细地支持我。

    这是我如何为我目前正在从事的项目的后台和前端站点做到这一点的。面向字体使用表单身份验证后台使用广告,我有一个额外的web api供第三方开发人员连接,链接回他们面向前端的帐户。@Nkosi:太好了!我已经实现了SearchInActiveDirectory和SearchInDatabase都是bool方法,但是在收到一个true之后,我该怎么办呢?我的想法是调用RSAGenerator.GenerateToken()并将其发送给用户,这是我的方法,我走对了吗?!对我生成我的JWT,进行审计等等,然后在响应中返回。我的自定义
    类BackOfficeTokenAuthenticationAttribute:AuthorizeAttribute、IAAuthenticationFilter
    类FrontOfficeAuthorizeAttribute:AuthorizeAttribute
    在此之后对来自客户端的调用进行身份验证/授权。目前我使用短期令牌。当他们试图在令牌过期后刷新令牌时,我会检查我在db中跟踪的所有令牌的安全时间戳。如果jti在revoke表中,则不会发布新的令牌。Backoffice=>internal,customer=>External这是我对当前正在处理的项目的后台和前端站点所做的操作。面向字体使用表单身份验证后台使用广告,我有一个额外的web api供第三方开发人员连接,链接回他们面向前端的帐户。@Nkosi:太好了!我已经实现了SearchInActiveDirectory和SearchInDatabase都是bool方法,但是在收到一个true之后,我该怎么办呢?我的想法是调用RSAGenerator.GenerateToken()并将其发送给用户,这是我的方法,我走对了吗?!对我生成我的JWT,进行审计等等,然后在响应中返回。我的自定义
    类BackOfficeTokenAuthenticationAttribute:AuthorizeAttribute、IAAuthenticationFilter
    类FrontOfficeAuthorizeAttribute:AuthorizeAttribute
    在此之后对来自客户端的调用进行身份验证/授权。目前我使用短期令牌。当他们试图在令牌过期后刷新令牌时,我会检查我在db中跟踪的所有令牌的安全时间戳。若jti在revoke表中,则不会发布新令牌。后台=>内部,客户=>外部