ความแตกต่างระหว่าง SP ที่เริ่ม SSO และ IDP ที่เริ่มต้น SSO


108

ใครช่วยอธิบายให้ฉันฟังได้ไหมว่าความแตกต่างที่สำคัญระหว่างSP ที่เริ่มต้น SSOและIDP ที่ริเริ่ม SSOคืออะไรรวมถึงวิธีใดที่จะเป็นทางออกที่ดีกว่าสำหรับการใช้ single sign on ร่วมกับ ADFS + OpenAM Federation


2
เพื่อชี้แจงสำหรับผู้ที่เพิ่งเริ่มใช้แนวคิด single sign on: SP = service provider (ระบบที่ผู้ใช้ต้องการใช้) และ IdP = ระบุผู้ให้บริการ (ระบบที่รับรองความถูกต้องของผู้ใช้)
Seafish

คำตอบ:


73

ใน IDP Init SSO (Unsolicited Web SSO) กระบวนการสหพันธรัฐเริ่มต้นโดย IDP ที่ส่งการตอบสนอง SAML ที่ไม่ได้ร้องขอไปยัง SP ใน SP-Init SP จะสร้าง AuthnRequest ที่ส่งไปยัง IDP เป็นขั้นตอนแรกในกระบวนการ Federation จากนั้น IDP จะตอบสนองด้วยการตอบสนอง SAML การสนับสนุน IMHO ADFSv2 สำหรับ SAML2.0 Web SSO SP-Init นั้นแข็งแกร่งกว่าการสนับสนุน IDP-Init เกี่ยวกับการรวมเข้ากับผลิตภัณฑ์ Fed ของบุคคลที่สาม (ส่วนใหญ่หมุนเวียนไปที่การสนับสนุน RelayState) ดังนั้นหากคุณมีทางเลือกคุณจะต้องใช้ SP- เริ่มต้นเนื่องจากอาจทำให้ชีวิตง่ายขึ้นด้วย ADFSv2

ต่อไปนี้เป็นคำอธิบาย SSO ง่ายๆจากคู่มือเริ่มต้นใช้งาน PingFederate 8.0 ที่คุณสามารถอ่านข้อมูลเหล่านี้ได้เช่นกัน - https://documentation.pingidentity.com/pingfederate/pf80/index.shtml#gettingStartedGuide/task/idpInitiatedSsoPOST.html


81

IDP เริ่มต้น SSO

จากเอกสาร PingFederate: - https://docs.pingidentity.com/bundle/pf_sm_supportedStandards_pf82/page/task/idpInitiatedSsoPOST.html

ในสถานการณ์สมมตินี้ผู้ใช้ล็อกออนเข้าสู่ IdP และพยายามเข้าถึงทรัพยากรบนเซิร์ฟเวอร์ SP ระยะไกล การยืนยัน SAML ถูกส่งไปยัง SP ผ่าน HTTP POST

ขั้นตอนการประมวลผล:

  1. ผู้ใช้เข้าสู่ระบบ IdP
  2. ผู้ใช้ร้องขอการเข้าถึงทรัพยากร SP ที่มีการป้องกัน ผู้ใช้ไม่ได้เข้าสู่ระบบไซต์ SP
  3. อีกทางหนึ่ง IdP จะดึงแอตทริบิวต์จากที่เก็บข้อมูลผู้ใช้
  4. บริการ SSO ของ IdP จะส่งคืนรูปแบบ HTML ไปยังเบราว์เซอร์ด้วยการตอบสนอง SAML ที่มีการยืนยันการพิสูจน์ตัวตนและแอตทริบิวต์เพิ่มเติมใด ๆ เบราว์เซอร์จะโพสต์แบบฟอร์ม HTML กลับไปที่ SP โดยอัตโนมัติ

SP ริเริ่มสส

จากเอกสาร PingFederate: - http://documentation.pingidentity.com/display/PF610/SP-Initiated+SSO--POST-POST

