我们通过多个身份提供商(主要是ADFS后端)在WSO2中创建用户。我们将UPN映射到ADFS端的主题,并期望在WSO2端获得用户ID,如user @ domain(使用即时配置。示例SAML响应如下所示:
<Subject>
<NameID>[email protected]</NameID>
<SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<SubjectConfirmationData InResponseTo="_d685e02e861d57cbf40c2a2af996f920" NotOnOrAfter="2018-12-04T15:32:47.404Z" Recipient="https://ourdomain.de/commonauth"/>
</SubjectConfirmation>
</Subject>
<Conditions>
<AudienceRestriction>
<Audience>ourdomain.com</Audience>
</AudienceRestriction>
</Conditions>
<AttributeStatement>
<Attribute Name="Givenname">
<AttributeValue>adfsFirsname</AttributeValue>
</Attribute>
<Attribute Name="Lastname">
<AttributeValue>adfsLastname</AttributeValue>
</Attribute>
<Attribute Name="Role">
<AttributeValue>domain-user</AttributeValue>
<AttributeValue>admin</AttributeValue>
<AttributeValue>test</AttributeValue>
</Attribute>
<Attribute Name="username">
<AttributeValue>test</AttributeValue>
</Attribute>
<Attribute Name="mail">
<AttributeValue>[email protected]</AttributeValue>
</Attribute>
</AttributeStatement>
</Conditions>
问题是,在WSO2方面,我们只是将用户作为用户ID而不是预期的用户@域。无论我们如何配置映射,最后的@stuff都会被削减。有人知道,如何配置这个,以获得完整的user @ domain作为WSO2中的用户ID?
希望你能帮我!
默认情况下,WSO2产品将用户名作为@。这就是删除用户名的@stuff部分的原因。如果要将电子邮件用作需要配置的用户名。 Here是详细的文档
然后,用户名将被视为user @ domain @ tenentDomain。对于超级租户,您不需要@tenentDomain。
我实际上设法在ADFS端创建一个自定义声明对话框,它操纵声明包含一个@ -symbol。这迫使WSOIS做我想做的事。不是最美丽的解决方案,但它现在有效...