我在Novell iManager中收到错误消息“ XML格式错误.cvc-complex-type.2.4.a:从元素'md:EncryptionMethod'开始发现无效内容。其中一个'{”http ://www.w3.org/2000/09/xmldsig#“:KeyInfo}'是预期的。”添加此服务提供商元数据时:
<?xml version="1.0" encoding="UTF-8"?>
<md:EntityDescriptor entityID="https://.../" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata">
<md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol" WantAssertionsSigned="true" AuthnRequestsSigned="true">
<md:KeyDescriptor use="encryption">
<md:EncryptionMethod xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5"/>
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<X509Data><X509Certificate>...</X509Certificate></X509Data>
</KeyInfo>
</md:KeyDescriptor>
<md:AssertionConsumerService isDefault="true" index="0" Location="https://.." Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"/>
</md:SPSSODescriptor>
<md:Organization>...</md:Organization>
...
</md:EntityDescriptor>
我在Novell iManager中做了什么:IdentityServers - &gt; AH DMZ身份服务器 - &gt;新的可信赖提供商 - &gt;服务提供商 - &gt;来源:元数据文本
奇怪的是,它抱怨缺少 KeyInfo 元素,而它在这里使用了正确的命名空间。知道为什么会这样吗?
如果我从此处指定第三方元数据:https://federation.njedge.net/metadata/njedge-fed-metadata.xml它说
“ XML格式错误。 cvc-complex-type.2.4.a:从元素“组织”开始发现无效内容。其中一个'{“http://www.w3.org/2000/09/xmldsig#":Signature,,瓮:oasis:names:tc:SAML:2.0:metadata”:Extensions,“urn:oasis:names: tc:SAML:2.0:元数据“:RoleDescriptor”,urn:oasis:names:tc:SAML:2.0:metadata“:IDPSSODescriptor,”urn:oasis:names:tc:SAML:2.0:metadata“:SPSSODescriptor,”urn:绿洲:名称:tc:SAML:2.0:元数据“:AuthnAuthorityDescriptor,”urn:oasis:names:tc:SAML:2.0:metadata“:AttributeAuthorityDescriptor,”urn:oasis:names:tc:SAML:2.0:metadata“:PDPDescriptor ,“urn:oasis:names:tc:SAML:2.0:metadata”:AffiliationDescriptor}'是预期的。 “
看起来它需要一些特定于服务提供商的元数据文件格式,遗憾的是我无法找到有关SAML 2.0元数据的不同格式的任何信息。