2009-02-19 15 views
5

मुझे जावा-आधारित वेब एप्लिकेशन में एलडीएपी प्रमाणीकरण का उपयोग करने के सर्वोत्तम प्रथाओं में रूचि है। मेरे ऐप में मैं उपयोगकर्ता नाम \ पासवर्ड स्टोर करना नहीं चाहता, केवल कुछ आईडी। लेकिन यदि कोई एलडीएपी कैटलॉग में मौजूद है तो मैं अतिरिक्त जानकारी (नाम, अंतिम नाम) पुनर्प्राप्त करना चाहता हूं।एलडीएपी सर्वोत्तम अभ्यास

उत्तर

6

मेरी टीम प्रमाणीकरण के मानक तरीके के रूप में एलडीएपी का उपयोग करती है। असल में, हम किसी अन्य डेटाबेस के रूप में एलडीएपी का इलाज करते हैं।

आवेदन करने के लिए उपयोगकर्ता जोड़ने के लिए, आप एलडीएपी से एक चुनना या LDAP में इसे बनाने के लिए है; जब उपयोगकर्ता एप्लिकेशन से हटा दिया जाता है, तो यह एलडीएपी में रहता है लेकिन आवेदन की कोई पहुंच नहीं है।

आपको मूल रूप से केवल एलडीएपी उपयोगकर्ता नाम को स्थानीय रूप से स्टोर करने की आवश्यकता है। आप या तो एलडीएपी से एलडीएपी डेटा (ई-मेल, डिपार्टमेंट इत्यादि) पढ़ सकते हैं, या इसे किसी भी तरह से एप्लिकेशन में खींच सकते हैं, हालांकि एलडीएपी से इसे पढ़ना संभवतः एलडीएपी डेटा बदल सकता है क्योंकि यह शायद आसान और स्मार्ट है। बेशक, यदि आपको बड़े पैमाने पर एलडीएपी डेटा की रिपोर्टिंग या उपयोग की आवश्यकता है, तो आप इसे एलडीएपी (मैन्युअल रूप से या बैच कार्य के साथ) से खींच सकते हैं।

अच्छी बात यह है कि एक बार एक उपयोगकर्ता LDAP में अक्षम है, यह एक बार में सभी अनुप्रयोगों में विकलांग है; भी, उपयोगकर्ता के सभी अनुप्रयोगों में एक ही प्रमाण पत्र है। कॉर्पोरेट वातावरण में, आंतरिक अनुप्रयोगों के समूह के साथ, यह एक प्रमुख प्लस है। उपयोगकर्ताओं के लिए केवल एक आवेदन के लिए एलडीएपी का उपयोग न करें; उस परिदृश्य में कोई वास्तविक लाभ नहीं।

1

आप एक से अधिक वेब आधारित आवेदन किया है और LDAP प्रमाणीकरण का उपयोग करने के लिए तो समाधान पर एक पूर्व-पैकेज की एकल साइन अपनी खुद की LDAP प्रमाणीकरण बनाने की तुलना में बेहतर हो सकता है चाहते हैं। CAS एलडीएपी प्रमाणीकरण का समर्थन करता है और आपके आवेदन के लिए आवश्यक डेटा को वापस खींच सकता है।

हम वास्तव में अपने सक्रिय निर्देशिका सर्वर के विरुद्ध पर एक संकेत के रूप में कैस लागू कर दिया है मेरे कॉलेज पर। हम अपने जे 2 ईई अनुप्रयोगों को प्रमाणित करने के लिए सीएएस का भी उपयोग करते हैं और हमारे PHP अनुप्रयोगों को प्रमाणीकृत करने के लिए सीएएस का उपयोग करने पर काम कर रहे हैं।

हम उपयोगकर्ताओं को डोमेन के लिए रखने के लिए एडी का उपयोग करते हैं। उपयोगकर्ता के प्रकार के आधार पर कुछ ओयू हैं। उपयोगकर्ताओं के पास एक अद्वितीय आईडी होती है जो उनके छात्र/कर्मचारी आईडी होती है, इसलिए एप्लिकेशन इसे अपने डेटाबेस में प्राथमिक कुंजी के रूप में उपयोग कर सकते हैं। हमारे पास हमारे PHP अनुप्रयोगों के लिए डेटाबेस संचालित प्राधिकरण विधि है। जे 2 ईई आवेदन के लिए प्राधिकरण एलडीएपी में एक मूल्य से आता है।

आपके आवेदन के साथ शुभकामनाएँ।

0

तो, आप उपयोगकर्ता केवल आईडी दर्ज करने, और उसके बाद LDAP से अपनी जानकारी के बाकी हड़पने करना चाहते हैं? यह काफी आसान है।

  1. LdapInitial संदर्भ बनाएँ और LDAP
  2. से कनेक्ट (यह कुछ विशेषता मान के रूप में संग्रहित किया जाना चाहिए) आईडी के लिए एक खोज करें - जैसे (& (userid = जॉन) (objectClass = user)) - जिसका अर्थ है "उपयोगकर्ता id = जॉन और objectClass = user"
  3. SearchResult वस्तु सभी गुण (या जिन्हें आप से पूछा) होंगी

कुछ LDAP कार्यान्वयन (उल्लेखनीय एमएस सक्रिय डायरेक्टरी LDAP) आपको अज्ञात उपयोगकर्ता से कनेक्ट नहीं होने देता है। उन लोगों के लिए आपको कनेक्ट करने के लिए तकनीकी उपयोगकर्ता आईडी/पासवर्ड होना चाहिए।

जैसा कि ऊपर कहा, एलडीएपी सामान्य रूप से है समझ में आप कई आवेदन किया है बनाता है।

पीएस यह महसूस करने के लिए कि एलडीएपी अपाचे निर्देशिका स्टूडियो का प्रयास कर रहा है।

+0

काफी नहीं! मेरे ऐप डेटाबेस में मैं केवल आईडी और एलडीएपी से संबंधित डीएन स्टोर करना चाहता हूं। और अगर मुझे उपयोगकर्ता के बारे में अतिरिक्त जानकारी चाहिए, तो मैं इसे डीएन –

+0

का उपयोग कर निर्देशिका से प्राप्त कर सकता हूं, हालांकि यह एक डुप्लिकेशंस है। लेकिन आप वास्तव में क्या सवाल करते हैं? –

4

एलडीएपी के साथ सामान्य सर्वोत्तम प्रथाओं के लिए, "LDAP: Programming practices" देखें।

+2

लिंक मर चुका है, लेकिन सारांश https://ff1959.wordpress.com/2011/10/27/ldap-programming-best-practices/ पर पाया जा सकता है –

संबंधित मुद्दे