Kerberos与System.DirectoryServices.Protocol(C#)连接

时间:2012-01-09 15:49:08

标签: c# ldap kerberos directoryservices

我想将c#(System.DirectoryServices.Protocol命名空间)应用程序连接到外部域/域中的LDAP服务器。我在Active Directory域中。对于外部领域,定义了一个传入信任(在我的Windows域中)。

我想与我的Windows用户和kerberos进行认证。我不想输入用户名/密码。

如果我尝试连接到外部域的LDAP服务器,则不会生成kerberos票证(kerbtray.exe)。

代码如下所示:

LdapDirectoryIdentifier ldap_id = new LdapDirectoryIdentifier(
                                                host, 
                                                Int32.Parse(port), 
                                                true, 
                                                false);
LdapConnection con = new LdapConnection(ldap_id);

con.AuthType = AuthType.Kerberos;
con.SessionOptions.Sealing = true;
con.SessionOptions.Signing = true;
con.SessionOptions.ProtocolVersion = 3;

con.Bind();

Die Bind抛出“不支持的身份验证类型”异常。

更新

在某些配置之后,绑定请求会发出协议错误。在wireshark日志中,我看到请求中没有凭据。也许缺少服务主体名称......

0 个答案:

没有答案