OpenID Connect에서 로그 아웃 후 리디렉션

Aug 20 2020

Salesforce를 사용하여 OpenID Connect 공급자 (OP)로 내 응용 프로그램에 로그인하면 그렇게 할 수 있습니다. 하지만 내 응용 프로그램에서 로그 아웃을 시도하고 로그 아웃하면 Salesforce에서 로그 아웃 된 다음 내 Salesforce 로그인 페이지로 리디렉션됩니다 https://{MY_DOMAIN}.my.salesforce.com/.

예상되는 동작 :

로 로그 아웃 요청 post_logout_redirect_uri이 OP로 전송되면 OP는 자체 로그 아웃 시퀀스 후에이 URL로 리디렉션되어야합니다.

실제 행동 :

응용 프로그램에서 로그 아웃하려고하면 Salesforce 도메인으로 리디렉션되고 Salesforce에 다시 로그인하라는 메시지가 표시됩니다.

내가 시도한 것 :

따라 서 , 나는 모두를 시도 연결된 응용 프로그램에 단일 로그 아웃을 사용하도록 설정 https://{MY_KEYCLOAK_DOMAIN}/auth/realms/{REALM}/broker/{IDP}/endpoint/logout_response하고 https://{MY_KEYCLOAK_DOMAIN}/auth/realms/{REALM}/protocol/openid-connect/logout는 AS Single Logout URL연결된 응용 프로그램 구성 값.

백 채널 로그 아웃 방법을 사용해 보았지만이를 사용하여 Salesforce에서 로그 아웃하지 않는 것 같습니다.

답변

identigral Aug 20 2020 at 01:22

아시다시피, OpenID Connect Provider (OP) 역할을하는 SF는 프런트 채널 OIDC 싱글 로그 아웃 (SLO) 만 지원합니다. 이는에서 OIDC 메타 데이터를 통해 확인할 수 있습니다 /.well-known/openid-configuration.

OIDC에서 프론트 채널 SLO는 어떻게 작동합니까? 로부터 사양 :

HTTP 기반 로그 아웃을 지원하는 OP는 로그인 한 RP 세트를 추적하여 로그 아웃을 유발하기 위해 로그 아웃 URI에서 어떤 RP에 접속해야하는지 파악해야합니다. 일부 OP는 "방문한 사이트"쿠키를 사용하여이 상태를 추적합니다. OP는 <iframe src="frontchannel_logout_uri">로그인 한 각 RP의 로그 아웃 URI를 렌더링 하는 HTML 태그가 있는 동적으로 구성된 페이지를 사용하여 병렬로 연락합니다.

에 대한 언급이 없습니다 post_logout_redirect_uri. (OIDC 세션 관리 사양에 대해 언급 post_logout_redirect_uri했지만 최신 초안에서 제거되었습니다).

참조하는 도움말 문서에 나와 있듯이 사양이 말하는 프런트 채널 로그 아웃 URI는 연결된 앱의 싱글 로그 아웃 필드에서 Salesforce에 의해 검색됩니다.

Salesforce에서 로그 아웃 후 리디렉션의 경우를 통해 조직 수준에서 로그 아웃 URL을 구성 할 수 있습니다 Setup => Session Settings => Logout Page Settings => Logout URL. 이는 연결된 모든 앱에 적용됩니다. 이 구성 설정의 값은 요청을 추가로 검사하고 적절한 사후 처리 단계를 수행 할 수있는 모든 위치에서 실행중인 사용자 지정 코드를 기반으로하는 서비스를 가리킬 수 있습니다.

주의 : OIDC 세션 관리 + SLO (전면 및 후면 채널 모두) 사양은 아직 초안이며 최종 사양이 아닙니다.