我试图实现一个简单的单点登录场景,其中一些参与的服务器将是Windows(IIS)服务器。看起来SPNEGO是一个合理的路径。
以下是场景:
- 用户使用用户名和密码登录我的SSO服务。我使用某种机制对他进行身份验证。 - 在以后的某个时间,用户想要访问App A。
- 用户对App A的请求被SSO服务拦截。 SSO服务使用SPNEGO登录用户到App A:
- SSO服务访问App A网页,获取“WWW-Authenticate:Negotiate”响应 - SSO服务代表用户生成“Authorization:Negotiate xxx”响应,响应App A。用户现在已登录到App A。
- SSO服务拦截后续用户对App A的请求,在将它们传递给App A之前插入Authorization标头。
这听起来正确吗?
我需要两件事情(至少我现在能想到的):
- 能够代表用户生成“Authorization:Negotiate xxx”令牌,最好使用Python - 能够在Python中验证“Authorization:Negotiate xxx”标头(用于项目的后续部分)
以下是场景:
- 用户使用用户名和密码登录我的SSO服务。我使用某种机制对他进行身份验证。 - 在以后的某个时间,用户想要访问App A。
- 用户对App A的请求被SSO服务拦截。 SSO服务使用SPNEGO登录用户到App A:
- SSO服务访问App A网页,获取“WWW-Authenticate:Negotiate”响应 - SSO服务代表用户生成“Authorization:Negotiate xxx”响应,响应App A。用户现在已登录到App A。
- SSO服务拦截后续用户对App A的请求,在将它们传递给App A之前插入Authorization标头。
这听起来正确吗?
我需要两件事情(至少我现在能想到的):
- 能够代表用户生成“Authorization:Negotiate xxx”令牌,最好使用Python - 能够在Python中验证“Authorization:Negotiate xxx”标头(用于项目的后续部分)