OneLogin没有将RelayState查询参数传递回SP(嵌入在我的应用程序中)

时间:2014-07-11 18:33:28

标签: java single-sign-on saml onelogin

我使用了OneLogin的java集成工具包,我可以使用SAML SSO登录我的应用程序的默认主页。但是,我需要用户最初请求重定向的URL。不幸的是,OneLogin在SAML断言期间没有将RelayState参数返回给我的应用程序。或者我应该将其作为不同的查询参数传递?

注意:这是SP发起的SSO。

2 个答案:

答案 0 :(得分:0)

我们将很快更新Java工具包以使其现代化并带来一大堆SAML功能。

答案 1 :(得分:0)

RelayState是一个不透明的标记,它引用用户尝试访问的原始URL(或应用程序内的资源)。 OneLogin Java SAML SDK将向IdP发送AuthRequest,但不会自动解析URL并将令牌发送到IdP。

使用工具包的简单扩展如下:

1。)当用户访问受保护的页面时,检查会话。 2.)如果没有活动的sesssion(即没有cookie等),则确定用户是否是启用基于SAML的SSO的组织的一部分(通过URL子域或请求用户的电子邮件地址等) 3.)您的应用程序在确定用户未登录并且应该针对IdP进行身份验证后,可以利用OneLogin的SAML工具包中的现成代码将SAMLRequest发送到设置中存储的HTTP端点。 java文件。 4.)在authrequest.java文件中创建一个附加函数来创建RelayState标记,这可以像解析URL然后URL编码一样简单。 5.)在应用程序的java-saml / sample / src / main / webapp / index.jsp逻辑中调用该函数,并使用它将变量?RelayState = {yourtoken}添加到a​​uth请求。这将通过整个工作流程保留,最后只需将其解析出来并将其用于简单的重定向。

非常好!

相关问题