单点注销如何与OKTA(IDP)-Shibboleth(SP)-App一起使用

时间:2019-05-08 17:03:31

标签: saml-2.0 okta shibboleth shibboleth-sp single-logout

OKTA-Shibboleth(Apache)-Nakisa(Tomcat)

SSO正在登录。 现在,我需要配置注销。因此,用户从应用程序注销,需要将用户重定向到带磁贴的OKTA页面。

但是,当前,用户再次被重定向到应用。

它将用户发送到/logout?redirect=default.html,但是default.html被Apache规则捕获并重新登录。

似乎需要命中 https://xxxx/Shibboleth.sso/Logout。当我访问此URL时,它说注销已成功完成,尽管它没有返回OKTA。这是否意味着在应用程序的注销设置中,他们需要重定向到此位置?

但是,如何使用户再次返回IdP(即OKTA)?

这是我认为会发生的事情。

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

要配置Shibboleth2.xml吗? 文档说我只需要配置默认情况下存在的以下内容。

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

但是,一旦用户注销完成,它将如何将用户重定向到OKTA(IdP)。 是否在IdP的元数据中配置了它?

1 个答案:

答案 0 :(得分:1)

您可以在本地注销事件之后将用户重定向到任何地方,方法是将?return=参数传递给URL编码的目的地,即您应该将注销链接更新为:

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

在注销后将人们重定向到Google。

现在,您只需要一个Okta URL即可将人员返回......所以我认为,如果您客户的Okta租户是“ foobar.okta.com”,请在本地注销后将其重定向到Okta登录页面 t 提示他们登录,因为他们已经进行了Okta会话...所以可以尝试:

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

当然,您需要测试……但它应该可以工作,并且在用户的Shibboleth SP会话处于活动状态并且他们的Okta会话通过其他某种机制无效的情况下,这只会返回他们进入常规的Okta登录页面。

您显然可以使用return参数将它们重定向到任何端点,例如,任何Okta的注销URL(如果您也想终止其Okta会话)。

Metadata唯一可配置的注销是SLO(单一注销),即,如果您愿意,Shibboleth可以在用户完成SP会话的注销后将用户重定向到Okta,以及特殊的{{1 }}断言有效载荷,Okta可以用多种方式对其进行解析和操作,即杀死用户的Okta会话,将Okta发起的后续<LogoutRequest>断言传播给其他服务提供商,等等。实际上,这永远不会真正起作用,因为很难在所有相关方之间使用这种配置。