Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 LDAP вывести GUID и DN  [new]
Deniscool
Member

Откуда:
Сообщений: 22
Поделитесь кодом как вывести GUID и DN конкретного CN ... а то что-то разобраться не могу


зарание всем сенкс

p.s. Oracle 10g
21 апр 08, 15:46    [5575002]     Ответить | Цитировать Сообщить модератору
 Re: LDAP вывести GUID и DN  [new]
ERROR MESSAGE
Member

Откуда: Москва
Сообщений: 376
А ты, друже, напиши зачем оно тебе нужно, что и как ты делаешь,
что именно не получается у тебя, чего не понимаешь

Глядишь и народ что-то тебе подсказывть начнет ))
21 апр 08, 16:41    [5575448]     Ответить | Цитировать Сообщить модератору
 Re: LDAP вывести GUID и DN  [new]
exprok
Member

Откуда:
Сообщений: 102
Deniscool
Поделитесь кодом как вывести GUID и DN конкретного CN ... а то что-то разобраться не могу


зарание всем сенкс

p.s. Oracle 10g


DBMS_LDAP?
21 апр 08, 18:57    [5576506]     Ответить | Цитировать Сообщить модератору
 Re: LDAP вывести GUID и DN  [new]
Deniscool
Member

Откуда:
Сообщений: 22
есть вот такое (нарыл из инета)
DECLARE
 ldap_host            VARCHAR2(256);
 ldap_port            PLS_INTEGER;
 ldap_user            VARCHAR2(256);
 ldap_passwd          VARCHAR2(256);
 ldap_base            VARCHAR2(256);
 retval               PLS_INTEGER;
 my_session           DBMS_LDAP.session;
 subscriber_handle    DBMS_LDAP_UTL.HANDLE;
 sub_type             PLS_INTEGER;
 subscriber_id        VARCHAR2(2000);
 my_pset_coll         DBMS_LDAP_UTL.PROPERTY_SET_COLLECTION;
 my_property_names    DBMS_LDAP.STRING_COLLECTION;
 my_property_values   DBMS_LDAP.STRING_COLLECTION;
 user_handle          DBMS_LDAP_UTL.HANDLE;
 user_id              VARCHAR2(2000);
 user_type            PLS_INTEGER;
 user_password        VARCHAR2(2000);
 my_mod_pset          DBMS_LDAP_UTL.MOD_PROPERTY_SET;
 my_attrs             DBMS_LDAP.STRING_COLLECTION;
 user_dn              VARCHAR2(256);
BEGIN
 -- Please customize the following variables as needed
 ldap_host := 'host' ; -- IP host"a
 ldap_port := 389;
 ldap_user := 'USER'; -- Тут логин юзера в базе (с правами на чтение)
 ldap_passwd := 'PASS'; -- пароль на юзера
 sub_type := DBMS_LDAP_UTL.TYPE_DEFAULT;
 subscriber_id := NULL;
 user_type := DBMS_LDAP_UTL.TYPE_NICKNAME;
 user_id :='USER_ID'; -- USER которого пытаемся проверить
 user_password := 'PASS'; -- Его пароль
 -- Choosing exceptions to be raised by DBMS_LDAP library.
 DBMS_LDAP.USE_EXCEPTION := TRUE;

 DBMS_OUTPUT.PUT_LINE('Input Parameters: ');
 DBMS_OUTPUT.PUT_LINE('LDAP HOST: ' || ldap_host);
 DBMS_OUTPUT.PUT_LINE('LDAP PORT: ' || ldap_port);
 DBMS_OUTPUT.PUT_LINE('LDAP BIND USER: ' || ldap_user);
 IF subscriber_id IS NULL THEN
    DBMS_OUTPUT.PUT_LINE('REALM : DEFAULT REALM');
 ELSE
    DBMS_OUTPUT.PUT_LINE('REALM : ' || subscriber_id);
 END IF;

 DBMS_OUTPUT.PUT_LINE('USER ID : ' || user_id);
 DBMS_OUTPUT.PUT_LINE('----------------------------------');
 -----------------------------------------------
 -- Connect to the LDAP server
 -- and obtain and ld session.
 -----------------------------------------------
 DBMS_OUTPUT.PUT('Connecting to ' || ldap_host || ' ...');

 my_session := DBMS_LDAP.init(ldap_host,ldap_port);

 DBMS_OUTPUT.PUT_LINE(': Connected.');
 -----------------------------------------------
 -- Bind to the directory
 --
 -----------------------------------------------
 DBMS_OUTPUT.PUT('Binding to directory as ' || ldap_user || ' ... ');
 retval := DBMS_LDAP.simple_bind_s(my_session,
                                   ldap_user,
                                   ldap_passwd);
 DBMS_OUTPUT.PUT_LINE(': Successful.');
 ---------------------------------------------------------------------
 -- Create Subscriber Handle
 --
 ---------------------------------------------------------------------
 DBMS_OUTPUT.PUT('Creating Realm Handle ... ');
 retval := DBMS_LDAP_UTL.create_subscriber_handle(subscriber_handle,
                                                  sub_type,
                                                  subscriber_id);
 IF retval != DBMS_LDAP_UTL.SUCCESS THEN
    -- Handle Errors
    DBMS_OUTPUT.PUT_LINE('Error: create_subscriber_handle returns : ' || to_char(retval));
    RETURN;
 END IF;
 DBMS_OUTPUT.PUT_LINE(': Successful.');
 ---------------------------------------------------------------------
 -- Create User Handle
 --
 ---------------------------------------------------------------------
 DBMS_OUTPUT.PUT('Creating user handle for ' || user_id || ' ... ');
 retval := DBMS_LDAP_UTL.create_user_handle(user_handle,user_type,user_id);
 IF retval != DBMS_LDAP_UTL.SUCCESS THEN
    -- Handle Errors
    DBMS_OUTPUT.PUT_LINE('Error: create_user_handle returns : ' || to_char(retval));
    RETURN;
 END IF;
 DBMS_OUTPUT.PUT_LINE(': Successful.');
 ---------------------------------------------------------------------
 -- Set user handle properties
 -- (link subscriber to user )
 ---------------------------------------------------------------------
 retval := DBMS_LDAP_UTL.set_user_handle_properties(user_handle,
                                                    DBMS_LDAP_UTL.SUBSCRIBER_HANDLE,
                                                    subscriber_handle);
 IF retval != DBMS_LDAP_UTL.SUCCESS THEN
    -- Handle Errors
    DBMS_OUTPUT.PUT_LINE('Error: set_user_handle_properties returns : ' || to_char(retval));
 END IF;
 ---------------------------------------------------------------------
