Federated sign-out is the situation where a user has used an external identity provider to log into Open.IdentityServer, and then the user logs out of that external identity provider via a workflow unknown to Open.IdentityServer. When the user signs out, it will be useful for Open.IdentityServer to be notified so that it can sign the user out of Open.IdentityServer and all of the applications that use Open.IdentityServer.
Not all external identity providers support federated sign-out, but those that do will provide a mechanism to notify clients that the user has signed out.
This notification usually comes in the form of a request in an <iframe> from the external identity provider’s “logged out” page.
Open.IdentityServer must then notify all of its clients (as discussed here), also typically in the form of a request in an <iframe> from within the external identity provider’s <iframe>.
What makes federated sign-out a special case (when compared to a normal sign-out) is that the federated sign-out request is not to the normal sign-out endpoint in Open.IdentityServer. In fact, each external IdentityProvider will have a different endpoint into your Open.IdentityServer host. This is due to that fact that each external identity provider might use a different protocol, and each middleware listens on different endpoints.
The net effect of all of these factors is that there is no “logged out” page being rendered as we would on the normal sign-out workflow, which means we are missing the sign-out notifications to Open.IdentityServer’s clients. We must add code for each of these federated sign-out endpoints to render the necessary notifications to achieve federated sign-out.
Fortunately Open.IdentityServer already contains this code.
When requests come into Open.IdentityServer and invoke the handlers for external authentication providers, Open.IdentityServer detects if these are federated signout requests and if they are it will automatically render the same <iframe> as described here for signout.
In short, federated signout is automatically supported.