بتاريخ: 12 سبتمبر 200817 سنة comment_138614 how can i connect active directory LDAP to oracle 10g تقديم بلاغ
بتاريخ: 28 أكتوبر 200817 سنة comment_141695 how can i connect active directory LDAP to oracle 10g السلام عليكمأرجو من اصحاب الخبرة الرد على استفسار الاخ للإفادة الجاعيةوأرجو من الاخ السائل إ>ا كان لديه معرفة بالربط بين الاوراكل والAD على version قديمة أن يوفر لي مثال على الطريقةلأني احتاج مع كل هملية إضافة ليوزر جديد على AD أن يتم بشكل اوتوماتيكي عمل update معين على جداول في أوراكلولكم جزيل الشكر تقديم بلاغ
بتاريخ: 29 أكتوبر 200817 سنة comment_141780 how can i connect active directory LDAP to oracle 10g ألا يوجد إجابة تقديم بلاغ
بتاريخ: 29 أكتوبر 200817 سنة comment_141796 اخى العزيز هذا الموضوع مهم جدا لكل الديفيلوبرز المتعاملين مع اوراكل داتابيز ويريدون انشاء Single sign on لكل مستخدم باستخدام LDAP Authentication وللاجابه على استفسارك كيف يتم يجب اولا ان نقوم بتنشيط وتفعيل الباكاج DBMS_LDAP SQL> @$ORACLE_HOME/rdbms/admin/catldap.sql ثم علينا ان نقوم بعمليه authentication اى التاكد من ان هذا المتسخدم موجود بالفعل كيوزر مسجل على LDAP الخاص بلاكتيف ديركتوري بالشركه l_session := DBMS_LDAP.init(hostname => l_ldap_host, portnum => l_ldap_port); l_retval := DBMS_LDAP.simple_bind_s(ld => l_session, dn => l_ldap_user, passwd => l_ldap_passwd); ثم علينا ان نقوم بعمليه البحث داخل الديركتوري الخاص ب LDAP للحصول على كل المعلومات الخاصه بالمستخدم l_attrs(1) := '*'; -- retrieve all attributes l_retval := DBMS_LDAP.search_s(ld => l_session, base => l_ldap_base, scope => DBMS_LDAP.SCOPE_SUBTREE, filter => 'objectclass=*', attrs => l_attrs, attronly => 0, res => l_message); ثم نقوم بعمليه البحث داخل LDAP باستخدام بعض البيانات التى سنقوم بادخالها لتتم عمليه البحث بالشكل الصحيح Base : وهى نقطه البدايه للبحث l_ldap_baseScope : وهى مدى عمق البحث DBMS_LDAP.SCOPE_SUBTREE Attrs : اى الخصائص المراد البحث عنها IF DBMS_LDAP.count_entries(ld => l_session, msg => l_message) > 0 THEN -- Get all the entries returned by our search. l_entry := DBMS_LDAP.first_entry(ld => l_session, msg => l_message); << entry_loop >> WHILE l_entry IS NOT NULL LOOP ... ... l_entry := DBMS_LDAP.next_entry(ld => l_session, msg => l_entry); END LOOP entry_loop; END IF; ثم نقوم البحث عن الخصائص Atrtrs الخاصه بكل Entry l_attr_name := DBMS_LDAP.first_attribute(ld => l_session, ldapentry => l_entry, ber_elem => l_ber_element); << attributes_loop >> WHILE l_attr_name IS NOT NULL LOOP ... ... l_attr_name := DBMS_LDAP.next_attribute(ld => l_session, ldapentry => l_entry, ber_elem => l_ber_element); END LOOP attibutes_loop; واخيرا نسترجع كامل النتائج الخاصه بكل Atributes او قيمه كل خاصيه من الخصائص تلك FOR i IN l_vals.FIRST .. l_vals.LAST LOOP DBMS_OUTPUT.PUT_LINE('ATTIBUTE_NAME: ' || l_attr_name || ' = ' || SUBSTR(l_vals(i),1,200)); END LOOP values_loop; وفى النهايه نقوم بتجميع كامل اجزاء الكود لنحصل فى النهايه على بروسيدر كامل للبحث داخل سيرفر LDAP والحصول على كامل خصائص كل مستخدم SET SERVEROUTPUT ON SIZE 1000000 create or replace procedure ldap_Authentication as begin DECLARE -- Adjust as necessary. l_ldap_host VARCHAR2(256) := 'server01.drclick.com'; l_ldap_port VARCHAR2(256) := '389'; l_ldap_user VARCHAR2(256) := 'cn=orcladmin'; l_ldap_passwd VARCHAR2(256) := 'password'; l_ldap_base VARCHAR2(256) := 'cn=Users,dc=drclick,dc=com'; l_retval PLS_INTEGER; l_session DBMS_LDAP.session; l_attrs DBMS_LDAP.string_collection; l_message DBMS_LDAP.message; l_entry DBMS_LDAP.message; l_attr_name VARCHAR2(256); l_ber_element DBMS_LDAP.ber_element; l_vals DBMS_LDAP.string_collection; BEGIN -- Choose to raise exceptions. DBMS_LDAP.USE_EXCEPTION := TRUE; -- Connect to the LDAP server. l_session := DBMS_LDAP.init(hostname => l_ldap_host, portnum => l_ldap_port); l_retval := DBMS_LDAP.simple_bind_s(ld => l_session, dn => l_ldap_user, passwd => l_ldap_passwd); -- Get all attributes l_attrs(1) := '*'; -- retrieve all attributes l_retval := DBMS_LDAP.search_s(ld => l_session, base => l_ldap_base, scope => DBMS_LDAP.SCOPE_SUBTREE, filter => 'objectclass=*', attrs => l_attrs, attronly => 0, res => l_message); IF DBMS_LDAP.count_entries(ld => l_session, msg => l_message) > 0 THEN -- Get all the entries returned by our search. l_entry := DBMS_LDAP.first_entry(ld => l_session, msg => l_message); << entry_loop >> WHILE l_entry IS NOT NULL LOOP -- Get all the attributes for this entry. DBMS_OUTPUT.PUT_LINE('---------------------------------------'); l_attr_name := DBMS_LDAP.first_attribute(ld => l_session, ldapentry => l_entry, ber_elem => l_ber_element); << attributes_loop >> WHILE l_attr_name IS NOT NULL LOOP -- Get all the values for this attribute. l_vals := DBMS_LDAP.get_values (ld => l_session, ldapentry => l_entry, attr => l_attr_name); << values_loop >> FOR i IN l_vals.FIRST .. l_vals.LAST LOOP DBMS_OUTPUT.PUT_LINE('ATTIBUTE_NAME: ' || l_attr_name || ' = ' || SUBSTR(l_vals(i),1,200)); END LOOP values_loop; l_attr_name := DBMS_LDAP.next_attribute(ld => l_session, ldapentry => l_entry, ber_elem => l_ber_element); END LOOP attibutes_loop; l_entry := DBMS_LDAP.next_entry(ld => l_session, msg => l_entry); END LOOP entry_loop; END IF; -- Disconnect from the LDAP server. l_retval := DBMS_LDAP.unbind_s(ld => l_session); DBMS_OUTPUT.PUT_LINE('L_RETVAL: ' || l_retval); END; END; ويجب عليك معرفه LDAP Base اللى هيا Distinguish Name(DN) الخاصه بالمستخدم المراد البحث عن كامل خصائصه ولو مكنتش عارفها اسال Network Admin فى الشركه عندك هو اكيد هيعرفها وهيا بتكون بالشكل التالىO=GROUP OU=SECOUND ADMINISTRATIVE GROUP CN=RECIPIENTS CN=DrClickوايضا يمكنك التعديل فى البارامترز l_ldap_host VARCHAR2(256) := 'server01.DrClick.com'; l_ldap_port VARCHAR2(256) := '389'; l_ldap_user VARCHAR2(256) := 'cn=orcladmin'; l_ldap_passwd VARCHAR2(256) := 'password'; l_ldap_base VARCHAR2(256) := 'cn=Users,dc=DrClick,dc=com'; ولتنفيذ البروسيدر SQL> Exec ldap_Authentication تقديم بلاغ
بتاريخ: 29 أكتوبر 200817 سنة comment_141810 how can i connect active directory LDAP to oracle 10g بارك الله فيك أخي الكريم على الإجابة الجميلة والمفصلة، ولكن لقلة خبرتي بالموضوع فإني سأقوم بتجربة الprocedure لفهم كل جزئية فيه.ولكن اود الإستفسار عن بعض الامور للتاكد منها:1_حسبما فهمت ان DBMS_LDAP في build_in package موجودة وما علي إلا القيام بتفعيلها من خلال الامر الدي دكرته لكي أتمكن من استخدامها ، هل ما فهمته صحيح؟ وهل عملية التفعيل تكون من أي يوزر، ام من system user ؟ وهل يجب ان تعطى صلاحية للمستخدم من الsystem لاستخدامها؟2_ سأقوم بأخد الpresedure كما هو وتطبيقه ولن اغير فيه إلا القيم الابتدائية للباراميترز التي دكرت ان بإمكاني التعديل عليها وانفد البروسيجر ، ولكن سأكون شاكرا لك ادا زودتني بتعريف لكل واحد من الباراميترز لكي أعرف من أسأل وكيف أحدد القيمة الابتدائية لكل منها.3_ هل هدا الprocedure يقوم بالاستعلام عن البيانات المتعلقة بمستخدم معين معرف على الactive directory ؟أنا اعرف أن استفساراتي كثير ولكن ه>ه المرة الأولى التي استخدم فيها build in pkg ....والموضوع كله جديد علي لدلك ارجو ان تتحمل اسئلتي ...وجزاك الله خيرا على استجابتكاخوكمoramallouh تقديم بلاغ
بتاريخ: 29 أكتوبر 200817 سنة comment_141860 1_حسبما فهمت ان DBMS_LDAP في build_in package موجودة وما علي إلا القيام بتفعيلها من خلال الامر الدي دكرته لكي أتمكن من استخدامها ، هل ما فهمته صحيح؟ وهل عملية التفعيل تكون من أي يوزر، ام من system user ؟ وهل يجب ان تعطى صلاحية للمستخدم من الsystem لاستخدامها؟ لمنع حدوث اى مشكله خاصه بصلاحيات المستخدم ..قم بتفعيل البروسيدر من خلال مستخدم له صلاحيه SYSDBA فيمكنك الدخول عن طريق المستخدم SYS افضل2_ سأقوم بأخد الpresedure كما هو وتطبيقه ولن اغير فيه إلا القيم الابتدائية للباراميترز التي دكرت ان بإمكاني التعديل عليها وانفد البروسيجر ، ولكن سأكون شاكرا لك ادا زودتني بتعريف لكل واحد من الباراميترز لكي أعرف من أسأل وكيف أحدد القيمة الابتدائية لكل منها. l_ldap_host VARCHAR2(256) :[color="#000000"]ده الهوست الخاص با active directory server [/color] l_ldap_port VARCHAR2(256) := المنفذ الخاص بسيرفر active directory l_ldap_user VARCHAR2(256) :=المستخدم المراد الاستعلام عنه l_ldap_passwd VARCHAR2(256) : كلمه السر الخاصه بالمستخدم l_ldap_base VARCHAR2(256) := 'cn=Users,dc=drclick,dc=com';وده distinguish name 3_ هل هدا الprocedure يقوم بالاستعلام عن البيانات المتعلقة بمستخدم معين معرف على الactive directory ؟ نعم كل ماعليك ان تتاكد ان هذا المستخدم مسجل على الدومين والاكتيف ديركتوري Domain & Active directory user تحياتى احمد حمدى تقديم بلاغ
بتاريخ: 2 نوفمبر 200817 سنة comment_142081 السلام عليكممشكور اخي الكريم على الرد الجميل والشافيوأرجو المعدرة بداية على تأخر ردي بسبب مشكلة تحدث معي وهي أني عندما أحاول الدخول للمنتدى يعطيني رسالة اعلى الصفحة أن الخاصية محجوبة ويطلب مني محاولة الدخول مرة أخرى وهكدا أبقى أحاول حتى يتم ارسال الرسالة فلا أدري ما السبب أحيانا محاولتين او ثلاث أنجح بالدخول وأحيانا أبقى لفترة طويلة ولا انجح بالدخول وقد رجعت إلى ملفات المساعدة ولم أستفد منها ...فلا ادري ما هو الحل للمشكلة؟؟؟؟؟!!!!عموما أرجو هده المرة أن انجح...بالنسبة للموضوع فإني سأشتفيد منه في عملية الsingli sign on ودلك بالتشييك على صحة بيانات يوزر معين في الactive directory وهدا رائع وجميل جداولك الشكر الجزيل على دلك.واستكمالا للموضوع اود ان اطرح استفسارا يختص بنفس الموضوع ولكنه من جهة اخرى وهي:لو أردت ان أقوم بعمل ربط بحيث أي إضافة لمستخدم جديد على الactive directory يقوم مباشرة بالارتباط مع قاعدة بيانات الاوراكل وعمل insert أو update في جدول معين أي ان جهة التفعيل والانطلاق هي الactive directory .أو العملية العكسية وهي عند إضافة مستخدم معين على جدول في الأوراكل نقوم بالربط من الأوراكل إلى الactive directorty ونعمل إضافة للمستخدم هناك.أنا اتوقع ان الموضوع مشترك بيننا كأوراكل وبين مسؤول الactive directory ...لكن ما هو المطلوب مني كأوراكل لكي تتم هده العملية ..وقد سألت عن الموضوع فأخبرني البعض ان هناك شيء يقوم بالربط ويتم التواصل من خلاله يسمى web service أو web link لا ادري بالضبط فأرجو إن كان لديك معرفة بالموضوع ان تدلني عليهوبارك الله فيك أخوكمoramallouh تقديم بلاغ
بتاريخ: 3 نوفمبر 200817 سنة comment_142163 اخى العزيز oramallouh لم اقم بصراحه بتجربه الربط بين الاكتيف ديركتوري والاوراكل داتابيز خلاف طريقه LDAP ولكن دعنى اعطيك ماوصلت اليه من خلال بحثى فى الانترنت عن هذه الطريقه اولا هناك عرض تقديمى Presentation توضح امكانيه الربط والطريقه بالصوت والصوره واليك الرابط هنـــــــا واليك رابط اخر كتاب Using oracle with Microsoft active directory وايضا Oracle identity management اتمنى اكون افدتك تحياتى تقديم بلاغ
بتاريخ: 3 نوفمبر 200817 سنة comment_142176 اخى العزيز oramallouh لم اقم بصراحه بتجربه الربط بين الاكتيف ديركتوري والاوراكل داتابيز خلاف طريقه LDAP ولكن دعنى اعطيك ماوصلت اليه من خلال بحثى فى الانترنت عن هذه الطريقه اولا هناك عرض تقديمى Presentation توضح امكانيه الربط والطريقه بالصوت والصوره واليك الرابط هنـــــــا واليك رابط اخر كتاب Using oracle with Microsoft active directory وايضا Oracle identity management اتمنى اكون افدتك تحياتى جزاك الله خيرا كثيرا اخي الكريممجموعة متميزة من الماضيع التي أراها لأول مرة سأقوم بقراءتها ومحاولة التجربة عل إحداها تنفعنيوفي كل الأحوال أتوقع انها ستكون ذات قيمة كبيرة لي حتى وإن لم تحل مشكلتي التي طرحتهالك الشكر الجزيل مرة أخرى على المتابعة والتجاوب المتواصلجعله الله في ميزان أعمالكأخوكمoramallouh تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.