在 Windows 从 Python 访问 SPNEGO 认证的网络服务
Accessing SPNEGO authenticated web service from Python on Windows
我正在尝试从 Windows 上的 Python 应用程序访问使用 Kerberos 身份验证(公司内部)的 REST 服务。但是,似乎该服务被配置为仅当我尝试使用 requests-kerberos 进行连接时才需要 SPNEGO,如下所示:
requests.get('servicename', auth=HTTPKerberosAuth())
它从服务器产生 500 错误:
javax.servlet.ServletException: GSSException: No credential found for: 1.2.840.113554.1.2.2
我的猜测是服务器配置为仅期望 SPNEGO,并且 Python 客户端仅支持 Kerberos。
我已经尝试安装 PyKerberos 但失败了,因为它需要在系统上安装 krb5,而我是在 Windows 下安装的。是否有可用的库可以帮助我在 Windows 中从 Python 进行 SPNEGO 调用?
以防其他人遇到类似问题 - 通过使用带有 pycurl.HTTPAUTH_GSSNEGOTIATE 属性集的 pycurl 解决。
我正在尝试从 Windows 上的 Python 应用程序访问使用 Kerberos 身份验证(公司内部)的 REST 服务。但是,似乎该服务被配置为仅当我尝试使用 requests-kerberos 进行连接时才需要 SPNEGO,如下所示:
requests.get('servicename', auth=HTTPKerberosAuth())
它从服务器产生 500 错误:
javax.servlet.ServletException: GSSException: No credential found for: 1.2.840.113554.1.2.2
我的猜测是服务器配置为仅期望 SPNEGO,并且 Python 客户端仅支持 Kerberos。
我已经尝试安装 PyKerberos 但失败了,因为它需要在系统上安装 krb5,而我是在 Windows 下安装的。是否有可用的库可以帮助我在 Windows 中从 Python 进行 SPNEGO 调用?
以防其他人遇到类似问题 - 通过使用带有 pycurl.HTTPAUTH_GSSNEGOTIATE 属性集的 pycurl 解决。