这是一个理论问题,但我会尽量详细说明。我已经阅读了一些关于oath2 / SSO实现的文档(我知道它们不一样) - 所以我需要超越手工波浪到实际的系统设计。所以我认为Oauth2实现应该是这样的。 核心设计涉及一堆微服务(我在这里称之为app),它们都使用相同的授权服务器。
据我所知,这些是auth服务器应该提供的终点。
授权服务器
- 应用注册的终点 - >一旦注册,应用程序将提供客户端ID和客户端密钥(这些基本上是永久性的 并且不要改变。
- 用户注册的端点 - >此请求应附带客户端ID和客户端密钥,以便授权服务器可以 将用户与应用相关联。
- 用户登录的终端 - >如果用户是授权用户,则向他/她提供访问令牌。
- 包含用户详细信息的端点 - >如果授权的应用程序(正确的客户端ID和密码)向授权用户发出请求(正确访问) 令牌)然后返回用户blob。
醇>资源服务器(App)
现在资源服务器可以拥有此基本用户数据 将JSON对象反序列化为自己的用户类,然后具有 一对一映射到user_address / user_location等。
这是我对Oauth2-SSO的理解。我非常感谢粗糙边缘的一些帮助。 TIA !!!
答案 0 :(得分:1)
我自己还没有实现oath2,但我使用的系统确实使用了它,你描述的内容似乎与我们使用的相同;
我们使用端点和客户端密钥和ID初始化客户端,然后使用我们用户的凭据获取令牌(如果用户/客户端凭据无效,则使用错误消息)。从那里我们使用应用程序的端点来调用我们的应用程序。从我可以看到我们的Oauth2方法似乎做你在你的问题中描述的,它应该是正确的。