ADFS คืออะไร (Active Directory Federation Services)


77

ดังนั้นฉันจึงได้รับแจ้งว่าแอปพลิเคชัน PHP ของเราอาจต้องสนับสนุนการตรวจสอบสิทธิ์โดยใช้ ADFS

  1. สำหรับบุคคลที่ไม่ใช่ Microsoft ADFS คืออะไร

  2. มันแตกต่างจากสิ่งต่างๆเช่น LDAP อย่างไร

  3. มันทำงานยังไง? ข้อมูลประเภทใดที่จะรวมอยู่ในคำขอทั่วไปไปยังเซิร์ฟเวอร์ ADFS มันถูกออกแบบมาสำหรับการตรวจสอบและการอนุญาต?

  4. โดยทั่วไปแล้วเซิร์ฟเวอร์ ADFS สามารถเข้าถึงได้จากอินเทอร์เน็ต (ในขณะที่ตัวควบคุมโดเมน AD ขององค์กรจะไม่เป็น)

ฉันได้ลองอ่านเอกสาร Technet แล้ว แต่เต็มไปด้วยคำพูดของ Microsoft ที่ไม่เป็นประโยชน์อย่างมหาศาล

Wikipedia นั้นดีกว่า (ดูด้านล่าง) แต่บางทีชุมชน ServerFault บางแห่งสามารถเติมช่องว่างบางส่วนได้

Active Directory Federation Services (ADFS)เป็นส่วนประกอบซอฟต์แวร์ที่พัฒนาโดย Microsoft ซึ่งสามารถติดตั้งบนระบบปฏิบัติการ Windows Server เพื่อให้ผู้ใช้สามารถเข้าถึงระบบและแอพพลิเคชั่นที่อยู่บนขอบเขตขององค์กร มันใช้โมเดลการอนุญาตการควบคุมการเข้าถึงตามการอ้างสิทธิ์เพื่อรักษาความปลอดภัยของแอปพลิเคชันและใช้เอกลักษณ์รวม

การรับรองความถูกต้องโดยใช้การเรียกร้องเป็นกระบวนการของการตรวจสอบผู้ใช้ตามชุดของการเรียกร้องเกี่ยวกับตัวตนที่มีอยู่ในโทเค็นที่เชื่อถือได้

ใน ADFS การรวมตัวกันของอัตลักษณ์ถูกจัดตั้งขึ้นระหว่างสององค์กรโดยสร้างความเชื่อมั่นระหว่างสองอาณาจักรความปลอดภัย เซิร์ฟเวอร์รวมในด้านหนึ่ง (ด้านบัญชี) รับรองความถูกต้องของผู้ใช้ผ่านวิธีการมาตรฐานใน Active Directory Domain Services จากนั้นออกโทเค็นที่มีชุดของการเรียกร้องเกี่ยวกับผู้ใช้รวมถึงข้อมูลประจำตัว ในอีกด้านหนึ่งด้านทรัพยากรเซิร์ฟเวอร์รวมเครื่องอื่นจะตรวจสอบโทเค็นและออกโทเค็นอื่นเพื่อให้เซิร์ฟเวอร์ท้องถิ่นยอมรับข้อมูลระบุตัวตนที่อ้างสิทธิ์ สิ่งนี้อนุญาตให้ระบบจัดให้มีการควบคุมการเข้าถึงทรัพยากรหรือบริการของตนให้กับผู้ใช้ที่เป็นของอาณาจักรความปลอดภัยอื่นโดยไม่ต้องการให้ผู้ใช้รับรองความถูกต้องโดยตรงกับระบบและไม่มีทั้งสองระบบที่ใช้ฐานข้อมูลร่วม

ในทางปฏิบัติวิธีการนี้โดยทั่วไปจะรับรู้โดยผู้ใช้ดังนี้

  1. ผู้ใช้ล็อกอินเข้าสู่พีซีของตน (ตามปกติเมื่อเริ่มทำงานในตอนเช้า)
  2. ผู้ใช้จำเป็นต้องได้รับข้อมูลเกี่ยวกับเว็บไซต์เอกซ์ทราเน็ตของ บริษัท คู่ค้าตัวอย่างเช่นเพื่อรับราคาหรือรายละเอียดผลิตภัณฑ์
  3. ผู้ใช้นำทางไปยังไซต์เอ็กซ์ทราเน็ตของ บริษัท คู่ค้าตัวอย่างเช่น: http://example.com
  4. ตอนนี้เว็บไซต์พันธมิตรไม่จำเป็นต้องพิมพ์รหัสผ่านใด ๆ - แทนข้อมูลรับรองผู้ใช้จะถูกส่งผ่านไปยังไซต์เอกซ์ทราเน็ตของพันธมิตรโดยใช้ AD FS
  5. ขณะนี้ผู้ใช้ถูกล็อกอินเข้าสู่เว็บไซต์พันธมิตรและสามารถโต้ตอบกับเว็บไซต์ 'ล็อกอิน'

จากhttps://en.wikipedia.org/wiki/Active_Directory_Federation_Services


