我在RHEL上尝试了下面的代码,它的工作效果非常好。在Linux上我只需要获取Kerberos票证。
mport ldap
import ldap.sasl
conn=ldap.initialize('ldap://auto.test-auto.com',trace_level=2)
conn.set_option(ldap.OPT_PROTOCOL_VERSION, ldap.VERSION3)
conn.set_option(ldap.OPT_REFERRALS,0)
sasl = ldap.sasl.gssapi()
conn.sasl_interactive_bind_s('', sasl)
然后我将同样的东西复制到安装了ActivePython-2.7“,”python-ldap-2.4.10“,”openssl-0.9.8o“,”setup-sasl-1.5.27“的windows 2k3服务器上。
Traceback (most recent call last):
File "C:\susanta\test-sasl.py", line 10, in <module>
conn.sasl_interactive_bind_s('', sasl)
File "C:\Python27\lib\site-packages\ldap\ldapobject.py", line 229, in sasl_interactive_bind_s
return self._ldap_call(self._l.sasl_interactive_bind_s,who,auth,RequestControlTuples(serverctrls),RequestControlTuples(clientctrls),sasl_flags)
File "C:\Python27\lib\site-packages\ldap\ldapobject.py", line 99, in _ldap_call
result = func(*args,**kwargs)
LOCAL_ERROR: {'desc': 'Local error'}
有人可以帮助我吗?
答案 0 :(得分:0)
您使用Cyrus SASL作为后端吗?如果是这样的话,它会针对麻省理工学院或海姆达尔进行编辑。您无权访问TGT。搜索注册表项:session key tgt。 但是如果您使用GSS-API,Cyrus SASL在Windows上并不可用,除非您尝试使用Kerberos for Windows。