我们已经为ASPX网站安装并配置了IIS集成工具包。SSO工作正常,但无法处理SLO进程:1) 我们创建了"退出"链接:
https://[PingFederate]/idp/startSLO.ping?PartnerSpId=[partner]&TARGET=[our_site].
2) 在PingFederate服务器上,我们的代理有注销URL:
https://[our_site]/logout.aspx
3) logout.aspx
protected void Page_Load(object sender, EventArgs e)
{
FormsAuthentication.SignOut();
Session.Abandon();
String returnUrl = "https://<PingFederate>" + Request["resume"];
SFunctions.fnInsSystemLogRSP(returnUrl);
Response.Redirect(returnUrl);
}
4) 点击"退出"后,我们在浏览器中获得链接:
https://<our_site>/logout.aspx?resume=/sp/Yh9ls/resume/sp/SLO.ping&opentoken=[token]
5) 我们在红框中得到错误(来自Ping Federate):
Error Single-Sign-On resumePath not whitelisted
6) 还有来自我们的服务器支持的链接
https://[Ping Federate]/ext/logout
如果我在浏览器中打开这个链接,它会让我退出PingFederate(如果我转到SSO链接,我需要再次登录),但我仍然可以访问应用程序。
感谢您的帮助!我们可能需要对IIS工具包上的SLO使用不同的过程。
谢谢!
我找到了IIS集成工具包的解决方案:
logout.aspx不需要解析"resume"get参数,并重定向到PingFederate。但我们仍然将其分配给退出按钮
pfisapi.conf中有CancelURL参数,它使用常规的expersion,所以我把它改为
CancelUrl=/.*logout.*
这意味着IIS集成工具包会在用户访问此URL时进行查看并执行注销过程。