2017-09-04 9 views
6

Javaを使用してシングルサインオンWebsphere-Libertyサーバーを実装したいとします。 LDAPを使用してユーザーを認証する必要があります。Libertyサーバー上のLDAP Javaシングル・サインオン

私は多くを検索しましたが、正確な例は見つかりませんでした。スタックオーバーフローで利用可能な各例も確認しました。運がない。

デモやサンプルコードを提供することができれば素晴らしいと思います。

ありがとうございます。

update:私はwaffleの助けを借りて同じことを実現できました..しかし、Linux/Unixではwaffleは動作しません。 ..誰でも私を助けてくれますか?

+1

簡単で信頼性の高いhttps://wiki.jasig.org/display/casum/homeを使用してください –

+0

Windows ADログインでデスクトップSSOを使用しますか?次に、SPNEGO認証を確認します。 Libertyのさまざまなアプリの間にSSOを置いておきたいのであれば、LTPAを使ってデフォルトでオンになっています。LibertyをLDAPレジストリに接続するだけです。あなたは本当に必要なものを少し明確にする必要があります。 – Gas

+0

Linuxサーバー上のwebsphere libertyでSSOを探しています。デスクトップベースではなくウェブベースでなければなりません。参考になるコードはありますか? –

答えて

1

LDAPを使用している場合、認証は基本と同様にオフにすることができます。ユーザー名とパスワードがわかっている場合は、ヘッダ "Authorization"に値 "Basic base64_token"を追加します。

base64トークンは、ユーザー名とパスワードをusername:passwordの形式でbase64でエンコードした文字列です。理想的には、これはうまくいくはずです。それが動作しない場合は教えてください。その場合、SPNEGOを使用してオプションを探索できます。 JAVAでのLDAP用

コード:特にWindows用

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

このコードはSSOまたはWebアプリケーションとどのように関連していますか?リクエストに基本認証ヘッダーを追加する方法を示しています。 – Gas

+0

質問は、JavaでLDAPサービスに認証を使用する方法を具体的に尋ねます。私は、基本として認証の詳細を渡すことによって、LDAPサービスと通信して成功しました。これはうまくいくはずです。私はOPの反応を待っている。 – thatrockbottomprogrammer

1

。シングルサインオンはワッフルを使用して行うことができます。 UがサーバにセットアップKerberosとSPNEGOの構成に必要

:シングルサインオンのために

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); 

:あなたは、コードの以下の行で、単純なJavaクラスに春のMVCで行くことができるLDAP認証のために

レベル。リバティサーバーの場合、server.xmlの変更が必要です。

3

waffle dosent support * nix。 (Java SE 8のみ)をサポートするKrb5LoginModuleを使用すると、OSチケットをキャッシュすることができます。

関連する問題