asp.net - IdentityServer4 与 ASP.Net 身份项目架构
问题描述
我正在研究实现 OpenID 和 Oauth2 的 RESTful API。IdentityServer4 提供了两者并且完美运行,但是几乎所有示例和教程都在内存测试用户中使用
我一直在努力理解如何使用数据库实现 IdentityServer4,同时拥有某种允许创建和管理用户帐户的服务。
我很困惑注册和帐户管理服务应该发生在 IdentityServer4 本身还是其他地方,在不同的项目上。
我一直试图在一个项目中将 IdentityServer4 与 ASP.NET Identity 结合在一起,但是我不知道这种方法是否正确。
实现 IdentityServer4 和 ASP.Net Identity 的架构会是什么样子?我应该创建 2 个单独的项目,一个用于 IdentityServer4,另一个用于 ASP.Net Identity,还是应该尝试将两者结合起来?
解决方案
这真的归结为您的要求。ASP.Net Identity 实现了很多样板文件,有助于快速启动和运行,并且与 IDS4 很好地集成。我们在我们的实现中使用了它,但最终对其进行了很多定制,所以我建议如果您的要求与它提供的开箱即用的内容有很大不同,从长远来看,拥有这种额外的依赖关系可能会更痛苦。
在我看来,将您的身份服务器视为拥有自己的数据(用户、客户端、持久授权等)并公开任何需要的 API 以从外部管理所述实体的自包含(微)服务是有意义的。IDS4 没有规定或特别关心您如何进行用户身份验证或如何存储数据,因此您可以自由地以任何您喜欢的方式实施。
您对数据库有偏好吗?它将如何部署?
推荐阅读
- android - 在 android 上安装应用程序后,onInstallConversionData 不会调用
- ssl - 保护 Kafka 客户端和 Zookeeper 服务器之间的通信
- javascript - 在异步函数中过滤数组中的元素
- django - 我的样式表和图像不适用于带有参数的 Jinja2 模板 - Django
- r - 如何在 R 中创建季度数据
- stripe-payments - 使用异步 3DS 付款和 webhook 进行订单确认
- java - Apache Tika 解析器字符限制异常
- kubernetes - Kubernetes 使用动态环境变量扩展 pod
- python - 如何使用python从excel中读取许多列
- powershell - 如何在 Powershell 中将自定义数据添加为计算属性