我试图从一个相当标准的用户管理的现有应用程序设计微服务:有认证和授权,并存储用户数据。授权和用户微服务设计
我的深化发展授权服务器来管理用户使用OAuth2
作为授权认证和授权。另一方面,我必须存储用户的信息/配置文件。
问:应该授权服务器管理:
- 授权和用户API?因此,其他微服务可以联系授权服务器在
/me
获得当前用户,但也/users
获得用户的完整列表。 - 或者只有授权和我必须创建用户微服务?因此授权服务器只公开
/me
与用户相关的API和用户微服务将公开/users
?
第一个解决方案是简单一点但授权服务器会变少通用的(可重复使用的少),因为用户应用数据模式将它(User
表的数据库中的数据模型)的一部分。
另一项要求是授权服务器如果用户授权它之前就存在应检查。
没有用户自动创建,必须由管理员邀请用户访问。 关于该要求,第一个解决方法很简单,因为授权服务器访问用户数据库,但第二个解决方案授权服务器意味着:
- 共享数据库用户服务(哼哼不喜欢这样)
- 呼叫用户服务使用授权REST API(例如)前
- 授权服务器应mainta在最小
User
表(可以改名Account
)和管理员将无法创建用户在用户服务但授权服务器
我觉得解决方案是出在只有用户帐户,但有关任何建议2。和3.?
3.在首位似乎是最好的,但如果我想切换到另一个授权服务器,例如一公共(OAuth2用户)如谷歌,Github上,脸谱等..安能妥协,因为我们无法控制用户帐户的创建。
有没有反馈意见?
您如何管理身份验证? –
外部服务(基于CAS)负责认证。但我不是这项服务的拥有者。但是,您可以简单地通过使用基于数据库用户信息的基本表单身份验证 – Kakawait