场景:我在WSO2 AS 5.2.1上部署了一个Jaggery应用程序,我有WSO2 IS 5.0.0(已启用Service Pack),运行两个带有SSO配置的服务提供商,一个指向AS另一个是我的Jaggery App。
我的acs.jag是在IS运行的Dashboard应用程序的副本,配置也类似:
"saml_config" : {
"SAML.IdPUrl" : "samlsso",
"SAML.IssuerID" : "my.jag.app",
"SAML.LogoutUrl" : "logout",
"SAML.EnableResponseSigning" : "true",
"SAML.EnableAssertionSigning" : "true",
"SAML.EnableRequestSigning" : "true",
"SAML.SSOAgentCredentialImplClass" : "org.wso2.carbon.identity.sso.agent.saml.SSOAgentKeyStoreCredential",
"SAML.KeyStorePassword" : "wso2carbon",
"SAML.IdPCertAlias" : "wso2carbon",
"SAML.PrivateKeyAlias": "wso2carbon",
"SAML.PrivateKeyPassword" : "wso2carbon",
"SAML.KeyStore" : "{carbon.home}/repository/resources/security/wso2carbon.jks"
}
问题:在IDP响应之后,有效负载被提交到SAML2SSOAuthenticationService并且它总是返回false。
<ns:loginResponse xmlns:ns="http://sso.saml2.authenticator.identity.carbon.wso2.org">
<ns:return>false</ns:return>
</ns:loginResponse>
我做错了吗?
[编辑] 感谢@Asela我在IS日志中注意到了这一点: 的问题:
ERROR {org.wso2.carbon.identity.authenticator.saml2.sso.SAML2SSOAuthenticator}
Authentication Request is rejected. SAMLResponse AudienceRestriction validation failed.
在SAML2SSOAuthenticator类中,错误由Assertion对象设置为null,但在jaggery调用SAML2SSOAuthenticationService之前,Assertion对象不为null。
答案 0 :(得分:0)
我发现了什么遗失了。 将Jaggery App Service Provider中的Claim更改为/ role&amp;&amp; / emailaddress,现在它的工作正常。