我有一个WSO2IS 5.2作为联合中心。它发送给IdP的AuthnRequest
(在本例中为PingFederate)包含此NameIDPolicy
:
<saml2p:NameIDPolicy AllowCreate="true"
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"
SPNameQualifier="WSO2IS"
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
/>
在PingFederate登录后,它会发回SAML消息,包括:
<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Requester">
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:InvalidNameIDPolicy" />
</samlp:StatusCode>
<samlp:StatusMessage>Cannot provide requested name identifier qualified with WSO2IS</samlp:StatusMessage>
</samlp:Status>
我在PingFederate中尝试过uid并发送NameID值,但我总是得到这个回复。我想尝试更改wso2发送但未找到方法的NameIDPolicy格式。我认为它应该是SAML:2.0格式。
我发现只有IdP设置中的“包含NameID政策”复选框,但即使我取消选中并保存,它也会保持检查状态。
如何更改NameIDPolicy格式?
更新:我通过在PingFederate启用假名标识符并将用户名作为属性发送来解决问题。知道我的问题的答案仍然很好。
答案 0 :(得分:0)
是的,你的理解是正确的。您可能需要更改NameIDPolicy
。您可以在服务提供商(SP)创建页面中找到它。转到WSO2 IS管理控制台Home>service Provider>Add>
。
之后需要输入SP的名称并单击register
按钮。
现在您处于服务提供商配置页面。
转到Inbound Authentication Configuration>SAML2 Web SSO Configuration>configure
。
您可以将此页面配置为SAML2 Web SSO配置,页面标题显示为
Register New Service Provider
,然后转到NameID format
更改urn:oasis:names:tc:SAML:2.0:nameid-format:emailAddress
而不是urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
。
您可以从WSO2文档[1]中找到更多详细信息。
[1] https://docs.wso2.com/display/IS500/Configuring+Single+Sign-On+with+SAML+2.0