IdentityServer4 和外部检查用户

IdentityServer4 and external check user

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

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

调用示例: enter image description here

我不知道我是否很好地理解 IdentityServer 的想法,但总的来说我认为这不是我的情况的好解决方案......现在我明白我可以将用户存储在数据库中但只能在 IdentityServer 中使用 Asp.Identity .

你怎么看这个案例?

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

简短的回答是,IdentityServer4 只是 OpenID Connect 协议的一个实现,用户的持久性和身份验证是完全可定制的,因此您可以自由地以任何您喜欢的方式实现它。

至于将用户保留在哪里 - 这将取决于您的问题域和业务规则,但我可能会尽可能避免使用多个数据库,而是将现有用户从遗留应用程序迁移到您的身份服务自己的商店并注意 带来身份和身份验证信息,而不是访问 control/authorization 信息。即在您的客户端应用程序和 API 中保留授权逻辑。