9

Active Directory ile Tek Oturum Açma gerektiren bir Java EE web uygulaması yapıyorum.Tek Oturum Açma için Java EE web uygulamasında geçerli Windows kullanıcısını geri al Açık amaçlı

Uygulama artık bir kullanıcı adı ve parola isteminde bulunmayacak. Kimlik doğrulama işlemi, geçerli Windows oturum açmış kullanıcının alınmasını gerektirir. Kullanıcıya sahip olduğumda, oturum açmış olan kullanıcının rollerini almak için Active Directory'yi sorgulamam gerekir. Bunun Windows dışı kullanıcıları hariç tutacağının farkındayım, ancak bu bir iç uygulama ve tüm istemciler Windows kullanıyor.

2 Java EE web uygulamasında SSO'yu uygulamak zorundayım. 1 uygulama GlassFish v2.1.1'de (JDK 1.6) ve diğeri Tomcat (JDK 1.5) üzerinde çalışıyor.

Temelde temel sorun, Windows oturumu açmış olan kullanıcının nasıl alınacağıdır.

Zaten JAAS ve Kerberos ile karşılaştım. Eğer yanılıyorsam lütfen beni düzeltin. Anladığım kadarıyla bunlar kimlik doğrulama protokolü ve kullanıcı tarafından kaydedilen mevcut pencereleri alma özelliği yok.

Zaten aşağıdakileri denedim ama her zaman null veya Sunucu'nun kendi kullanıcı adlarını alıyorum. Tomcat

  • LoginContext içinde request.getUserPrincipal().getName();
  • System.getenv("USERNAME");
  • JCIF NTLM HTTP kimlik doğrulaması
  • new com.sun.security.auth.module.NTSystem().getName();
  • System.getProperty("user.name");

    Herhangi bir öneriye açığım.

    +1

    İstemci bilgisayarda veya sunucu bilgisayarında oturum açan kullanıcı ister misiniz? –

    +0

    İstemci makinede oturum açmış kullanıcıyı istiyorum. Teşekkürler. – Amy

    cevap

    2

    SPNEGO, Tümleşik Windows Kimlik Doğrulaması'nı sağlayan bir sunucu filtresi sağlayan açık kaynak kodlu bir projedir.

    Kurumunuz java tabanlı web/uygulama sunucularını kullanır ve size oldukça bir Java Servlet Filtre olurdu yerine kimlik doğrulama protokolü olarak NTLM Kerberos/SPNEGO tercih ve if (JSR-53) tabanlı bir uygulama yerine bir kapsayıcıya özgü kimlik doğrulama modülü (JSR-196) ve istediğiniz SSO (kullanıcı adı/parola yok istemi), bu proje sizin için ilginizi çekebilecek olabilir.

    Hem Tomcat hem de Glassfish'u yapılandırma yönergeleri vardır.

    +1

    Teşekkürler, şu anda SPNEGO üzerinde çalışıyorum. :) – Amy

    0

    JCIFS NTLM (o NTLMv1'e ile çalışacaktır gerçi) no longer supported olduğunu http://appliedcrypto.com/. Mevcut projemde, önceden tavsiye edilen şekilde SPNEGO'u kullandık.

    Seçenekler 1, 2 & 3 size sunucu kullanıcıyı almaya çalışacağım - Eğer istemci makine ile etkileşim nasıl bu kod & yayınlandığı yeri hakkında düşünmek zorunda isteyebilirsiniz (ipucu - bu olamaz)

    +0

    Teşekkürler, şu anda SPNEGO üzerinde çalışıyorum. :) – Amy

    4

    WAFFLE bunun için harika bir çözümdür. Kerberos yapılandırmasına gerek yoktur.

    İlgili konular