我已经configurationShibboleth 3给SAML响应包含以下属性语句
<saml2:AttributeStatement> <saml2:Attribute FriendlyName="uid" Name="urn:oid:0.9.2342.19200300.100.1.1" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"> <saml2:AttributeValue>[email protected]</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="memberOf" Name="urn:oid:2.5.4.42" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic"> <saml2:AttributeValue>cccc\cccc-cccc-cccc</saml2:AttributeValue> </saml2:Attribute> </saml2:AttributeStatement>
我喜欢如果可以configurationattribute-resolver.xml,以便SAML响应中包含以下xml Attribute语句。
<saml2:AttributeStatement> <saml2:Attribute FriendlyName="uid"> <saml2:AttributeValue>[email protected]</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute FriendlyName="memberOf"> <saml2:AttributeValue>cccc\cccc-cccc-cccc</saml2:AttributeValue> </saml2:Attribute> </saml2:AttributeStatement>
我的attribute-resolver.xml的内容
<resolver:AttributeDefinition id="memberOf" xsi:type="ad:Simple" sourceAttributeID="memberOf"> <resolver:Dependency ref="StaticGroups" /> <resolver:AttributeEncoder xsi:type="enc:SAML1String" name="urn:mace:dir:attribute-def:memberOf" encodeType="false" /> <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="urn:oid:2.5.4.42" friendlyName="memberOf" encodeType="false" nameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:basic" /> </resolver:AttributeDefinition> <!-- ========================================== --> <!-- Data Connectors --> <!-- ========================================== --> <resolver:DataConnector id="StaticGroups" xsi:type="dc:Static" xmlns="urn:mace:shibboleth:2.0:resolver:dc"> <Attribute id="memberOf"> <Value>cccc\cccc-cccc-cccc</Value> </Attribute> </resolver:DataConnector>
SAML 2.0断言模式告诉“名称”属性是必需的。 所以你不能做你想做的事情。
<element name="Attribute" type="saml:AttributeType"/> <complexType name="AttributeType"> <sequence> <element ref="saml:AttributeValue" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name="Name" type="string" use="required"/> <attribute name="NameFormat" type="anyURI" use="optional"/> <attribute name="FriendlyName" type="string" use="optional"/> <anyAttribute namespace="##other" processContents="lax"/> </complexType>
首先,你为什么要这样做?
https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf
我会说这是不可能的。 我曾经认为Name
属性是attribute
标签的关键字。
但:
attribute-resolver
是关于获取属性。 我不认为这是正确的地方来search你正在寻找的function;