Federation Termination Notification (apply for both IdP and SP) /federationTermination (* normative, Federation Termination Notification service URL *) defederation = lasos_defederation_new(server) IF lasso_is_liberty_query(query) # query is a valid liberty message, then process it lasso_defederation_process_notification_msg(defederation, query) nameIdentifier = LASSO_PROFILE(defederation)->nameIdentifier # Retrieve session and user using name identifier (->content). lasso_profile_set_identity_from_dump(LASSO_PROFILE(defederation), identityDump) lasso_profile_set_session_from_dump(LASSO_PROFILE(defederation), sessionDump) lasso_defederation_validate_notification(defederation) # Close the federation locally. # The user is no more authenticated on any identity provider, Log him out. REDIRECT TO LASSO_PROFILE(defederation)->msg_url ELSE # query is not a valid liberty message, then initiates profile # identity and session from logged in user lasso_profile_set_identity_from_dump(LASSO_PROFILE(defederation), identityDump) lasso_profile_set_session_from_dump(LASSO_PROFILE(defederation), sessionDump) lasso_defederation_build_notification_msg(defederation) # close the local user account (session, index...) IF LASSO_PROFILE(defederation)->msg_body: SOAP CALL -----------------------------------------------------------------\ TO LASSO_PROFILE(defederation)->msg_url | BODY LASSO_PROFILE(defederation)->msg_body ELSE REDIRECT TO LASSO_PROFILE(defederation)->msg_url /federationTerminationReturn (* normative, Federation Termination service Return URL *) # get the relay state if exists in query response /soapEndPoint (* normative, SOAP endpoint *) <----/ defederation = lasso_defederation_new(server) lasso_defederation_process_notification_msg(defederation, soapRequestMsg) nameIdentifier = LASSO_PROFILE(defederation)->nameIdentifier # Retrieve session and user using name identifier (->content). lasso_defederation_validate_notification(defederation) # Close the federation locally. # The user is no more authenticated on any identity provider. Log him out. # Return OK (204), even when the defederation validation fails. ANSWER SOAP REQUEST WITH 204 (No content)