gpt4 book ai didi

python - 使用 Python 的 SSO 的 SPNEGO(kerberos token 生成/验证)

转载 作者:太空狗 更新时间:2023-10-29 21:44:49 26 4
gpt4 key购买 nike

我正在尝试实现一个简单的单点登录方案,其中一些参与服务器将是 Windows (IIS) 框。看起来 SPNEGO 是一条合理的路径。

场景如下:

  • 用户使用他的用户名和密码登录到我的 SSO 服务。我使用某种机制对他进行身份验证。
  • 稍后用户想要访问应用程序 A。
    • 用户对应用程序 A 的请求被 SSO 服务拦截。 SSO 服务使用 SPNEGO 将用户登录到 App A:
      • SSO服务点击App A网页,得到“WWW-Authenticate: Negotiate”响应
      • SSO 服务代表用户生成“授权:协商 xxx”响应,响应 App A。用户现在已登录到 App A。
    • SSO 服务拦截后续用户对 App A 的请求,在将它们传递给 App A 之前将 Authorization header 插入其中。

听起来对吗?

我需要两件事(至少我现在能想到的):

  • 能够代表用户生成“授权:协商 xxx” token ,最好使用 Python
  • 在 Python 中验证“授权:协商 xxx” header 的能力(用于项目的后续部分)

最佳答案

这正是 Apple 对其 Calendar Server 所做的.他们有一个 python gssapi进程的 kerberos 部分的库,以实现 SPNEGO .

在 CalendarServer/twistedcaldav/authkerb.py 中查找服务器身份验证部分。kerberos 模块(这是一个 c 模块)没有任何有用的文档字符串,但 PyKerberos/pysrc/kerberos.py 具有所有函数定义。

这是 svn 中继的 url:
http://svn.calendarserver.org/repository/calendarserver/CalendarServer/trunk
http://svn.calendarserver.org/repository/calendarserver/PyKerberos/trunk

关于python - 使用 Python 的 SSO 的 SPNEGO(kerberos token 生成/验证),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/922805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com