การเปลี่ยนเส้นทางหลังออกจากระบบใน OpenID Connect

Aug 20 2020

เมื่อฉันลงชื่อเข้าใช้แอปพลิเคชันของฉันด้วย Salesforce ในฐานะ OpenID Connect Provider (OP) ฉันสามารถทำได้ แต่เมื่อฉันพยายามและออกจากระบบของแอพลิเคชันของฉันฉันออกจากระบบ Salesforce https://{MY_DOMAIN}.my.salesforce.com/แล้วเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบของฉัน

พฤติกรรมที่คาดหวัง:

เมื่อคำขอล็อกเอาต์ด้วยpost_logout_redirect_uriถูกส่งไปยัง OP OP ควรเปลี่ยนเส้นทางไปยัง URL นี้หลังจากลำดับการออกจากระบบของตัวเอง

พฤติกรรมจริง:

เมื่อฉันพยายามออกจากระบบแอปพลิเคชันฉันถูกเปลี่ยนเส้นทางไปยังโดเมน Salesforce ของฉันและขอให้ลงชื่อเข้าใช้ Salesforce อีกครั้ง

สิ่งที่ฉันพยายาม:

ตามเอกสารประกอบฉันได้เปิดใช้งาน Single Logout บนแอพที่เชื่อมต่อโดยพยายามใช้ทั้งสองอย่างhttps://{MY_KEYCLOAK_DOMAIN}/auth/realms/{REALM}/broker/{IDP}/endpoint/logout_responseและhttps://{MY_KEYCLOAK_DOMAIN}/auth/realms/{REALM}/protocol/openid-connect/logoutเป็นSingle Logout URLค่าในการกำหนดค่าแอพที่เชื่อมต่อ

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

คำตอบ

identigral Aug 20 2020 at 01:22

ตามที่คุณได้ค้นพบเฉพาะ Front-channel OIDC single logout (SLO) เท่านั้นที่รองรับ SF ที่ทำหน้าที่เป็น OpenID Connect Provider (OP) แห่งนี้ตั้ง / ได้รับการยืนยันผ่านทางเมตาดาต้า OIDC /.well-known/openid-configurationภายใต้

Front-channel SLO ทำงานอย่างไรใน OIDC จากข้อมูลจำเพาะ :

OP ที่รองรับการล็อกเอาต์โดยใช้ HTTP จำเป็นต้องติดตามชุดของ RP ที่ล็อกอินเพื่อให้พวกเขารู้ว่าต้องติดต่อ RP ใดที่ URI การออกจากระบบเพื่อทำให้พวกเขาออกจากระบบ OP บางส่วนติดตามสถานะนี้โดยใช้คุกกี้ "ไซต์ที่เยี่ยมชม" OPs ติดต่อพวกเขาแบบขนานโดยใช้เพจที่สร้างแบบไดนามิกพร้อม<iframe src="frontchannel_logout_uri">แท็กHTML ที่แสดงผล URI การล็อกเอาต์ของ RP ที่ล็อกอินแต่ละรายการ

ไม่มีการกล่าวถึงpost_logout_redirect_uri. (ข้อมูลจำเพาะการจัดการเซสชัน OIDC เคยพูดถึงpost_logout_redirect_uriแต่ถูกลบออกในร่างล่าสุด)

ตามเอกสารความช่วยเหลือที่คุณอ้างอิงถึง URI การล็อกเอาต์แชนเนลด้านหน้าที่ข้อมูลจำเพาะพูดถึงจะดึงมาโดย Salesforce จากฟิลด์ Single Logout ของแอปที่เชื่อมต่อ

สำหรับการโพสต์ออกจากระบบการเปลี่ยนเส้นทางจาก Salesforce คุณสามารถกำหนดค่า URL Setup => Session Settings => Logout Page Settings => Logout URLออกจากระบบในระดับองค์กรผ่านทาง สิ่งนี้จะใช้กับแอพที่เชื่อมต่อทั้งหมด ค่าของการตั้งค่าการกำหนดค่านี้สามารถชี้ไปที่บริการตามโค้ดที่คุณกำหนดเองซึ่งทำงานอยู่ที่ใดก็ตามที่สามารถตรวจสอบคำขอเพิ่มเติมและดำเนินขั้นตอนหลังการประมวลผลที่เหมาะสม

หมายเหตุ: ข้อกำหนดของเซสชัน OIDC mgmt + SLO (ทั้งช่องด้านหน้าและด้านหลัง) ยังคงเป็นแบบร่างและยังไม่สิ้นสุด