SAML 元数据 xml 文件中的多个证书
Multiple certificate in SAML metadata xml file
我在我的应用程序中使用 SAML 2.0 进行 SSO。
目前我在元数据中使用一个证书。因此,在证书到期时。我必须在特定时间更改证书,即在证书过期时。
我需要在元数据中支持双证书支持。因此,我可以在旧证书过期之前添加新证书。
我怎样才能做到这一点?
这是我现有的元数据文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: SPMetadata.xml 2936 2008-05-26 08:06:46Z jre $ -->
<md:EntityDescriptor entityID="https://examplecom/sso/saml/metadata" xmlns:brs="http://www.eogs.dk/2007/07/brs" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
<md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX----My certificate which I am using------
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://examplecom/sso/saml/SAMLAssertionConsumer" index="0"/>
</md:SPSSODescriptor>
<md:Organization>
<md:OrganizationName xml:lang="en">XXX example</md:OrganizationName>
<md:OrganizationDisplayName xml:lang="en">XXX example</md:OrganizationDisplayName>
<md:OrganizationURL xml:lang="en">http://www.examplecom</md:OrganizationURL>
</md:Organization>
<md:ContactPerson>
<md:Company>XXX</md:Company>
<md:GivenName>XXX Support</md:GivenName>
<md:SurName>Support</md:SurName>
<md:EmailAddress>mailto:saml-support@examplecom</md:EmailAddress>
<md:TelephoneNumber>XXXXX</md:TelephoneNumber>
</md:ContactPerson>
</md:EntityDescriptor>
您可以有零个或多个 the standard 中定义的 KeyDescriptor 元素,所以只需继续添加新的
<md:KeyDescriptor>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
YYYYYYYYYYYYYYY
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
低于现有的。
尽管 XML 签名语法和处理建议(https://www.w3.org/TR/xmldsig-core/) referenced in SAML meta data spec would allow to specify several elements within the <ds:X509Data>
element, the SAMLv2 interoperability profile (e.g. http://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-iop-cs-01.html,第 2.5.1 节)建议在 <md:KeyDescriptor>
元素中使用多个 <ds:KeyInfo>
元素。
我在我的应用程序中使用 SAML 2.0 进行 SSO。 目前我在元数据中使用一个证书。因此,在证书到期时。我必须在特定时间更改证书,即在证书过期时。 我需要在元数据中支持双证书支持。因此,我可以在旧证书过期之前添加新证书。 我怎样才能做到这一点? 这是我现有的元数据文件:
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: SPMetadata.xml 2936 2008-05-26 08:06:46Z jre $ -->
<md:EntityDescriptor entityID="https://examplecom/sso/saml/metadata" xmlns:brs="http://www.eogs.dk/2007/07/brs" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">
<md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:1.1:protocol urn:oasis:names:tc:SAML:2.0:protocol">
<md:KeyDescriptor>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX----My certificate which I am using------
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>
<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://examplecom/sso/saml/SAMLAssertionConsumer" index="0"/>
</md:SPSSODescriptor>
<md:Organization>
<md:OrganizationName xml:lang="en">XXX example</md:OrganizationName>
<md:OrganizationDisplayName xml:lang="en">XXX example</md:OrganizationDisplayName>
<md:OrganizationURL xml:lang="en">http://www.examplecom</md:OrganizationURL>
</md:Organization>
<md:ContactPerson>
<md:Company>XXX</md:Company>
<md:GivenName>XXX Support</md:GivenName>
<md:SurName>Support</md:SurName>
<md:EmailAddress>mailto:saml-support@examplecom</md:EmailAddress>
<md:TelephoneNumber>XXXXX</md:TelephoneNumber>
</md:ContactPerson>
</md:EntityDescriptor>
您可以有零个或多个 the standard 中定义的 KeyDescriptor 元素,所以只需继续添加新的
<md:KeyDescriptor>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
YYYYYYYYYYYYYYY
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</md:KeyDescriptor>
低于现有的。
尽管 XML 签名语法和处理建议(https://www.w3.org/TR/xmldsig-core/) referenced in SAML meta data spec would allow to specify several elements within the <ds:X509Data>
element, the SAMLv2 interoperability profile (e.g. http://docs.oasis-open.org/security/saml/Post2.0/sstc-metadata-iop-cs-01.html,第 2.5.1 节)建议在 <md:KeyDescriptor>
元素中使用多个 <ds:KeyInfo>
元素。