IdentityServer和用户管理-这些问题应该分开吗?

问题描述

由于IdentityServer的目标是通过实现OIDC和OAuth2提供身份验证和授权,所以对我来说有意义的是,用户管理(CRUD操作)是单独完成的,也许是在自己的程序集中进行的(这似乎是两个不同的问题)。

在生产场景中,如何将这两个问题分开?我在这里看到两个常规选项:

  • 有一个单独的身份证明程序(ASP.NET Identity Core)项目/解决方案,该项目/解决方案公开了一个API,用于在其存储中创建,更新和删除用户实体。身份验证用户时,IdentityServer会调用此API。
  • 用户CRUD操作端点位于IdentityServer的宿主项目中。 IdentityServer可以直接访问身份提供者数据库的DbContext并实现所有必要的用户管理操作。

第二种方法显然更易于实现,但是我认为,如果CRUD用户操作的功能发生变化,可能意味着不必要地重新部署了auth服务器。

还有诸如忘记密码,电子邮件验证之类的功能。合适的地方在哪里?通过IdentityServer或单独的IdentityProvider(以及IdentityServer调用其API)。

关于此,我已经看到了几个StackOverflow问题,但是我找不到一个合理的示例或合理的推理,所有内容都被模糊地描述了。

P.S IdentityProvider将是ASP.NET Identity Core

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)