问题描述
由于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 (将#修改为@)