How does Single-logout works with OKTA(IDP)-Shibboleth(SP)-App

て烟熏妆下的殇ゞ 提交于 2019-12-08 10:48:53

问题


OKTA-Shibboleth(Apache)-Nakisa(Tomcat)

SSO is working for logging-in. Now, I need to configure Logout. So, user logs out from the app, user needs to be redirected to OKTA page with tiles.

But, currently,user is redirected to the app again.

It's sending user to /logout?redirect=default.html but that default.html is captured by Apache rule and logging user back in.

It looks like it needs to hit https://xxxx/Shibboleth.sso/Logout. When I access this url, it says logout is successfully done although it's not going back to OKTA. Does that mean that in the App's logout setting, they need to redirect to this?

But, how do I make user to go back to IdP(i.e OKTA) again?

This is what I assume that will happen.

Logout button click > logout from Shibboleth > return to OKTA so user can click other tiles. 

Something to configure Shibboleth2.xml? Document says i just need to configure the following which is there by default.

<!-- SAML and local-only logout. -->
        <Logout>SAML2 Local</Logout>

But, how does it redirect user to OKTA(IdP) once user log out completes. Is it configured in IdP's metadata ?


回答1:


You can redirect the user after a local logout event anywhere you'd like, via passing the ?return= parameter a URL-encoded destination, i.e. you should update your logout link to:

https://xxxx/Shibboleth.sso/Logout?return=https%3A%2F%2Fgoogle.com

in order to redirect folks to Google once logout has taken place.

Now, you only need an Okta URL to return folks to... so I think if your client's Okta tenant is "foobar.okta.com", redirecting them after local logout to the Okta login page shouldn't prompt them to login, since they will already have the Okta Session... so maybe try:

https://xxxx/Shibboleth.sso/Logout?return=https%3A%2F%2Ffoobar.okta.com%2Flogin

Of course, you'll need to test that... but it should work, and on the off chance that the user's Shibboleth SP session was active, and their Okta session invalidated through some other mechanism, that'll just return them to their regular Okta login page.

You can obviously redirect them to any endpoint with the return parameter, for example, whatever Okta's logout URL (if you wanted to kill their Okta session too).

The only logout that's configurable by Metadata is SLO (single logout), i.e. if you wanted it to, Shibboleth can redirect the user to Okta after they complete the logout of the SP session, along with a specially-craft <LogoutRequest> assertion payload, which Okta would parse and act on in any number of ways, i.e. killing the user's Okta session, propagating Okta-initiated subsequent <LogoutRequest> assertions to other Service Providers, etc. In practice, this never really works, because such configurations are very difficult to get working between all of the relevant parties.



来源:https://stackoverflow.com/questions/56045744/how-does-single-logout-works-with-oktaidp-shibbolethsp-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!