การเปลี่ยนเส้นทางหลังออกจากระบบใน OpenID Connect
เมื่อฉันลงชื่อเข้าใช้แอปพลิเคชันของฉันด้วย 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 โดยใช้สิ่งนั้น
คำตอบ
ตามที่คุณได้ค้นพบเฉพาะ 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 (ทั้งช่องด้านหน้าและด้านหลัง) ยังคงเป็นแบบร่างและยังไม่สิ้นสุด