ADFS (Active Directory Federasyon Hizmetleri) nedir?


77

Bu yüzden PHP uygulamamızın ADFS kullanarak kimlik doğrulamasını desteklemesi gerekebileceği söylendi.

  1. Microsoft olmayan bir kişi için ADFS nedir?

  2. LDAP gibi şeylerden farkı nedir?

  3. O nasıl çalışır? Bir ADFS sunucusuna yapılan tipik bir istekte ne tür bilgiler yer alır? Hem kimlik doğrulama hem de yetkilendirme için tasarlanmış mı?

  4. ADFS sunucularına genellikle internetten erişilebiliyor mu (oysa kurumsal AD etki alanı denetleyicileri olmayacak)?

Bazı Technet belgelerini okumayı denedim, ancak oldukça yararlı olmayan bir Microsoft-konuşması var.

Wikipedia daha iyidir (aşağıya bakınız), ancak belki de bazı ServerFault topluluğu bazı boşlukları doldurabilir.

Active Directory Federasyon Hizmetleri (ADFS) , Microsoft tarafından geliştirilen ve kullanıcılara kuruluş sınırları içinde bulunan sistemlere ve uygulamalara tek oturum açma erişimi sağlamak için Windows Server işletim sistemlerine yüklenebilen bir yazılım bileşenidir. Uygulama güvenliğini sağlamak ve federe kimlik uygulamak için talep tabanlı bir erişim denetimi yetkilendirme modeli kullanır.

Talep tabanlı kimlik doğrulama, bir kullanıcının güvenilir bir belirteçte bulunan kimliğiyle ilgili bir dizi iddiaya dayanarak kimliğini doğrulama işlemidir.

ADFS'de, iki güvenlik bölgesi arasında güven tesis edilerek iki kuruluş arasında kimlik federasyonu kurulur. Bir taraftaki federasyon sunucusu (Hesaplar tarafı), kullanıcıyı Active Directory Etki Alanı Hizmetleri'ndeki standart yollarla doğrular ve ardından kimliğini de içeren kullanıcı hakkında bir dizi hak talebi içeren bir simge yayınlar. Diğer tarafta, Kaynaklar tarafı, başka bir federasyon sunucusu belirteci doğrular ve yerel sunucuların talep edilen kimliği kabul etmesi için başka bir belirteç verir. Bu, bir kullanıcının doğrudan sisteme kimliğini doğrulamadan ve kullanıcı kimliklerini veya şifrelerini içeren bir veritabanını paylaşan iki sistem olmadan başka bir güvenlik alanına ait olan bir kullanıcıya kaynaklarına veya hizmetlerine kontrollü erişim sağlamasına izin verir.

Uygulamada bu yaklaşım tipik olarak kullanıcı tarafından şu şekilde algılanır:

  1. Kullanıcı kendi yerel bilgisayarına giriş yapar (sabahları işe başlarken normalde olduğu gibi)
  2. Kullanıcının bir ortak şirketin extranet web sitesinde bilgi alması gerekir - örneğin fiyatlandırma veya ürün ayrıntıları elde etmek için
  3. Kullanıcı, ortak şirket extranet sitesine gider - örneğin: http://example.com
  4. İş ortağı web sitesi artık herhangi bir parola girilmesini gerektirmez - bunun yerine, kullanıcı kimlik bilgileri AD FS kullanılarak iş ortağı extranet sitesine iletilir
  5. Kullanıcı artık ortak web sitesine giriş yapmış ve 'giriş yapmış' web sitesiyle etkileşime girebilir

Gönderen https://en.wikipedia.org/wiki/Active_Directory_Federation_Services


Bu makaleleri ve bu videoyu bir bakışta yardımcı olarak buldum .
Simon East,

