Pengalihan pasca-logout di OpenID Connect
Saat saya masuk ke aplikasi saya dengan Salesforce sebagai OpenID Connect Provider (OP), saya bisa melakukannya. Namun, ketika saya mencoba dan keluar dari aplikasi saya, saya keluar dari Salesforce dan kemudian dialihkan ke halaman login Salesforce saya https://{MY_DOMAIN}.my.salesforce.com/
.
Perilaku yang Diharapkan:
Ketika permintaan logout dengan post_logout_redirect_uri
dikirim ke OP, OP harus mengarahkan ke URL ini setelah urutan logout-nya sendiri.
Perilaku Sebenarnya:
Ketika saya mencoba untuk keluar dari aplikasi, saya dialihkan ke domain Salesforce saya dan diminta untuk masuk ke Salesforce lagi.
Apa yang Saya Coba:
Sesuai Dokumentasi , saya telah mengaktifkan Single Logout pada aplikasi yang terhubung mencoba keduanya https://{MY_KEYCLOAK_DOMAIN}/auth/realms/{REALM}/broker/{IDP}/endpoint/logout_response
dan https://{MY_KEYCLOAK_DOMAIN}/auth/realms/{REALM}/protocol/openid-connect/logout
sebagai Single Logout URL
nilai dalam konfigurasi aplikasi yang terhubung.
Saya telah mencoba menggunakan metode keluar saluran belakang, tetapi tampaknya tidak keluar dari Salesforce menggunakan itu.
Jawaban
Seperti yang Anda ketahui, hanya saluran depan OIDC single logout (SLO) yang didukung oleh SF yang bertindak sebagai OpenID Connect Provider (OP). Ini / dapat dikonfirmasi melalui metadata OIDC di bawah /.well-known/openid-configuration
.
Bagaimana cara kerja SLO saluran depan di OIDC? Dari spesifikasi :
OP yang mendukung logout berbasis HTTP perlu melacak kumpulan RP yang login sehingga mereka tahu RP apa yang harus dihubungi di URI logout mereka untuk menyebabkan mereka logout. Beberapa OP melacak status ini menggunakan cookie "situs yang dikunjungi". OP menghubungi mereka secara paralel menggunakan halaman yang dibuat secara dinamis dengan
<iframe src="frontchannel_logout_uri">
tag HTML yang merender setiap URI logout RP yang masuk
Tidak disebutkan post_logout_redirect_uri
. (Spek manajemen sesi OIDC biasa dibicarakan post_logout_redirect_uri
tetapi telah dihapus dalam draf terbaru).
Seperti yang dinyatakan oleh dokumen bantuan yang Anda rujuk, URI logout saluran depan yang dibicarakan spesifikasi diambil oleh Salesforce dari kolom Logout Tunggal aplikasi yang terhubung.
Untuk pengalihan pasca-logout dari Salesforce, Anda dapat mengonfigurasi URL logout di tingkat organisasi melalui Setup => Session Settings => Logout Page Settings => Logout URL
. Ini akan berlaku untuk semua aplikasi yang terhubung. Nilai setelan konfigurasi ini dapat mengarah ke layanan berdasarkan kode kustom Anda sendiri yang berjalan di mana pun yang dapat memeriksa permintaan lebih lanjut dan melakukan langkah-langkah pasca-pemrosesan yang sesuai.
NB: spesifikasi manajemen sesi OIDC + SLO (saluran depan dan belakang) masih berupa draf dan belum final.