使用PingIdentity作为IDP的SAML SSO配置报错问题咨询
问题根因
你调用SAMLIdentityProvider.InitiateSSO时的参数传位错误,第四个参数本身就是*RelayState(中继状态)*字段,你误把PingOne的SSO发起链接填到了这个参数位,自然会触发中继状态相关报错。
修复步骤
- 修正代码参数
ComponentSpace的IdP发起SSO逻辑会自动读取你XML配置中PartnerServiceProvider节点下的AssertionConsumerServiceUrl(也就是你配置的PingOne ACS地址)发送SAML断言,不需要手动传入PingOne的initsso链接,修改后的代码示例如下:
SAMLIdentityProvider.InitiateSSO( Response, "testuser", //username attributes, null, // 该位为RelayState参数,无跳转需求传空即可,有需求填用户登录成功后要跳转的目标地址 "PingConnect" );
关于PingOne后台获取的initsso链接说明
你提到的https://sso.connect.pingidentity.com/sso/sp/initsso?xxx开头的链接是SP发起SSO场景的启动入口,是用户从PingOne侧发起登录请求时才会用到的地址,你当前是IdP侧发起SSO的场景,完全不需要用到该链接,不需要配置到任何位置。可选配置检查
- 现有配置中的
SingleLogoutServiceUrl当前填的是本地调试地址,如果你不需要对接单点登出能力暂时不影响SSO流程,后续需要用单点登出时再替换为PingOne后台提供的登出地址即可。 - 确认
sp.cer是PingOne后台提供的SP侧验签证书,避免后续验签失败。
内容的提问来源于stack exchange,提问作者TheDizzle
相关产品推荐
相关产品推荐

