我正在尝试实现一个简单的单点登录方案,其中一些参与的服务器将是Windows(IIS)框.看起来SPNEGO是一条合理的道路.
这是场景:
- 用户使用他的用户名和密码登录我的SSO服务.我使用某种机制来验证他.
- 稍后用户想要访问App A.
- 用户对App A的请求被SSO服务拦截.SSO服务使用SPNEGO将用户登录到App A:
- SSO服务点击App A网页,获得"WWW-Authenticate:Negotiate"响应
- SSO服务代表用户生成"授权:协商xxx"响应,响应App A.用户现在登录到App A.
- SSO服务拦截后续用户对App A的请求,在将Authorization头传递给App A之前将其插入其中.
听起来不错吗?
我需要两件事(至少我现在能想到的):
- 能够代表用户生成"授权:协商xxx"令牌,最好使用Python
- 在Python中验证"授权:协商xxx"标头的能力(对于项目的后续部分)