ในสถานการณ์สมมตินี้ผู้ใช้พยายามเข้าถึงทรัพยากรที่มีการป้องกันโดยตรงบนเว็บไซต์ SP โดยไม่ต้องเข้าสู่ระบบ ผู้ใช้ไม่มีบัญชีบนไซต์ SP แต่มีบัญชีส่วนกลางที่จัดการโดย IdP บุคคลที่สาม SP ส่งคำขอรับรองความถูกต้องไปยัง IdP ทั้งคำขอและการยืนยัน SAML ที่ส่งคืนจะถูกส่งผ่านเบราว์เซอร์ของผู้ใช้ผ่าน HTTP POST

ขั้นตอนการประมวลผล:

  1. ผู้ใช้ร้องขอการเข้าถึงทรัพยากร SP ที่ได้รับการป้องกัน คำขอถูกเปลี่ยนทิศทางไปยังเซิร์ฟเวอร์ federation เพื่อจัดการการพิสูจน์ตัวตน
  2. เซิร์ฟเวอร์ federation จะส่งแบบฟอร์ม HTML กลับไปยังเบราว์เซอร์พร้อมกับคำขอ SAML สำหรับการพิสูจน์ตัวตนจาก IdP แบบฟอร์ม HTML จะโพสต์โดยอัตโนมัติไปยังบริการ SSO ของ IdP
  3. หากผู้ใช้ยังไม่ได้ล็อกออนเข้าสู่ไซต์ IdP หรือหากจำเป็นต้องมีการตรวจสอบสิทธิ์อีกครั้ง IdP จะขอข้อมูลประจำตัว (เช่น ID และรหัสผ่าน) และผู้ใช้ล็อกออน
  4. ข้อมูลเพิ่มเติมเกี่ยวกับผู้ใช้อาจดึงมาจากที่เก็บข้อมูลผู้ใช้เพื่อรวมไว้ในการตอบกลับ SAML (แอตทริบิวต์เหล่านี้กำหนดไว้ล่วงหน้าโดยเป็นส่วนหนึ่งของข้อตกลงสหพันธ์ระหว่าง IdP และ SP)

  5. บริการ SSO ของ IdP จะส่งคืนรูปแบบ HTML ไปยังเบราว์เซอร์ด้วยการตอบสนอง SAML ที่มีการยืนยันการพิสูจน์ตัวตนและแอตทริบิวต์เพิ่มเติมใด ๆ เบราว์เซอร์จะโพสต์แบบฟอร์ม HTML กลับไปที่ SP โดยอัตโนมัติ หมายเหตุ:ข้อกำหนด SAML กำหนดให้การตอบกลับ POST ต้องลงนามแบบดิจิทัล

  6. (ไม่แสดง) หากลายเซ็นและการยืนยันถูกต้อง SP จะสร้างเซสชันสำหรับผู้ใช้และเปลี่ยนเส้นทางเบราว์เซอร์ไปยังทรัพยากรเป้าหมาย


1
Re SP เริ่มต้น SSO - จุดที่ 3 ด้านบนระบุว่า "หากผู้ใช้ยังไม่ได้ล็อกออนเข้าสู่ไซต์ IdP หรือหากจำเป็นต้องมีการตรวจสอบสิทธิ์อีกครั้ง IdP จะขอข้อมูลรับรอง (เช่น ID และรหัสผ่าน) และผู้ใช้ล็อกออน" ระบบตรวจสอบได้อย่างไรว่าผู้ใช้เข้าสู่ระบบเว็บไซต์ IdP หรือไม่ มันสร้างคุกกี้หรือไม่?
Edwardo

1
@Edwardo สมมติฐานของคุณถูกต้อง เมื่อสร้างเซสชันด้วย IdP โดยปกติ IdP จะสร้างคุกกี้เพื่อรักษาเซสชันนั้นไว้
jekennedy

ฉันมีคำถามอื่นstackoverflow.com/questions/43861315/… . ขอดูหน่อยได้ไหม?
kawadhiya21

