मैं चाहूँगा पता है कि कैसे इन दोनों प्रमाणीकरण चरणों गठबंधन करने के लिए:JAAS अतिरिक्त LoginModules
- जांच एक LDAP में उपयोगकर्ता/कूटशब्द
- प्रिंसिपलों (भूमिकाओं) विषय के लिए एक DB में पाया जोड़ें।
एलडीएपी उपयोगकर्ता भंडार को एप्लिकेशन-विशिष्ट भूमिकाओं के बारे में कोई जानकारी नहीं है और मैं आवेदन डीबी में पासवर्ड प्रबंधित नहीं करना चाहता हूं। तो मुझे दोनों की जरूरत है।
JAAS विन्यास फाइल अतिरिक्त LoginModules की अनुमति देता है:
<name used by application to refer to this entry> {
<LoginModule> <flag> <LoginModule options>;
<optional additional LoginModules, flags and options>;
};
लेकिन मैं उदाहरण है कि बताते हैं कि कैसे मैं काम करता है नहीं मिल रहा।
क्या यह अच्छी विधि है?
धन्यवाद
=========================================
दरअसल हम अतिरिक्त LoginModules हो सकता है:
यहाँ मेरी जवाब है। JAAS विन्यास फाइल है:
सूर्य की LdapLoginModule कि उपयोगकर्ता/पासवर्ड, और मेरा sample.module.SampleLoginModule कि मेरे db क्वेरी और प्रिंसिपलों भरता है की जाँच करता है:
Sample {
com.sun.security.auth.module.LdapLoginModule Requisite
userProvider="ldap://acme.org:389/OU=Users,OU=_ACME,DC=acmegis,DC=acme,DC=org"
authIdentity="{USERNAME}"
userFilter="(userPrincipalName={USERNAME})"
storePass=true
sample.module.SampleLoginModule required debug=true;
};
यहाँ हम दो LoginModules है। महत्वपूर्ण पैरामीटर storePass = true है जो मॉड्यूल के साझा स्थिति में उपयोगकर्ता नाम और पासवर्ड संग्रहीत करने के लिए LdapLoginModule से पूछता है। (http://docs.oracle.com/javase/6/docs/jre/api/security/jaas/spec/com/sun/security/auth/module/LdapLoginModule.html देखें)।
तो अगला लॉगिन मॉड्यूल उपयोगकर्ता नाम को साझास्टेट मानचित्र तर्क में प्रारंभिक विधि में पास कर सकता है। उनके पास लॉगिन() में कुछ भी नहीं होना चाहिए और प्रिंसिपल्स को भरने के लिए डीबी में पूछताछ प्रतिबद्ध() (जैसे शिमी बांदीएल ने कहा) में किया है।
मैं अभी तक इसका उपयोग नहीं करता हूं लेकिन JBoss द्वारा विकसित डेटाबेस डेटाबेस सर्वर (मॉड्यूल http://community.jboss.org/wiki/DatabaseServerLoginModule देखें) जो प्रमाणीकरण और भूमिका मैपिंग का समर्थन करता है। पासवर्ड-स्टैकिंग = useFirstPass के साथ प्रयुक्त किसी भी लाइन-कोड (लेकिन एक सुंदर JAAS कॉन्फ़िगरेशन फ़ाइल) लिखने के बिना हमें अपनी ज़रूरत का उत्तर होना चाहिए।
बीआर।
आपके उत्तर के लिए धन्यवाद। लेकिन "com.sun.security.auth.module.LdapLoginModule" पहले ही एलडीएपी के माध्यम से उपयोगकर्ता/पासवर्ड के लिए जांचता है, मैं इसे फिर से लिखना नहीं चाहता हूं। मेरे उत्तर पर एक नज़र डालें और एक टिप्पणी दें (यदि आप चाहते हैं)। बी.आर. – kiki