ฉันพบบทความเหล่านี้ และวิดีโอนี้มีประโยชน์ในการให้ภาพรวม
Simon East

Reaces ให้คำตอบที่ยอดเยี่ยม ข้อมูลเพิ่มเติมเพียงอย่างเดียวที่ฉันจะเพิ่มคือมันอาจจ่ายให้กับเข้าใจWS-Federation โปรโตคอลและSecurity Assertion Markup Language (SAML)ซึ่งเป็นมาตรฐานที่ ADFS ใช้ นี่คือวิดีโอบางส่วนที่ฉันพบว่ามีประโยชน์ในการทำความเข้าใจแนวคิด (ค่อนข้างซับซ้อน) เหล่านี้ น่าเสียดายที่มีเนื้อหามากมายที่ฉันไม่สามารถรวมไว้ที่นี่ ! [ภาพขนาดย่อของวิดีโอ ทำความเข้าใจ SAML และการลงชื่อเพียงครั้งเดียว 101บน YouTube] ( youtube.com/watch?v=gUmMcecHN9s ) [! [รูปขนาดย่อวิดีโอ] (http
Simon East

ฉันยังมีปัญหาในการทำความเข้าใจกับ ADFS ฉันต้องการคำอธิบายตั้งแต่เริ่มต้น (ฉันไม่ใช่คนโฆษณา) วิดีโอนี้ซึ่งรวมอยู่ในซีรีส์ที่กล่าวถึงในความคิดเห็นที่นี่มีประโยชน์มากสำหรับฉัน นี่คือจุดเริ่มต้นของผู้ที่ไม่มีประสบการณ์ใหม่ ๆ ที่ใช้ ADFS แล้วดำเนินการต่อกับวิดีโอส่วนที่เหลือในซีรีส์ ฉันหวังว่ามันจะช่วย youtube.com/…
เมาริซิโอซาราโกซ่า

1
ขออภัยผู้ดำเนินการลบคำตอบของฉันด้วยวิดีโอที่มีประโยชน์และทำให้มันเป็นความคิดเห็นด้านบน แต่ตอนนี้ใช้งานไม่ได้ ที่น่าผิดหวัง
Simon East

คำตอบ:


97

สำหรับบุคคลที่ไม่ใช่ Microsoft ADFS คืออะไร

ADFS เป็นโซลูชันของ Microsoft สำหรับการลงชื่อเพียงครั้งเดียวและการตรวจสอบความถูกต้องทางเว็บ

โดยส่วนใหญ่จะใช้เพื่อให้ข้อมูลรับรองชุดเดียวที่สามารถเข้าถึงไซต์ที่หลากหลายซึ่งไม่จำเป็นต้องโฮสต์ภายในโดเมนเดียวกัน

มันแตกต่างจากสิ่งต่างๆเช่น LDAP อย่างไร

LDAP:

  • สื่อสารโดยใช้ TCP / UDP บนพอร์ต 389 (หรือพอร์ต 636 สำหรับ LDAPS)
  • มีคำสั่งสำหรับการค้นหา / ดึง / เพิ่ม / ลบ / แก้ไขผู้ใช้โปรไฟล์และรายการไดเรกทอรีอื่น ๆ
  • สามารถไม่ได้รับการดำเนินการโดยตรงจากเว็บเบราว์เซอร์, การตรวจสอบ HTTP แต่สามารถแปล LDAP โดยใช้สิ่งที่ต้องการของ mod_authnz_ldapApache
  • เมื่อใช้สำหรับการรับรองความถูกต้องของเว็บไซต์บุคคลที่สามต้องมีการระบุชื่อผู้ใช้และรหัสผ่านให้กับบุคคลที่สามซึ่งไม่เหมาะสำหรับการรักษาความปลอดภัย
  • เป็นมาตรฐานแบบเปิดและมีการใช้งาน Linux มากมาย

ADFS:

  • ออกแบบมาให้ดีขึ้นสำหรับเว็บในขณะที่สื่อสารผ่าน HTTPS มาตรฐาน
  • ปฏิบัติตามกระบวนการที่ปลอดภัยยิ่งขึ้นคล้ายกับ OAuth ที่ชื่อผู้ใช้ / รหัสผ่านดั้งเดิมให้โดยตรงไปยังเซิร์ฟเวอร์ ADFS ขององค์กร (หรือพร็อกซี แต่ไม่ใช่บุคคลที่สาม) ซึ่งหากถูกต้องจะส่งคืนโทเค็นที่ไม่ซ้ำใครซึ่งสามารถ ใช้เพื่อเข้าถึงเว็บไซต์บุคคลที่สาม
  • แม้ว่าจะใช้ประโยชน์จากมาตรฐานแบบเปิดบางอย่าง (HTTPS, SAML และอื่น ๆ ) แต่ก็เป็นของ Microsoft และต้องการ Internet Information Services (IIS) ซึ่งทำงานบน Windows Servers เท่านั้น

ดูคำตอบนี้ในหัวข้อ

มันทำงานยังไง? ข้อมูลประเภทใดที่จะรวมอยู่ในคำขอทั่วไปไปยังเซิร์ฟเวอร์ ADFS มันถูกออกแบบมาสำหรับการตรวจสอบและการอนุญาต?

มันทำงานได้โดยมีเว็บไซต์เดียว (ไซต์ A) ที่โฮสต์พร็อกซีเซิร์ฟเวอร์ ADFS / ADFS ซึ่งมีการเข้าถึงข้อมูลประจำตัว (โดยปกติแล้วจะสื่อสารกับ Active Directory Domain Controller) จากนั้นจะได้รับความไว้วางใจระหว่างไซต์อื่น ๆ (ไซต์ B & C) ที่ต้องการการตรวจสอบผ่าน ADFS

เมื่อผู้ใช้พยายามเข้าถึงไซต์ B ในเบราว์เซอร์ไซต์จะเปลี่ยนเส้นทางผู้ใช้ไปยังเว็บไซต์ ADFS-proxy (ไซต์ A) ซึ่งขอชื่อผู้ใช้และรหัสผ่านรับรองความถูกต้องส่งคืนชุดคุกกี้เพื่อจดจำพวกเขาและเปลี่ยนเส้นทางพวกเขา กลับไปที่ไซต์ B พร้อมด้วยโทเค็นการเข้าถึง

หากผู้ใช้พยายามเข้าชมไซต์ C พวกเขาจะได้รับการเปลี่ยนเส้นทางไปยังไซต์ A เพื่อตรวจสอบความถูกต้องจากเว็บไซต์ ADFS-proxy หากมีคุกกี้ที่ถูกต้องอยู่ผู้ใช้จะไม่ต้องป้อนรหัสผ่านอีกครั้ง แต่จะเปลี่ยนเส้นทางกลับไปยังไซต์ C ทันทีด้วยโทเค็น

ADFS สามารถกำหนดค่าด้วยการอ้างสิทธิ์ (หรือสิทธิ์) เฉพาะสำหรับผู้ใช้เพื่อการอนุญาต ดังนั้นจึงสามารถให้บริการทั้งสองบทบาท (สังเกตความแตกต่างระหว่างการรับรองความถูกต้องและการอนุญาต )

บางคนไม่ต้องการใช้เพื่อขออนุญาต แต่ให้จัดการสิทธิ์ในเว็บไซต์บุคคลที่สามแทน ข้อเสียที่เห็นได้ชัดคือทั้งไซต์ A & B จำเป็นต้องติดตามบัญชีผู้ใช้ในขณะที่สถานการณ์ที่ ADFS จัดการทั้งสองนั้นมีเพียง ADFS เท่านั้นที่ต้องระวังผู้ใช้

โดยทั่วไปแล้วเซิร์ฟเวอร์ ADFS สามารถเข้าถึงได้จากอินเทอร์เน็ต (ในขณะที่ตัวควบคุมโดเมน AD ขององค์กรจะไม่เป็น)

ใช่เกือบตลอดเวลา ADFS ขึ้นอยู่กับแนวคิดที่ว่าจะใช้เป็นหลักในการตรวจสอบเว็บไซต์ และถูกสร้างขึ้นรอบ ๆ IIS

ไซต์ ADFS-proxy เป็นไซต์ที่เข้าถึงได้จากอินเทอร์เน็ต อย่างไรก็ตาม ADFS นั้นไม่ใช่ ADFS โดยทั่วไปจะเป็นเซิร์ฟเวอร์แยกต่างหากจาก ADFS-proxy

  • เซิร์ฟเวอร์ ADFS
    ที่เชื่อมโยงไปยังข้อมูลประจำตัวและมีการกำหนดค่าการอ้างสิทธิ์รวมถึง trusts โดยทั่วไปไม่สามารถเข้าถึงได้แบบสาธารณะ
  • เซิร์ฟเวอร์พร็อกซีเซิร์ฟเวอร์ ADFS
    ที่โฮสต์อินสแตนซ์ IIS ที่มีหน้าล็อกอินสำหรับเว็บไซต์ที่ต้องการการรับรองความถูกต้อง สื่อสารกลับไปที่ ADFS เมื่อต้องการการรับรองความถูกต้อง โดยทั่วไปสามารถเข้าถึงได้ทั่วไป

11
เพื่อชี้แจง: ADFS Proxy Serverต้องทำงานบน IIS (Windows) อย่างไรก็ตามเว็บไซต์ของลูกค้า (B & C) สามารถเรียกใช้ระบบปฏิบัติการและเว็บเซิร์ฟเวอร์ใด ๆ รวมถึง Linux
Olli

มีประโยชน์มากเพียงแค่สร้างบัญชีเพื่อยกนิ้วให้
Juan

การขยายคำตอบ @Reaces 'ADFS 4.0 บน Windows Server 2016 รองรับการเชื่อมต่อ OAuth / OpenId อย่างสมบูรณ์
Mohammad Reza Sadreddini

@MohammadRezaSadreddini รู้สึกอิสระที่จะแก้ไขคำตอบเพื่อขยาย
ร่วม
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.