Oracle & Active Directory: отношения любовь / ненависть - PullRequest
3 голосов
/ 29 марта 2010

В настоящее время я пытаюсь получить доступ к 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?

1 Ответ

0 голосов
/ 30 марта 2010

Решил проблему после тяжелого дня, почесав голову в течение нескольких часов.

AD не разрешает анонимный доступ по умолчанию. Поэтому мне нужно было найти правильный ' Одно имя ', чтобы получить доступ (это длинная строка без 'LDAP: // SERVER_OR_DOMAIN /').

Если вы когда-нибудь столкнетесь с ошибкой '80090308: LdapErr: DSID-0C090334, комментарий: ошибка AcceptSecurityContext', вам следует обратиться к этой теме или этой проблеме с ошибками сервера.

Спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...