我试图利用IdentityServer4进行身份验证和授权。我们已经设置了新的和现有的应用程序。
目前,我们有: -1个ReactJs应用程序-(没有身份验证,因为它是一个新应用程序),但是它将使用oidc-client使用隐式流 -1个相当老的Web窗体应用程序-可能会使用混合流(我仍然需要弄清楚) -2 .NetCore MVC Web应用程序-它们都将使用Hybrid Flow
WebForm和MVC应用程序都使用它们自己的Web服务与某个数据库进行对话,以验证用户凭据并让用户登录到应用程序。
最终,我们希望将用户从现有数据库迁移到单独的用户数据库。 IdentityServer还将利用这个新的用户数据库进行SSO + Api Authrization。
我正在考虑创建一个单独的api,仅用于用户身份验证(可能是aspNetIdentity作为webapi),并且IdentityServer4与该api通信以验证用户名/密码?看起来对吗?
我还应该如何配置IDServer4以使用Api进行身份验证而不是使用将直接与我的AspNewIdentity数据库对话的services.AddIdentityServer()。AddAspNetIdentity()?以及如何确定此api?我能找到任何样品吗?
答案 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是客户端的 授权。