ลิงค์เสีย
Heinzlmaen

51

SP ริเริ่มสส

เรียกเก็บเงินผู้ใช้: "สวัสดีจิมมี่ขอดูรายงานนั้นหน่อย"

Jimmy the SP: "เฮ้ฉันยังไม่แน่ใจว่าคุณเป็นใครเรามีกระบวนการที่นี่ดังนั้นคุณต้องไปตรวจสอบตัวเองกับ Bob the IdP ก่อนฉันเชื่อใจเขา"

Bob the IdP: "ฉันเห็นว่าจิมมี่ส่งคุณมาที่นี่โปรดให้ข้อมูลรับรองของคุณแก่ฉัน"

เรียกเก็บเงินผู้ใช้: "สวัสดีฉันชื่อบิลนี่คือข้อมูลรับรองของฉัน"

Bob the IdP: "สวัสดี Bill ดูเหมือนว่าคุณจะเช็คเอาท์"

Bob the IdP: "เฮ้จิมมี่บิลผู้ชายคนนี้เช็คเอาต์และนี่คือข้อมูลเพิ่มเติมเกี่ยวกับเขาคุณทำอะไรก็ได้ที่คุณต้องการจากที่นี่"

Jimmy the SP: "โอเคดีดูเหมือนว่า Bill จะอยู่ในรายชื่อแขกที่รู้จักของเราด้วยฉันจะให้ Bill เข้ามา"

IdP เริ่มต้น SSO

เรียกเก็บเงินผู้ใช้: "เฮ้บ๊อบฉันต้องการไปที่ของจิมมี่ที่นั่นความปลอดภัยแน่นหนา"

Bob the IdP: "เฮ้จิมมี่ฉันเชื่อใจ Bill เขาตรวจสอบและนี่คือข้อมูลเพิ่มเติมเกี่ยวกับเขาคุณทำอะไรก็ได้ที่คุณต้องการจากที่นี่"

Jimmy the SP: "โอเคดีดูเหมือนว่า Bill จะอยู่ในรายชื่อแขกที่รู้จักของเราด้วยฉันจะให้ Bill เข้ามา"


ผมเข้าไปดูรายละเอียดเพิ่มเติมได้ที่นี่ แต่ยังคงรักษาสิ่งที่ง่าย: https://jorgecolonconsulting.com/saml-sso-in-simple-terms/


33
ฉันไม่คิดว่าการสนทนาครั้งที่สองนั้นถูกต้อง .... แทนที่จะเป็น: IdP: "เฮ้นี่คือข้อมูลบางอย่างเกี่ยวกับ Sal โปรดแจ้งให้เธอทราบ" / SP: "โอเคฉันเชื่อใจคุณฉันจะปล่อยให้เธอ ใน "
Jeff Olson

4
การสนทนาครั้งแรกก็ไม่ถูกต้องเช่นกัน: ในขั้นตอนแรก SP ไม่รู้อะไรเลยเกี่ยวกับผู้ใช้รายใด แต่ที่ IdP ผู้ใช้จะเข้าสู่ระบบและระบุตัวเองว่าเป็น "Sal"
Allie

4
บทสนทนาแรกควรเป็น SP: "เฮ้ ID ของคุณอยู่ที่ไหน" IdP: "เดี๋ยวก่อนฉันจะตรวจสอบให้ฉันขอดู ID ของคุณได้โปรดปล่อยเธอเข้ามาเธอชื่อ Sal และเธออายุ 21 ปี (ไม่บังคับ)" SP: "Cool dude, your awesome! Hey you, come on in !”
Erdal G.

3
ฉันเชื่อว่าคำตอบนี้ไม่สมควรได้รับคะแนนเสียงลดลงที่ได้รับ ตอบคำถามด้วยวิธีที่สร้างสรรค์อาจจะไม่ถูกต้องเหมือนที่บางคนชี้ให้เห็น แต่ความคิดสร้างสรรค์ก็ไม่ใช่น้อย
Aaron C

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