我有一个问题。我们在symfony 5.4下有一个应用程序,它通过OneloginSamlBundle bundle提供SAML连接器。这个应用是不同客户安装的。通常对于大多数客户,当我们连接到他们的idp时,我们会得到这样的答案:
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
...
<saml:Subject>
...
<saml:AttributeStatement>
<saml:Attribute Name="uid">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">john_doe</saml:AttributeValue>
</saml:Attribute>
,我们可以将属性uid映射到应用程序
中的用户名问题是我们有一个使用AD FS的客户的响应是这样的:
<samlp:Response xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ... >
<Subject>
<NameID>john_doe</NameID>
...
</Subject>
在bundle中,我们有这段代码来检索属性,它不起作用
$entries = $this->_queryAssertion('/saml:AttributeStatement/saml:Attribute');
您知道AD FS是否可以配置为使用<saml:Attribute>
发送响应?
我找到解决方案了:
客户添加了一个索赔规则(https://help.blackboard.com/Learn/Administrator/SaaS/Authentication/Implement_Authentication/SAML_Authentication_Provider_Type/SAML_Setup_Guide_for_ADFS)与良好的属性名称,甚至xml消息没有saml:
前缀,它工作