将服务提供者中的NameID从Office365身份提供者重新映射为Alias属性

时间:2019-05-01 10:47:41

标签: wso2 wso2is

我正在Office365和使用SAML 2进行身份验证的帮助台应用程序之间设置wso2。该应用程序期望NameID.wso2is身份提供者中的用户名在NameID字段中发送类似guid的ID,而不是我在我的应用程序中所需的别名字段。

除了定义Alias声明之外,我已经完成了该文档https://github.com/wso2-extensions/identity-outbound-auth-office365/blob/v1.0.4/docs/config.md的所有步骤,然后在服务提供商中为NameID添加了自定义映射,以将别名ID指定给NameID声明的指定主题

    <saml2:Subject>
        <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">0cccccc-444444-45553-1111-92387492387@23423423-sdfs-3333-5555-222222222</saml2:NameID>


    <saml2:AttributeStatement>

        <saml2:Attribute Name="Alias"
                         NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
                         >
            <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                  xsi:type="xs:string"
                                  >j.smith</saml2:AttributeValue>
        </saml2:Attribute>
        <saml2:Attribute Name="DisplayName"
                         NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
                         >
            <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                  xsi:type="xs:string"
                                  >John Smith</saml2:AttributeValue>
        </saml2:Attribute>

        <saml2:Attribute Name="Id"
                         NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
                         >
            <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                  xsi:type="xs:string"
                                  >0cccccc-444444-45553-1111-92387492387@23423423-sdfs-3333-5555-222222222</saml2:AttributeValue>
        </saml2:Attribute>
        <saml2:Attribute Name="@odata.context"
                         NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
                         >
            <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                  xsi:type="xs:string"
                                  >https://outlook.office365.com/api/v2.0/$metadata#Me</saml2:AttributeValue>
        </saml2:Attribute>
        <saml2:Attribute Name="EmailAddress"
                         NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"
                         >
            <saml2:AttributeValue xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                                  xsi:type="xs:string"
                                  >a@b.com</saml2:AttributeValue>
        </saml2:Attribute>
    </saml2:AttributeStatement>
</saml2:Assertion>

我需要NameID为NameID才能通过别名属性成为j.smith

j.smith

1 个答案:

答案 0 :(得分:0)

只需在服务提供商声明配置中为Subject Claim URI选择所需的声明。主题声明URI定义了经过身份验证的用户标识符,该标识符将随身份验证响应一起返回给服务提供商。这将在SAML响应中以NameID的形式返回。

您可以参阅此文档以获取有关service provider claim configuration的更多信息。