В настоящее время я пытаюсь получить доступ к Active Directory через API dbms_ldap в Pl / Sql (Oracle). Проблема в том, что я не могу соединиться с моим собственным именем пользователя и паролем или каким-либо другим образом.
Однако в C # я могу анонимно подключиться с помощью этого кода:
DirectoryEntry ldap = new DirectoryEntry("LDAP://Hostname");
DirectorySearcher searcher = new DirectorySearcher(ldap);
searcher.Filter = "(SAMAccountName=username)";
SearchResult result = searcher.FindOne();
Если я пытаюсь анонимно подключиться в Oracle, я получаю сообщение об ошибке (ORA-31202: ошибка клиент / сервер LDAP), когда пытаюсь выполнить поиск (а код результата для привязки - SUCCESS) ...
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? У вас есть другая идея подключиться к Active Directory через Oracle?
Помоги мне воссоединить их вместе.
Спасибо.
Редактировать 1
Когда я связываюсь с анонимными учетными данными, я получаю:
ORA-31202: DBMS_LDAP: ошибка клиент / сервер LDAP
00000000: LdapErr: DSID-0C090627,
комментарий: для выполнения этой операции необходимо выполнить успешное связывание на> соединение
И если я попытаюсь соединиться с моими учетными данными, которые должны быть действительными, поскольку я подключен к домену с ним ... Я получаю:
ORA-31202: DBMS_LDAP: ошибка клиент / сервер LDAP
Неверные учетные данные
80090308: LdapErr: DSID-0C090334,
комментарий: ошибка AcceptSecurityContext
Возможно ли, что Active Directory не разрешает внешние действия LDAP, подобные этим?
Редактировать 2
Взглянув на переменную «result», в C # я получаю это значение для свойства «Path»:
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 не разрешит анонимное соединение. Зная свойства 'Path', что это за ldap_base, ldap_user и ldap_passwd?