具有ApacheDs kdc的InitializeSecurityContext(Kerberos)C ++客户端

时间:2017-04-05 07:57:50

标签: c++ windows kerberos sasl sspi

我试图在Windows C ++客户端和java服务器之间进行SASL身份验证。在客户端,我正在做:

AcquireCredentialsHandle(NULL, "Kerberos", SECPKG_CRED_OUTBOUND, NULL,
                         &credentials, NULL, NULL, &hCred, &tsExpiry);
scRet = InitializeSecurityContext(&hCred, NULL, targetName,
                                  ISC_REQ_ALLOCATE_MEMORY, 0,
                                  SECURITY_NATIVE_DREP, NULL, 0,
                                  hContext, &OutBuffer,
                                  &dwSSPIOutFlags, &tsExpiry);

使用:

credentials = ("myuser","mypassword", "MYDOMAIN.ORG")
targetName = "myservice/node0"

该域与Windows客户端域无关。

我目前得到的结果是:

scRet = SEC_E_NO_AUTHENTICATING_AUTHORITY

我知道InitializeSecurityContext的kerberos实现应该联系ApacheDS kdc并要求一张票,所以我认为这里要解决的第一个问题是:inizialize函数如何发现kdc服务器的主机名和端口(这些是localhost:6088顺便说一下)?

我尝试使用ksetup:

ksetup /AddKdc MYDOMAIN.ORG localhost:6088

但没有运气。

0 个答案:

没有答案