SORU
23 Aralık 2008, Salı


Linux üzerinde Java ile Active Directory karşı kimlik doğrulaması

Java kullanarak Active Directory karşı kimlik doğrulaması için basit bir görev var. Sadece doğrulama kimlik bilgileri ve başka bir şey. Hadi benim etki alanı "eğlenceli biri olduğunu söylüyor.xyz.karşılık", OU yolu bilinmeyen, ve kullanıcı adı/parola tetsu/testp.

Bu görevi kolaylaştırmak orada birkaç Java kütüphanelerini olduğunu biliyorum, ama onları hayata başarılı değildim. LDAP genel olarak ele bulduğum bu örneklerin çoğu, özellikle Active Directory değil. Amir LDAP isteği yok içinde bir OU yolu, gönderme anlamına gelir. Ayrıca, LDAP isteği bu uygulama kimlik bilgilerini bir yerde bulunabilir saklı olmalı erişmek için Active Directory için zaten bağlı... Güvensiz olmalıdır. Mümkünse test kimlik bilgileri ile test bağlamak istiyorum - bu hesap geçerli değil demek ki.

Son olarak, eğer mümkünse, bu tür bir kimlik doğrulama mekanizması şifreli yapmak için bir yolu var mı? REKLAM kullanan Kerberos, ama eğer Java LDAP yöntemleri eğer emin olmadığını biliyorum.

Herkes çalışma kod örneği var mı? Teşekkürler.

CEVAP
17 Ocak 2009, CUMARTESİ


Linux veya başka bir platform (HTTP ve bu hizmetleri sadece belirli değildir) Java ve Active Directory arasında kimlik doğrulaması yapmak için kullanılan 3 kimlik doğrulama protokolleri vardır:

  1. Kerberos Kerberos Oturum açma (SSO) ve heyet ancak web sunucuları da SPNEGO destek SSO kabul etmek gerekir Tek IE ile sağlar.

  2. NTLM NTLM IE ile SSO destekler (ve eğer düzgün yapılandırılmış ise, diğer tarayıcılar).

  3. LDAP LDAP bağlaması sadece bir hesap adı ve şifre doğrulamak için kullanılabilir.

Ayrıca bir şey "" uygulama temelde protokollerin diğer yukarıda. bir kullanarak dolaylı yoldan hangi böylece ADFS " diye bir şey var

Her bir protokol avantajları vardır ama maksimum uyumluluk için genel bir kural olarak, genellikle denemelisiniz "Windows yaptığı gibi yap". Windows ne yapıyor?

İlk olarak, iki Windows makineler arasında doğrulama sunucuları DC ile iletişim kurmak için gerek yoktur ve müşteriler DCs (ve Kerberos temsilcisi desteklediği için) üzerindeki yükü azaltan Kerberos Biletleri önbellek çünkü Kerberos yanadır.

Ama eğer kimlik doğrulaması yapan taraf değil, her iki etki alanı hesabı veya istemci DC ile iletişim kuramıyor bağlanmak için gereklidir. Kerberos ve NTLM birbirini dışlayan değil ve NTLM Kerberos tarafından obsoleted değildir. Bazı yönlerden aslında NTLM Kerberos daha iyidir. Aynı nefes Kerberos ve NTLM söz de SPENGO ve Tümleşik Windows Kimlik Doğrulaması (IWA) söz var unutmayın. IWA temelde Kerberos veya NTLM veya Kerberos veya NTLM SPNEGO pazarlık etmek anlamına geldiğini basit bir terimdir.

Kimlik bilgilerini doğrulamak için bir yol olarak bir LDAP bağlaması kullanarak verimli ve SSL gerektirir. Ama yakın zamana kadar uygulama Kerberos ve NTLM-shift kimlik doğrulama hizmeti olarak LDAP kullanarak kalıcı çok zor olmuştur. Ama bu noktada genellikle kaçınılmalıdır. LDAP bilgi listesi ve Kimlik Doğrulama hizmeti. Bu amaç için kullanabiliriz.

Kerberos uygulamak ya da web uygulamaları bağlamında Java ve NTLM özellikle musunuz?

Özellikle Java anma çözümler Arayışı Yazılım ve Centrify gibi büyük şirketler vardır. Yapamam gerçekten yorum bu gibi şirket genelinde "kimlik yönetimi çözümleri" Peki, bakıldığında pazarlama spin kendi web sitesi, bir şey diyemem tam olarak ne protokolleri kullanılan ve nasıl. Ayrıntılar için onlarla temas gerekir.

Java uygulama Kerberos standart Java kütüphanelerini org ile Kerberos desteği olarak çok zor değil.arayan numaraları.gssapı sınıflar. Son zamanlarda önemli bir engel oldu - YANİ çiğ Kerberos belirteçleri göndermez kadar ancak, SPNEGO jeton gönderir. Ama Java ile 6, SPNEGO uygulanmıştır. Teoride YANİ istemcilerin kimliğini doğrulamak için bazı GSSAPI kod yazmak gerekir. Ama hiç denemedim. Güneş uygulaması Kerberos edilmiş bir komedi hatalar yıllara kadar dayanan Güneş Sicili bu alanda etmem olun herhangi bir söz hakkında kendi SPENGO uygulama kadar bu kuş ele.

NTLM için Ücretsiz bir OSS proje NTLM HTTP kimlik doğrulaması Sunucu uygulaması bir Filtre olan JCİFS denir. Ancak man-in-the-middle yöntemi NTLMv2 yavaş yavaş gerekli etki alanı güvenlik ilkesi haline gelmekte olan) ile çalışmaz bir SMB sunucusuna kimlik bilgilerini doğrulamak için kullanır. Bu nedenle ve diğerleri için, JCİFS HTTP Filtresi parçası çıkarılması planlanıyor. JCİFS aynı tekniği uygulamak için kullanan spin-off vardır unutmayın. Eğer NTLM SSO desteği olduğunu iddia eden diğer projeler görürseniz, ince baskı kontrol edin.

Active Directory ile NTLM kimlik bilgilerini doğrulamak için tek doğru yolu Güvenli Kanal ile NETLOGON üzerinde NetrLogonSamLogon DCERPC çağrı kullanıyor. Böyle bir şey Java var mı? Evet. İşte burada:

http://www.ioplex.com/jespa.html

Jespa NTLMv2, NTLMv1, tam bir bütünlük ve gizlilik seçenekleri ve söz konusu NETLOGON kimlik doğrulama destekleyen 100% Java NTLM bir uygulamasıdır. Ve SSO Filtre, JAAS LoginModule, HTTP istemci, SASL istemci ve sunucu (JNDI) bağlama, "" özel NTLM hizmet ve daha oluşturmak için. güvenlik sağlayıcı bir HTTP jenerik içerir

Mike

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Julian Smith

    Julian Smith

    31 EKİM 2006
  • knopik96

    knopik96

    7 Mayıs 2011
  • Perihelion

    Perihelion

    23 NİSAN 2008