iOS& amp; SAML 2.0单点注销(SLO)问题PhoneGap的

时间:2013-04-15 09:08:59

标签: jquery ios cordova sap saml-2.0

我正在使用Phonegap和jQuery AJAX调用来执行下面的注销

$.ajax({
url: logoutURL,
type: "POST",
data: {},
cache: false,
success: function(data, textStatus, jqXHR){........},
error: function(jqXHR, textStatus, errorThrown){                

        alert("Logout Failed.");

    $.mobile.hidePageLoadingMsg();
    enableAllButtons(); 
}
});          

注销URL是SAML 2.0单点注销(SLO)URL。我在Android上测试了它,它工作得非常好。但是,当我在ios专门试用iPad ios 6.1.3上的SLO时,它会失败,它会返回一个http 0。

我刚从IDP日志中发现,对于android,它有“客户端证书错误,IP地址”的警告,但它会自动尝试创建没有可信证书的传出SSL连接。另一方面,在iOS上,签名断言发布后,它不会继续连接。

如何解决这个问题,或者我有办法绕过证书问题吗?

所有建议都表示赞赏。

2 个答案:

答案 0 :(得分:0)

这听起来不合标准,所以我认为你最好的机会是与IDP提供商交谈。

答案 1 :(得分:0)

我发现问题是iOS无法调用https ajax调用自签名证书。它似乎是SDK限制,您需要一个插件或在appdelegate.m中添加以下代码

@implementation NSURLRequest(DataController)

+ (BOOL)allowsAnyHTTPSCertificateForHost:(NSString *)host
{
    return YES; 
}
@end

我发现这篇文章有用Ajax https call in ios using PhoneGap not working?

然后它神奇地工作了。