Reaces mükemmel bir cevap verdi. Ekleyeceğim tek ek bilgi , ADFS'nin uyguladığı standartlar olan WS-Federasyon protokolünü ve Güvenlik Beyanı Biçimlendirme Dili'ni (SAML) anlamak için ödeyebileceği . İşte bu (oldukça karmaşık) kavramları anlamakta yararlı bulduğum birkaç video. Maalesef buraya dahil edemediğim çok fazla malzeme var. ! [Video küçük anlama SAML ve Tek Oturum Açma 101 YouTube'da] ( youtube.com/watch?v=gUmMcecHN9s ) [[Video küçük] (http!
Simon Doğu

Ayrıca ADFS'yi anlama konusunda da sorun yaşadım. En baştan bir açıklamaya ihtiyacım vardı (AD üyesi değilim). Buradaki yorumlarda belirtilen dizide yer alan bu video benim için çok yardımcı oldu. Bu, ADFS ile sıfır deneyime sahip herhangi bir kimsenin başlaması ve ardından dizideki diğer videolarla devam etmesi gerektiği yerdir. Umut ediyorum bu yardım eder. youtube.com/…
Mauricio Zaragoza

1
Üzgünüm millet, bir moderatör yardımcı videolardaki cevabımı silmiş ve yukarıdaki bir yorum yaptı, ancak bu şimdi bozuldu. Sinir bozucu.
Simon East

Yanıtlar:


97

Microsoft olmayan bir kişi için ADFS nedir?

ADFS, Microsoft'un Tek Oturum Açma ve web tabanlı kimlik doğrulama çözümü.

Öncelikle, aynı alanda barındırılması gerekmeyen çeşitli sitelere erişebilen tek bir kimlik bilgisi seti sağlamak için kullanılır.

LDAP gibi şeylerden farkı nedir?

LDAP:

  • 389 numaralı bağlantı noktasında TCP / UDP kullanarak iletişim kurar (veya LDAPS için 636 numaralı bağlantı noktasını)
  • Kullanıcıları, profilleri ve diğer dizin girişlerini aramak / almak / eklemek / silmek / değiştirmek için komutlar içerir
  • Can değil , bir web tarayıcısı tarafından doğrudan yapılabilir, ancak HTTP kimlik Apache adlı gibi şeyler kullanarak LDAP'a tercüme edilebilir mod_authnz_ldap.
  • Üçüncü taraf web sitesi kimlik doğrulaması için kullanıldığında, güvenlik için ideal olmayan üçüncü tarafa kullanıcı adı ve şifrenin girilmesini gerektirir.
  • Daha açık bir standarttır ve çok sayıda Linux uygulaması vardır.

AD FS:

  • Standart HTTPS üzerinden iletişim kurduğu için web için daha iyi tasarlanmış
  • Orijinal adı / şifre kuruluşun ADFS sunucu (veya vekil, ancak doğrudan verilmektedir OAuth'ta yapılan (kesin değil) benzer daha güvenli bir süreç takip değil geçerli olursa, olabilir, benzersiz bir kod döndüren üçüncü taraf), üçüncü taraf bir web sitesine erişmek için kullanılır.
  • Her ne kadar bazı açık standartları (HTTPS, SAML vb.) Kullanıyor olsa da, Microsoft'a özgüdür ve yalnızca Windows Sunucularında çalışan Internet Information Services (IIS) gerektirir.

Konuyla ilgili ayrıca bu cevaba bakınız .

O nasıl çalışır? Bir ADFS sunucusuna yapılan tipik bir istekte ne tür bilgiler yer alır? Hem kimlik doğrulama hem de yetkilendirme için tasarlanmış mı?

Kimlik bilgilerine erişen (genellikle bir Active Directory Etki Alanı Denetleyicisi ile iletişim kurarak) ADFS / ADFS proxy sunucularını barındıran tek bir siteye (site A) sahip olarak çalışır. Daha sonra ADFS üzerinden kimlik doğrulaması gerektiren diğer siteler (B & C siteleri) arasında güven verilir.

Bir kullanıcı, tarayıcıda B sitesine erişmeye çalıştığında, site kullanıcıyı, kullanıcı adını ve şifresini soran, kimliğini doğrulayan, hatırlamak için bir dizi çerez döndüren ve yeniden yönlendiren ADFS-proxy web sitesine (site A) yönlendirir. erişim belirteciyle birlikte B sitesine geri dönün.

Kullanıcı daha sonra C sitesini ziyaret etmeye çalışırsa, ADFS proxy web sitesinden kimlik doğrulaması için A sitesine yönlendirilir. Doğru çerezler mevcutsa, kullanıcının şifresini tekrar girmesi gerekmeyecek, ancak anında bir token ile C sitesine geri yönlendirilmesi istenecektir.

ADFS, yetkilendirme amacıyla kullanıcı için belirli taleplerle (veya izinlerle) yapılandırılabilir. Böylece her iki role da hizmet edebilir. ( Kimlik doğrulama ve yetkilendirme arasındaki farkı not edin .)

Bazı insanlar izin almak için kullanmamayı tercih ediyor, bunun yerine izin yönetimini üçüncü taraf web sitesinde tutuyor. Belirgin dezavantajı, her iki sitenin A & B'nin kullanıcı hesaplarını izlemesi gerektiği ve ADFS'nin her ikisini de kullandığı senaryoda, yalnızca ADFS'nin kullanıcıları bilmesi gerekir.

ADFS sunucularına genellikle internetten erişilebiliyor mu (oysa kurumsal AD etki alanı denetleyicileri olmayacak)?

Evet, neredeyse her zaman. ADFS, öncelikle web sitesi doğrulaması için kullanılacağı fikrine dayanır. Ve IIS etrafında inşa edilmiştir.

ADFS-proxy sitesi, genellikle internetten erişilebilen bir sitedir. Ancak ADFS'nin kendisi değildir. ADFS, genellikle ADFS-proxy'den ayrı bir sunucudur.


  • Kimlik bilgilerine bağlanan ve güvenlerin yanı sıra talep yapılandırmasına sahip olan ADFS Sunucu Sunucusu. Genel olarak halka açık değildir.

  • Kimlik doğrulama gerektiren web siteleri için giriş sayfasına sahip olan IIS örneğini barındıran ADFS Proxy Sunucu Sunucusu. Kimlik doğrulama istediğinde tekrar ADFS'ye iletişim kurar. Genel olarak halka açık.

11
Netleştirmek için: ADFS Proxy Sunucusu'nun IIS'de çalışması gerekir (Windows). Bununla birlikte, istemci web siteleri (B & C) Linux dahil herhangi bir işletim sistemi ve web sunucusunu çalıştırabilir.
Olli

Çok faydalı, sadece bunu düzeltmek için bir hesap oluşturdum.
Juan

@Reaces'in yanıtını genişleten Windows Server 2016'daki ADFS 4.0, OAuth / OpenId Connect'i tamamen destekler.
Mohammad Reza Sadreddini,

@MohammadRezaSadreddini Üzerinde genişletmek için cevabı düzenlemek için çekinmeyin.
Ağustos’ta 08:54
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.