-- Authenticate User
 --
 ---------------------------------------------------------------------
 DBMS_OUTPUT.PUT('Authenticating user ' || user_id || ' ... ');
 retval := DBMS_LDAP_UTL.authenticate_user(my_session,
                                           user_handle,
                                           DBMS_LDAP_UTL.AUTH_SIMPLE,
                                           user_password,
                                           NULL);
IF retval != DBMS_LDAP_UTL.SUCCESS THEN

    -- Handle Errors
DBMS_OUTPUT.PUT_LINE('Authentification error :  ' || TO_CHAR(retval));
 IF retval = -5 THEN
   DBMS_OUTPUT.PUT_LINE('User unknown');
 ELSIF retval = -16 THEN
   DBMS_OUTPUT.PUT_LINE ('Incorrect password');
 
 ELSIF retval = DBMS_LDAP_UTL.PARAM_ERROR THEN
   DBMS_OUTPUT.PUT_LINE (' Invalid input parameters.');

 ELSIF retval = DBMS_LDAP_UTL.GENERAL_ERROR THEN
   DBMS_OUTPUT.PUT_LINE (' Authentication failed.');

 ELSIF retval = DBMS_LDAP_UTL.NO_SUCH_USER THEN
   DBMS_OUTPUT.PUT_LINE (' USER doesn''t exist.');

 ELSIF retval = DBMS_LDAP_UTL.MULTIPLE_USER_ENTRIES THEN
   DBMS_OUTPUT.PUT_LINE (' Multiple NUMBER OF USER DN entries exist IN the DIRECTORY FOR the given USER.');

 ELSIF retval = DBMS_LDAP_UTL.INVALID_SUBSCRIBER_ORCL_CTX THEN
   DBMS_OUTPUT.PUT_LINE (' Invalid Subscriber Oracle Context.');

 ELSIF retval = DBMS_LDAP_UTL.NO_SUCH_SUBSCRIBER THEN
   DBMS_OUTPUT.PUT_LINE (' Subscriber doesn''t exist.');

 ELSIF retval = DBMS_LDAP_UTL.MULTIPLE_SUBSCRIBER_ENTRIES THEN
   DBMS_OUTPUT.PUT_LINE (' Multiple NUMBER OF subscriber DN entries exist IN the DIRECTORY FOR the given subscriber.');

 ELSIF retval = DBMS_LDAP_UTL.INVALID_ROOT_ORCL_CTX THEN
   DBMS_OUTPUT.PUT_LINE (' Invalid Root Oracle Context.');

 ELSIF retval = DBMS_LDAP_UTL.AUTH_PASSWD_CHANGE_WARN THEN
   DBMS_OUTPUT.PUT_LINE (' PASSWORD should be changed.');

 ELSIF retval = DBMS_LDAP_UTL.ACCT_TOTALLY_LOCKED_EXCEPTION THEN
   DBMS_OUTPUT.PUT_LINE (' USER account IS locked.');

 ELSIF retval = DBMS_LDAP_UTL.PWD_EXPIRED_EXCEPTION THEN
   DBMS_OUTPUT.PUT_LINE (' USER PASSWORD has expired.');

 ELSIF retval = DBMS_LDAP_UTL.PWD_GRACELOGIN_WARN THEN
   DBMS_OUTPUT.PUT_LINE (' Grace login FOR USER.');

 ELSE
   DBMS_OUTPUT.PUT_LINE('Authentification error : ' || TO_CHAR(retval));
 END IF ;
 ELSE
    DBMS_OUTPUT.PUT_LINE(': Successful.');
 END IF;

 ---------------------------------------------------------------------
 -- Get User DN
 -- 
 ---------------------------------------------------------------------
 DBMS_OUTPUT.PUT('Retrieving DN for user "' || user_id || '" ... ');
 retval := DBMS_LDAP_UTL.get_user_dn(my_session,
                                      user_handle,
                                      user_dn);
 IF retval != DBMS_LDAP_UTL.SUCCESS THEN
    -- Handle Errors
    DBMS_OUTPUT.PUT_LINE('Error: get_user_dn returns : ' || to_char(retval));
 ELSE
    DBMS_OUTPUT.PUT_LINE(': Successful.');
    DBMS_OUTPUT.PUT_LINE('user DN: ' || user_dn);
 END IF;

 ---------------------------------------------------------------------
 -- Retrieve User Properties
 --
 ---------------------------------------------------------------------
 DBMS_OUTPUT.PUT('Retrieving properties for user "' || user_id || '" ... ');
 my_attrs(1) := 'cn=*';
 retval := DBMS_LDAP_UTL.get_user_properties(my_session,
                                              user_handle,
                                              my_attrs,
                                              DBMS_LDAP_UTL.ENTRY_PROPERTIES,
                                              my_pset_coll);
 IF retval != DBMS_LDAP_UTL.SUCCESS THEN
    -- Handle Errors
    DBMS_OUTPUT.PUT_LINE('Error: get_user_properties returns : ' || to_char(retval));
 ELSE
    DBMS_OUTPUT.PUT_LINE(': Successful.');
    DBMS_OUTPUT.PUT_LINE(' (Refer to misc.sql sample code to read properties from the result handle.)');
 END IF;

 -- Refer to the misc.sql sample code to read properties from propertyset collection
 DBMS_LDAP_UTL.free_propertyset_collection(my_pset_coll);

 ------------------------------------------
 -- Free Mod Propertyset
 --
 ------------------------------------------
 DBMS_LDAP_UTL.free_mod_propertyset(my_mod_pset);
 ---------------------------------------------------------------------
 -- Free handles
 --
 ---------------------------------------------------------------------
 DBMS_LDAP_UTL.free_handle(subscriber_handle);
 DBMS_LDAP_UTL.free_handle(user_handle);

 -- unbind from the directory
 DBMS_OUTPUT.PUT('Unbinding from directory ... ');
 retval := DBMS_LDAP.unbind_s(my_session);
 IF retval != DBMS_LDAP_UTL.SUCCESS THEN
    -- Handle Errors
    DBMS_OUTPUT.PUT_LINE('unbind_s returns : ' || to_char(retval));
 ELSE
    DBMS_OUTPUT.PUT_LINE(': Successful.');
 END IF;
 -- Handle Exceptions
 EXCEPTION
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(' Error code : ' || TO_CHAR(SQLCODE));
    DBMS_OUTPUT.PUT_LINE(' Error Message : ' || SQLERRM);
    DBMS_OUTPUT.PUT_LINE(' Exception encountered .. exiting');
END;

После выводиться такое

Connecting to 192.168.100.10 ...: Connected.
Binding to directory as LDAPUSER@HOST ... : Successful.
Creating Realm Handle ... : Successful.
Creating user handle for USER ... : Successful.
Authenticating user USER ... Authentification error :  1
Authentification error : 1
Retrieving DN for user "USER" ... Error: get_user_dn returns : 1
Retrieving properties for user "USER" ... Error: get_user_properties returns : 1
Unbinding from directory ... : Successful.

Все логины и пароли 100% есть в системе. Народ подскажите почему я не могу залогиниться?

Сообщение было отредактировано: 22 апр 08, 09:33
22 апр 08, 08:26    [5577529]     Ответить | Цитировать Сообщить модератору
 Re: LDAP вывести GUID и DN  [new]
Deniscool
Member

Откуда:
Сообщений: 22
Всем спасибо :)

Полазил на сайте Оракла нашел "толчок" к правильному решению
22 апр 08, 14:18    [5579944]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить