IdentityServer4和外部检查用户

时间:2018-09-11 09:36:01

标签: identityserver4 identityserver3

我正在搜索有关身份验证的解决方案。 我发现了IdentityServer,我试图了解它的工作原理。 就我而言,我需要检查用户是否存在于另一个应用程序中。 我在asp.net web froms中创建了一个旧项目,并且该项目有一个存储在db中的用户集合。 现在,我必须创建将被调用到WebApi的客户端,并且在此WebApi中,我需要对用户进行身份验证。我想使用IdentityServer4做到这一点。我可以在IdentityServer中调用我的旧应用程序或此应用程序的数据库,并通过自定义方法检查用户吗?

将来,我想将另一个应用程序连接到IdentityServer,并且此新应用程序应该在IdentityServer中具有用户,因此我将在两个地方拥有两个应用程序的用户。我需要确保可以通过两种方式检查用户是否存在。 当请求形成新应用程序时,IdentityServer应该检查其数据库中的用户,如果请求来自将调用旧应用程序的客户端的用户,则应在外部应用程序(db)中检查该用户。

示例调用: enter image description here

我不知道我对IdentityServer的想法了解得很好,但是总的来说,我认为这不是解决我的问题的好方法...目前,我了解我可以将用户存储在数据库中,而只能使用IdentityServer中的Asp.Identity。 >

您如何看待这种情况?

将来,我想将另一个应用程序连接到IdentityServer,并且此新应用程序应该在IdentityServer中具有用户,因此我将在两个地方拥有两个应用程序的用户。我需要确保可以通过两种方式检查用户是否存在。 当请求来自新应用程序时,IdentityServer应在其数据库中检查用户,如果请求来自将调用旧应用程序的客户端,则应在外部应用程序(db)中检查该用户。

1 个答案:

答案 0 :(得分:1)

简短的答案是IdentityServer4只是OpenID Connect协议的一种实现,并且用户的持久性和身份验证是完全可自定义的,因此您可以自由地以自己喜欢的任何方式来实现。

关于保留用户的位置-这将取决于您的问题域和业务规则,但我可能会尝试避免使用多个数据库(如果可能),而是将现有用户从旧版应用程序迁移到您的身份服务自己的商店中,并采用请注意带来身份和认证信息,而不访问控制/授权信息。即将授权逻辑保留在客户端应用程序和API中。