我再次需要社区的明智建议!!!
我必须在我的SSO系统中集成多个Web应用程序。 IdP是Active Directory联合服务(ADFS2),SP是Weblogic受管服务器。我正在为Web SSO配置文件中的SP启动的用例使用HTTP-POST绑定。
此设置正常,甚至我已经为WLS实施了SLO,太棒了!但是,总有一个但是......我有一个应用程序,可供未经身份验证的用户访问,访客用户。当用户通过身份验证时,他/她将看到不同的信息。
您认为这是实施此方法的最佳方法吗?
我正在尝试通过 XMLHttpRequest 对IdP执行JavaScript调用,但它没有像我期望的那样工作......我的想法不是自己构建SAMLRequest。这是,我正在请求我的应用程序的安全资源,而不是直接调用IdP。通过这种方式,Weblogic就是向IdP发出请求的那个(302重定向)。基本上mi的想法是下一个:
在我的web.xml中声明安全约束:
<security-constraint>
<web-resource-collection>
<web-resource-name>secure</web-resource-name>
<url-pattern>/secure/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>FederatedUsers</role-name>
</auth-constraint>
调用安全资源(感谢w3schools!):
<script type="text/javascript">
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.open("GET", "secure/login?action=sample/hello.jsp", false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
安全资源的实现只是一个重定向到原始资源的 servlet :
// Get the parameter "action" and redirect
resp.sendRedirect(req.getParameter("action"));
如果我们看看请求流程,或多或少就可以解决问题:
但最后我在 xmlhttp.send()中遇到错误:组件返回失败代码:0x80004005(NS_ERROR_FAILURE) < / p>
此外,我正在尝试讨厌的技巧,例如获取 iframe ,元素的内容,或者只是在脚本标记中调用安全资源:
<script type="text/javascript" src="secure/login">
最后一个“解决方案”的问题是我无法获取HTML代码。
任何想法?也许ADFS2提供任何REST服务或类似的东西......
提前致谢,
路易斯