【发布时间】:2009-05-28 19:40:12
【问题描述】:
我正在尝试实现一个简单的单点登录方案,其中一些参与的服务器将是 Windows (IIS) 框。看起来 SPNEGO 是一个合理的路径。
这是场景:
- 用户使用他的用户名和密码登录到我的 SSO 服务。我使用某种机制对他进行身份验证。
- 稍后用户想要访问应用程序 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 的后续请求,将 Authorization 标头插入其中,然后再将其传递给 App A。
- 用户对 App A 的请求被 SSO 服务拦截。 SSO 服务使用 SPNEGO 将用户登录到 App A:
听起来对吗?
我需要两件事(至少我现在能想到的):
- 能够代表用户生成“授权:协商 xxx”令牌,最好使用 Python
- 能够在 Python 中验证“Authorization: Negotiate xxx”标头(用于项目的后续部分)
【问题讨论】:
标签: python active-directory single-sign-on kerberos spnego