2017-09-04 12 views
6

मैं जावा का उपयोग कर वेबस्पेयर-लिबर्टी सर्वर पर सिंगल साइन को कार्यान्वित करना चाहता हूं। मैं एलडीएपी का उपयोग कर उपयोगकर्ताओं को प्रमाणीकृत करना चाहता हूं।लिबर्टी सर्वर पर एलडीएपी जावा एकल साइन-ऑन

मैंने बहुत कुछ खोजा लेकिन सटीक उदाहरण नहीं मिला। मैंने प्रत्येक उपलब्ध उदाहरण को स्टैक ओवरफ़्लो पर भी चेक किया है। लेकिन कोई भाग्य नहीं है।

यह बहुत अच्छा होगा अगर कोई इसके लिए डेमो या उदाहरण कोड प्रदान कर सके।

अग्रिम धन्यवाद।

अद्यतन: मैं वैफ़ल की मदद से ही लागू करने में सक्षम था .. लेकिन वैफ़ल लिनक्स/यूनिक्स के साथ काम नहीं करता। .. क्या कोई मेरी मदद कर सकता हैं?

+1

उपयोग https://wiki.jasig.org/display/casum/home, आसान और विश्वसनीय –

+0

आप Windows ई प्रवेश के साथ डेस्कटॉप एसएसओ करना चाहते हैं? फिर SPNEGO प्रमाणीकरण की जांच करें। यदि आप लिबर्टी पर विभिन्न ऐप्स के बीच एसएसओ रखना चाहते हैं, तो यह डिफ़ॉल्ट रूप से एलटीपीए का उपयोग कर चालू है, बस लिबर्टी को एलडीएपी रजिस्ट्री से कनेक्ट करें। आपको वास्तव में जो कुछ चाहिए उसे स्पष्ट करने की आवश्यकता है। – Gas

+0

मैं लिनक्स सर्वर पर websphere स्वतंत्रता में एसएसओ की तलाश में हूं। और यह वेब आधारित नहीं होना चाहिए डेस्कटॉप पर। क्या आपके पास संदर्भ के लिए कोई कोड है? –

उत्तर

1

यदि आप एलडीएपी का उपयोग कर रहे हैं, तो प्रमाणीकरण बेसिक की तरह पारित किया जा सकता है। यदि आप उपयोगकर्ता नाम और पासवर्ड जानते हैं, तो "मूल आधार 64_ टोकन" मान के साथ शीर्षलेख "प्राधिकरण" संलग्न करें। पासवर्ड:

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

कोड:

public class Main 
{ 
    public static void main(String[] args) 
    { 
    //Replace username and password with your username and password 
    token = Base64.getEncoder().encodeToString((username + ":" + password).getBytes()) 
    conn = (HttpURLConnection) endpoint.openConnection(); 

    // Set the necessary header fields, which in this case is Basic 
    conn.addRequestProperty("Authorization", "Basic " + token); 

    //Continue to do what you want to do after this. This should authenticate 
    // you to the server 
    } 
} 
+0

एसएसओ या वेब अनुप्रयोगों के साथ इस कोड में क्या है? बस दिखाता है कि अनुरोध में बुनियादी लेख शीर्षलेख कैसे जोड़ना है। – Gas

+0

प्रश्न विशेष रूप से पूछता है कि जावा के साथ एलडीएपी सेवा को प्रमाणित करने का तरीका कैसे उपयोग करें। मैंने प्रमाणीकरण विवरण को बेसिक के रूप में पास करके एलडीएपी सेवा के साथ संवाद करने में कामयाब रहा है और सफल रहा है। यह काम करना चाहिए। मैं ओपी की प्रतिक्रिया का इंतजार कर रहा हूं। – thatrockbottomprogrammer

1
विशेष रूप से खिड़कियों के लिए

। वफ़ल का उपयोग करके सिंगल साइन ऑन किया जा सकता है।

Ldap प्रमाणीकरण के लिए आप कोड के नीचे लाइनों के साथ सरल जावा वर्ग के लिए वसंत MVC से जा सकते हैं:

String username = login.getUsername();// "ancb"; 
    String password = login.getPassword();// "*****"; 
    String base = "OU=******,DC=InfoDir,DC=DEV,DC=****"; 
    String dn = "CN=" + username + "," + base; 
    String ldapURL = "ldaps://****.systems.**.****:3269"; 

    // Setup environment for authenticating 
    Hashtable<String, String> environment = new Hashtable<String, String>(); 
    environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 
    environment.put(Context.PROVIDER_URL, ldapURL); 
    environment.put(Context.SECURITY_AUTHENTICATION, "simple"); 
    environment.put(Context.SECURITY_PRINCIPAL, dn); 
    environment.put(Context.SECURITY_CREDENTIALS, password); 

    String dynamicLdapaccount = "(CN="+ username +")" ; 

     DirContext authContext = new InitialDirContext(environment); 

पर एकल साइन के लिए:

यू सर्वर पर सेटअप करबरोस और SPNEGO विन्यास की जरूरत है स्तर स्वतंत्रता सर्वर के लिए its server.xml में संशोधन की आवश्यकता है।

3

waffle dosent समर्थन * nix। Krb5LoginModule के समर्थन के साथ आप JASS (केवल जावा एसई 8) का उपयोग कर सकते हैं जो आपको ओएस टिकट कैश करने देगा।

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