我的工作站具有Ubuntu OS 18.04。我在Qt项目中使用OpenLDAP-2.4.47中的ldapcpp库在MS ActiveDirectory服务器上进行授权。该代码可以正常工作。
LDAPControlSet* ctrls=new LDAPControlSet;
ctrls->add(LDAPCtrl(LDAP_CONTROL_MANAGEDSAIT));
cons->setServerControls(ctrls);
LDAPConnection *lc=new LDAPConnection("dc.mydomen.local",389);
lc->setConstraints(cons);
lc->bind("CN=username,OU=Programmer,OU=IVO,DC=mydomen,DC=local", "password",cons);
我的工作站在域中。
username@kubuntuit01:~$ sudo net ads testjoin
Join is OK
username@kubuntuit01:~$ sudo net ads keytab list
Vno Type Principal
2 des-cbc-crc HOST/kubuntuit01.mydomen.local@MYDOMEN.LOCAL
2 des-cbc-crc HOST/KUBUNTUIT01@MYDOMEN.LOCAL
2 des-cbc-md5 HOST/kubuntuit01.mydomen.local@MYDOMEN.LOCAL
2 des-cbc-md5 HOST/KUBUNTUIT01@MYDOMEN.LOCAL
2 aes128-cts-hmac-sha1-96 HOST/kubuntuit01.mydomen.local@MYDOMEN.LOCAL
2 aes128-cts-hmac-sha1-96 HOST/KUBUNTUIT01@MYDOMEN.LOCAL
2 aes256-cts-hmac-sha1-96 HOST/kubuntuit01.mydomen.local@MYDOMEN.LOCAL
2 aes256-cts-hmac-sha1-96 HOST/KUBUNTUIT01@MYDOMEN.LOCAL
2 arcfour-hmac-md5 HOST/kubuntuit01.mydomen.local@MYDOMEN.LOCAL
2 arcfour-hmac-md5 HOST/KUBUNTUIT01@MYDOMEN.LOCAL
但是我无法使用使用以下代码的saslbind方法进行连接:
LDAPAsynConnection * sas;
sas = new LDAPAsynConnection();
sas->init("dc.mydomen.local",389);
sas->saslBind("KERBEROS","uid=HOST/KUBUNTUIT01,cn=VIVEYA.LOCAL,cn=gssapi,cn=auth",cons);
或
sas->saslBind("GSSAPI","uid=HOST/KUBUNTUIT01,cn=VIVEYA.LOCAL,cn=gssapi,cn=auth",cons);
在调试器的调试模式下,消息字符串包含以下文本:“ 80090308:LdapErr:DSID-0C0904DC,注释:AcceptSecurityContext错误,数据57,v1db1 ”。我尝试了不同的授权选项,但我不知道下一步该怎么做。
谢谢