【问题标题】:Oracle & Active Directory : A love/hate relationshipOracle 和 Active Directory:爱恨交织的关系
【发布时间】:2011-02-02 04:24:58
【问题描述】:

我目前正在尝试通过 Pl/Sql (Oracle) 中的 dbms_ldap API 访问 Active Directory。问题是我无法使用自己的用户名和密码或任何方式连接。

但是,在 C# 中,我可以使用此代码匿名连接:

DirectoryEntry ldap = new DirectoryEntry("LDAP://Hostname");
DirectorySearcher searcher = new DirectorySearcher(ldap);
searcher.Filter = "(SAMAccountName=username)";
SearchResult result = searcher.FindOne();

如果我尝试在 Oracle 中匿名连接,我只会在尝试搜索时收到错误(ORA-31202 : LDAP 客户端/服务器错误)(并且绑定的结果代码是成功)...

my_session := dbms_ldap.init('HOST','389');
retval := dbms_ldap.simple_bind_s(my_session, '', '');
retval := dbms_ldap.search_s(my_session, ldap_base,  dbms_ldap.scope_subtree, 'objectclass=*', my_attrs, 0, my_message);

为什么匿名连接在 C# 中有效但在 Pl/Sql 中无效?您有其他通过 Oracle 连接到 Active Directory 的想法吗?

帮我把他们团聚在一起。
谢谢。

编辑 1
当我使用匿名凭据绑定时,我得到:

ORA-31202:DBMS_LDAP:LDAP 客户端/服务器错误
00000000:LdapErr:DSID-0C090627, 注释:为了执行此操作,必须在 >connection

上完成成功的绑定

如果我尝试使用我的凭据进行连接,这些凭据应该是有效的,因为我已使用它连接到域...我得到:

ORA-31202: DBMS_LDAP: LDAP 客户端/服务器错误 凭据无效
80090308:LdapErr:DSID-0C090334, 评论:AcceptSecurityContext 错误

有没有可能是 Active Directory 不允许像这些外部 LDAP 操作?

编辑 2
看看 C# 中的“结果”变量,我得到了“路径”属性的这个值:
LDAP://SERVER_OR_DOMAIN/CN=LAST_NAME\,FIRST_NAME,OU=OU1,OU=OU2,OU=OU3,OU=OU4,DC=SERVER_NAME,DC=EXT1,DC=EXT2

也许有了这些信息,您可以帮我解决问题,可能是 AD 不允许匿名连接。知道“路径”属性后,“ldap_base”、“ldap_user”和“ldap_passwd”会是什么?

【问题讨论】:

  • c#代码是在同一台机器上运行的吗?
  • 没有。但是考虑到它们在同一个域上,这会有什么不同吗?
  • 也可以,这取决于防火墙规则。你能从oracle主机直接telnet到389端口吗?
  • 确切的错误是什么。在 LDAP 客户端/服务器错误后,我得到了更多信息。 ORA-31202:DBMS_LDAP:LDAP 客户端/服务器错误:无效的 DN 语法 OR ORA-31202:DBMS_LDAP:LDAP 客户端/服务器错误:无效凭据。 NDS 错误:OR ORA-31202:DBMS_LDAP:LDAP 客户端/服务器错误:身份验证不当。匿名简单绑定已禁用。
  • 添加了有关我收到的错误的详细信息。 @Matthew Watson:我不熟悉 telnet,但看起来我可以正确连接和 ping 服务器。

标签: c# oracle plsql ldap


【解决方案1】:

在辛苦的一天摸索了几个小时后解决了这个问题。

默认情况下,AD 不允许匿名访问。因此,我必须找到正确distinguishedName”才能获得访问权限(这是没有“LDAP://SERVER_OR_DOMAIN/”的长字符串)。

如果您遇到“80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error”错误,您应该参考this 线程或this serverfault 问题。

感谢您的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-14
    • 1970-01-01
    相关资源
    最近更新 更多