我正在尝试使用非常标准的用户管理从现有应用程序设计微服务:具有身份验证和授权,并存储用户数据.
我在深化发展的授权服务器来管理用户认证和授权使用OAuth2的授权.另一方面,我必须存储用户的信息/个人资料.
问题:授权服务器应该管理:
/me获取当前用户,也/users让用户的完整列表./me与用户相关的API,用户微服务会公开/users吗?第一种解决方案稍微简单一点,但授权服务器将变得不那么通用(更少可重用),因为用户应用程序数据模型将成为其一部分(User表的数据库数据模型).
另一个要求是授权服务器应该在授权之前检查用户是否存在.
没有用户自动创建,管理员必须邀请用户才能访问.有了这个要求,第一个解决方案很简单,因为授权服务器可以访问用户数据库,但第二个解决方案授权服务器暗示:
User表(可以重命名Account),管理员不会在用户服务上创建用户,而只在授权服务器上创建用户帐户我认为1.解决方案已经出来但有关于2.和3的任何建议?
3.首先似乎是最好的,但如果我想切换到另一个授权服务器,例如Google,Github,Facebook等公共服务器(OAuth2)......安全性可能会受到影响,因为我们无法控制用户帐户创建.
任何反馈?
小智 -1
这里有多个选项,因此请提供更多详细信息。例如,您可以使用现成的授权服务器实现(开源)吗?你基于什么技术?
我能够轻松集成 IdentityServer ( https://github.com/IdentityServer/IdentityServer3 ),并通过几个接口的简单实现将其插入自己的“用户”服务中。它还可以为您处理数据库工作(存储 OAuth 2.0 的所有数据,例如具有秘密、身份验证代码等的客户端)。IdentityServer 允许您提供自己的链接来为用户提供“注册”操作,您还可以让管理员接受或拒绝注册,因此只有接受的用户才能登录。
一般来说 - 按照 RFC OAuth2.0 的要求实现授权服务(有关详细信息,请参阅https://www.rfc-editor.org/rfc/rfc6749)从来都不是小菜一碟。而是在需要时使用经过验证的解决方案。
问候!
| 归档时间: |
|
| 查看次数: |
1179 次 |
| 最近记录: |