IdentityServer4和单独的用户身份验证API

时间:2018-10-22 11:52:25

标签: c# asp.net-web-api asp.net-core identityserver4

我试图利用IdentityServer4进行身份验证和授权。我们已经设置了新的和现有的应用程序。

目前,我们有:  -1个ReactJs应用程序-(没有身份验证,因为它是一个新应用程序),但是它将使用oidc-client使用隐式流  -1个相当老的Web窗体应用程序-可能会使用混合流(我仍然需要弄清楚)  -2 .NetCore MVC Web应用程序-它们都将使用Hybrid Flow

  • 我们要使用IDS4保护很少的apis项目。

WebForm和MVC应用程序都使用它们自己的Web服务与某个数据库进行对话,以验证用户凭据并让用户登录到应用程序。

最终,我们希望将用户从现有数据库迁移到单独的用户数据库。 IdentityServer还将利用这个新的用户数据库进行SSO + Api Authrization。

我正在考虑创建一个单独的api,仅用于用户身份验证(可能是aspNetIdentity作为webapi),并且IdentityServer4与该api通信以验证用户名/密码?看起来对吗?

我还应该如何配置IDServer4以使用Api进行身份验证而不是使用将直接与我的AspNewIdentity数据库对话的services.AddIdentityServer()。AddAspNetIdentity()?以及如何确定此api?我能找到任何样品吗?

2 个答案:

答案 0 :(得分:0)

我不得不做这样的事情,我发现这些有用的

http://docs.identityserver.io/en/release/quickstarts/1_client_credentials.html http://docs.identityserver.io/en/release/quickstarts/2_resource_owner_passwords.html

我用它来保护来自Asp Identity的用户的api。

希望有帮助。

答案 1 :(得分:0)

IdentityServer4并不能真正使用户开箱即用。仅存在ASP.Net Identity集成,以使您快速启动并运行。如果您想实现自己的用户存储并登录/注销/上载流程,那么您完全可以随意执行此操作。

也就是说,我很喜欢让IDP拥有自己的数据-即用户及其凭据。在不将身份验证和授权混合在一起的情况下,这有助于您直截了当。 OAuth中的Auth是客户端的 授权。