如何在 saml 响应中传递 friendlyname 而不是 urn:oid

How to pass friendlyname instead of urn:oid in saml response

我正在尝试将 saml 响应从我的 shibboleth idp 发送到服务提供商

如何在 saml 响应中传递友好名称而不是 urn:oid?现在,我的 saml 响应仅包含 urn:oid,

例如,'urn:oid:0.9.2342.19200300.100.1.6': '106',

我需要传递的是一个名为 "productid" 的密钥以及此响应,

'productid:'106',

下面给出的是我的属性-resolver.xml,其中我将 friendlyName 作为 roomNumber 的 productid 传递 (urn:oid:0.9.2342.19200300.100.1.6)

<resolver:AttributeDefinition id="productid" xsi:type="ad:Simple" sourceAttributeID="roomNumber">
        <resolver:Dependency ref="myLDAP" />
        <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:roomNumber" encodeType="false" />
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:0.9.2342.19200300.100.1.6" friendlyName="productid" encodeType="false" />
    </resolver:AttributeDefinition>   

我可以对此有一些了解吗?

根据doc for SAML2 String看起来你应该可以做到:

<resolver:AttributeDefinition id="productid" xsi:type="ad:Simple" sourceAttributeID="roomNumber">
        <resolver:Dependency ref="myLDAP" />
        <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:roomNumber" encodeType="false" />
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="productid" friendlyName="productid" encodeType="false" />
</resolver:AttributeDefinition>

尽管我们鼓励您 make sure the attribute is unique by its scope