您描述的此模型是一种信任托管形式,其中多个客户端信任第三方来处理用户身份验证。
请参阅Kerberos分布式安全系统。
Kerberos协议及其Web应用程序实现Stanford WebAuth与您描述的相比具有一些优势:
如果您不需要完整的Kerberos身份验证(实现起来很复杂),我会鼓励这样的模型:
这是一种基本的身份验证令牌协议。它在几个方面存在缺陷,但仍然比发送用户密码更好。
这种安排也有效: 您可以将所有请求重定向到服务器A,B和C,首先只将服务器A重定向到服务器A,因为它具有您的所有用户相关数据。现在,一旦请求已经过身份验证(您希望使用哪种方法),并且在业务逻辑中,您需要在服务器之间进行INTERNAL调用。为此,您可以使用在每个服务器上创建部署时的内部用户,并将其授权令牌存储在钱包中。 从钱包中获取此内部用户的身份验证令牌并启动呼叫,其他服务器将授权用户。 注意:如果您需要执行此操作的实际用户,则无法从Auth Token派生该信息,因为该令牌属于内部用户。在这种情况下,您可以在http授权标头中传递当前登录的用户名。