...
The corresponding structure in the metadata for this new certificate would be:
Code Block |
---|
<ds<ds:KeyInfo xmlns:ds=""http://www.w3.org/2000/09/xmldsig#">"> <ds:KeyName>idp<ds:KeyName>idp.supervillain.edu<edu</ds:KeyName>KeyName> <</ds:KeyInfo>KeyInfo> |
One or more trusted roots that signed the certificates used within the federation must then also be added so that the certificates can be verified. This is done by placing an Extensions
element within the main EntitiesDescriptor
element, but before any EntityDescriptor
element, such as:
Code Block |
---|
<Extensions><Extensions> <shibmd<shibmd:KeyAuthority xmlns:shibmd=""urn:mace:shibboleth:metadata:1.0"" VerifyDepth="5">"5"> <<!-- Supervillain CA -->> <ds<ds:KeyInfo xmlns:ds=""http://www.w3.org/2000/09/xmldsig#">"> <ds:X509Data><ds:X509Data> <ds:X509Certificate><ds:X509Certificate> MIIExzCCA6+gAwIBAgIJAM+MlFr0Sth6MA0GCSqGSIb3DQEBBQUAMIGdMR8wHQYD VQQDExZTdXBlcnZpbGxhaW46IFRoZSBSb290MQswCQYDVQQGEwJVUzERMA8GA1UE CBMITmV3IFlvcmsxDzANBgNVBAcTBkdvdGhhbTEgMB4GA1UEChMXU3VwZXJ2aWxs YWluIFVuaXZlcnNpdHkxJzAlBgkqhkiG9w0BCQEWGHBlbmd1aW5Ac3VwZXJ2aWxs YWluLmVkdTAeFw0wNjA4MTcxOTU5NTNaFw0xMTA4MTYxOTU5NTNaMIGdMR8wHQYD VQQDExZTdXBlcnZpbGxhaW46IFRoZSBSb290MQswCQYDVQQGEwJVUzERMA8GA1UE CBMITmV3IFlvcmsxDzANBgNVBAcTBkdvdGhhbTEgMB4GA1UEChMXU3VwZXJ2aWxs YWluIFVuaXZlcnNpdHkxJzAlBgkqhkiG9w0BCQEWGHBlbmd1aW5Ac3VwZXJ2aWxs YWluLmVkdTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL6uFqas4dK6 A2wTZL0viRQNJrPyFnFBDSZGib/2ijhgzed/vvmZIBM9sFpwahcuR5hvyKUe37/c /RSZXoNDi/eiNOx4qb0l9UB6bd8qvc4V1PnLE7L+ZYcmwrvTKm4x8qXMgEv1wca2 FPsreHNPdLiTUZ8v0tDTWi3Mgi7y47VTzJaTkcfmO1nL6xAtln5sLdH0PbMM3LAp T1d3nwI3VdbhqqZ+6+OKEuC8gk5iH4lfrbr6C9bYS6vzIKrotHpZ3N2aIC3NMjJD PMw/mfCuADfRNlHXgZW+0zyUkwGTMDea8qgsoAMWJGdeTIw8I1I3RhnbgLzdsNQl b/1ZXx1uJRUCAwEAAaOCAQYwggECMB0GA1UdDgQWBBQe+xSjYTrlfraJARjMxscb j36jvDCB0gYDVR0jBIHKMIHHgBQe+xSjYTrlfraJARjMxscbj36jvKGBo6SBoDCB nTEfMB0GA1UEAxMWU3VwZXJ2aWxsYWluOiBUaGUgUm9vdDELMAkGA1UEBhMCVVMx ETAPBgNVBAgTCE5ldyBZb3JrMQ8wDQYDVQQHEwZHb3RoYW0xIDAeBgNVBAoTF1N1 cGVydmlsbGFpbiBVbml2ZXJzaXR5MScwJQYJKoZIhvcNAQkBFhhwZW5ndWluQHN1 cGVydmlsbGFpbi5lZHWCCQDPjJRa9ErYejAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 DQEBBQUAA4IBAQC4SPBDGYAxfbXd8N5OvG0drM7a5hjXfcCZpiILlPSRpxp79yh7 I5vVWxBxUfolwbei7PTBVy7CE27SUbSICeqWjcDCfjNjiZk6mLS80rm/TdLrHSyM +Ujlw9MGcBGaLI+sdziDUMtTQDpeAyQTaGVbh1mx5874Hlo1VXqGYNo0RwR+iLfs x48VuO6GbWVyxtktkE2ypz1KLWiyI056YynydRvuBCBHeRqGUixPlH9CrmeSCP2S sfbiKnMOGXjIYbvbsTAMdW2iqg6IWa/fgxhvZoAXChM9bkhisJQc0qD0J5TJQwgr uEyb50RJ7DWmXctSC0b3eymZ2lSXxAWNOsNy <</ds:X509Certificate>X509Certificate> <</ds:X509Data>X509Data> <</ds:KeyInfo>KeyInfo> <</shibmd:KeyAuthority>KeyAuthority> </Extensions></Extensions> |
The complete simple metadata file would look like:
Code Block |
---|
<EntitiesDescriptor<EntitiesDescriptor xmlns=""urn:oasis:names:tc:SAML:2.0:metadata"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:ds=""http://www.w3.org/2000/09/xmldsig#"" xmlns:shibmd=""urn:mace:shibboleth:metadata:1.0"" xsi:schemaLocation=""urn:oasis:names:tc:SAML:2.0:metadata ../schemas/saml-schema-metadata-2.0.xsd urn:mace:shibboleth:metadata:1.0 ../schemas/shibboleth-metadata-1.0.xsd http://www.w3.org/2000/09/xmldsig# ../schemas/xmldsig-core-schema.xsd"" Name=""https://www.supervillain.edu/evil-federation/policy.html"" validUntil=""2010-01-01T00:00:00Z">"> <<!-- This is the metadata for Evil Federation using PKI for trust. -->> <Extensions><Extensions> <shibmd<shibmd:KeyAuthority xmlns:shibmd=""urn:mace:shibboleth:metadata:1.0"" VerifyDepth="5">"5"> <<!-- Supervillain CA -->> <ds<ds:KeyInfo xmlns:ds=""http://www.w3.org/2000/09/xmldsig#">"> <ds:X509Data><ds:X509Data> <ds:X509Certificate><ds:X509Certificate> MIIExzCCA6+gAwIBAgIJAM+MlFr0Sth6MA0GCSqGSIb3DQEBBQUAMIGdMR8wHQYD VQQDExZTdXBlcnZpbGxhaW46IFRoZSBSb290MQswCQYDVQQGEwJVUzERMA8GA1UE CBMITmV3IFlvcmsxDzANBgNVBAcTBkdvdGhhbTEgMB4GA1UEChMXU3VwZXJ2aWxs YWluIFVuaXZlcnNpdHkxJzAlBgkqhkiG9w0BCQEWGHBlbmd1aW5Ac3VwZXJ2aWxs YWluLmVkdTAeFw0wNjA4MTcxOTU5NTNaFw0xMTA4MTYxOTU5NTNaMIGdMR8wHQYD VQQDExZTdXBlcnZpbGxhaW46IFRoZSBSb290MQswCQYDVQQGEwJVUzERMA8GA1UE CBMITmV3IFlvcmsxDzANBgNVBAcTBkdvdGhhbTEgMB4GA1UEChMXU3VwZXJ2aWxs YWluIFVuaXZlcnNpdHkxJzAlBgkqhkiG9w0BCQEWGHBlbmd1aW5Ac3VwZXJ2aWxs YWluLmVkdTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL6uFqas4dK6 A2wTZL0viRQNJrPyFnFBDSZGib/2ijhgzed/vvmZIBM9sFpwahcuR5hvyKUe37/c /RSZXoNDi/eiNOx4qb0l9UB6bd8qvc4V1PnLE7L+ZYcmwrvTKm4x8qXMgEv1wca2 FPsreHNPdLiTUZ8v0tDTWi3Mgi7y47VTzJaTkcfmO1nL6xAtln5sLdH0PbMM3LAp T1d3nwI3VdbhqqZ+6+OKEuC8gk5iH4lfrbr6C9bYS6vzIKrotHpZ3N2aIC3NMjJD PMw/mfCuADfRNlHXgZW+0zyUkwGTMDea8qgsoAMWJGdeTIw8I1I3RhnbgLzdsNQl b/1ZXx1uJRUCAwEAAaOCAQYwggECMB0GA1UdDgQWBBQe+xSjYTrlfraJARjMxscb j36jvDCB0gYDVR0jBIHKMIHHgBQe+xSjYTrlfraJARjMxscbj36jvKGBo6SBoDCB nTEfMB0GA1UEAxMWU3VwZXJ2aWxsYWluOiBUaGUgUm9vdDELMAkGA1UEBhMCVVMx ETAPBgNVBAgTCE5ldyBZb3JrMQ8wDQYDVQQHEwZHb3RoYW0xIDAeBgNVBAoTF1N1 cGVydmlsbGFpbiBVbml2ZXJzaXR5MScwJQYJKoZIhvcNAQkBFhhwZW5ndWluQHN1 cGVydmlsbGFpbi5lZHWCCQDPjJRa9ErYejAMBgNVHRMEBTADAQH/MA0GCSqGSIb3 DQEBBQUAA4IBAQC4SPBDGYAxfbXd8N5OvG0drM7a5hjXfcCZpiILlPSRpxp79yh7 I5vVWxBxUfolwbei7PTBVy7CE27SUbSICeqWjcDCfjNjiZk6mLS80rm/TdLrHSyM +Ujlw9MGcBGaLI+sdziDUMtTQDpeAyQTaGVbh1mx5874Hlo1VXqGYNo0RwR+iLfs x48VuO6GbWVyxtktkE2ypz1KLWiyI056YynydRvuBCBHeRqGUixPlH9CrmeSCP2S sfbiKnMOGXjIYbvbsTAMdW2iqg6IWa/fgxhvZoAXChM9bkhisJQc0qD0J5TJQwgr uEyb50RJ7DWmXctSC0b3eymZ2lSXxAWNOsNy <</ds:X509Certificate>X509Certificate> <</ds:X509Data>X509Data> <</ds:KeyInfo>KeyInfo> <</shibmd:KeyAuthority>KeyAuthority> </Extensions></Extensions> <<!-- The Supervillain IdP -->> <EntityDescriptor<EntityDescriptor entityID=""https://idp.example.org/shibboleth">"> <IDPSSODescriptor<IDPSSODescriptor protocolSupportEnumeration=""urn:oasis:names:tc:SAML:1.1:protocol urn:mace:shibboleth:1.0">"> <Extensions><Extensions> <<!-- It's authoritative for supervillain.edu. -->> <shibmd:Scope>supervillain.edu<<shibmd:Scope>supervillain.edu</shibmd:Scope>Scope> </Extensions></Extensions> <KeyDescriptor<KeyDescriptor use="signing">"signing"> <ds<ds:KeyInfo xmlns:ds=""http://www.w3.org/2000/09/xmldsig#">"> <ds:KeyName>idp<ds:KeyName>idp.supervillain.edu<edu</ds:KeyName>KeyName> <</ds:KeyInfo>KeyInfo> </KeyDescriptor></KeyDescriptor> <ArtifactResolutionService<ArtifactResolutionService index="1""1" Binding=""urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding"" Location=""http://idp.example.org:8080/shibboleth-idp/Artifact"/>"/> <NameIDFormat>urn<NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>nameIdentifier</NameIDFormat> <SingleSignOnService<SingleSignOnService Binding=""urn:mace:shibboleth:1.0:profiles:AuthnRequest"" Location=""https://idp.example.org/shibboleth-idp/SSO"/>"/> </IDPSSODescriptor></IDPSSODescriptor> <AttributeAuthorityDescriptor<AttributeAuthorityDescriptor protocolSupportEnumeration=""urn:oasis:names:tc:SAML:1.1:protocol">"> <Extensions><Extensions> <<!-- It's authoritative for supervillain.edu. -->> <shibmd:Scope>supervillain.edu<<shibmd:Scope>supervillain.edu</shibmd:Scope>Scope> </Extensions></Extensions> <KeyDescriptor<KeyDescriptor use="signing">"signing"> <ds<ds:KeyInfo xmlns:ds=""http://www.w3.org/2000/09/xmldsig#">"> <ds:KeyName>idp<ds:KeyName>idp.supervillain.edu<edu</ds:KeyName>KeyName> <</ds:KeyInfo>KeyInfo> </KeyDescriptor></KeyDescriptor> <AttributeService<AttributeService Binding=""urn:oasis:names:tc:SAML:1.0:bindings:SOAP-binding"" Location=""http://idp.example.org:8080/shibboleth-idp/AA"/>"/> <NameIDFormat>urn<NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>nameIdentifier</NameIDFormat> </AttributeAuthorityDescriptor></AttributeAuthorityDescriptor> <Organization><Organization> <OrganizationName<OrganizationName xml:lang="en">The"en">The Exalted University of Supervillains</OrganizationName>Supervillains</OrganizationName> <OrganizationDisplayName<OrganizationDisplayName xml:lang="en">Supervillain University</OrganizationDisplayName>"en">Supervillain University</OrganizationDisplayName> <OrganizationURL<OrganizationURL xml:lang="en">http"en">http://www.supervillain.edu/</OrganizationURL></OrganizationURL> </Organization></Organization> <ContactPerson<ContactPerson contactType="technical">"technical"> <SurName>Norman Osborn</SurName><SurName>Norman Osborn</SurName> <EmailAddress>greengoblin@supervillain.edu</EmailAddress><EmailAddress>greengoblin@supervillain.edu</EmailAddress> </ContactPerson></ContactPerson> </EntityDescriptor></EntityDescriptor> <<!-- The main Supervillain web server -->> <EntityDescriptor<EntityDescriptor entityID=""https://www.supervillain.edu/shibboleth/evil-federation/sp">"> <SPSSODescriptor<SPSSODescriptor protocolSupportEnumeration=""urn:oasis:names:tc:SAML:1.1:protocol">"> <KeyDescriptor<KeyDescriptor use="signing">"signing"> <ds<ds:KeyInfo xmlns:ds=""http://www.w3.org/2000/09/xmldsig#">"> <ds:KeyName>www<ds:KeyName>www.supervillain.edu<edu</ds:KeyName>KeyName> <</ds:KeyInfo>KeyInfo> </KeyDescriptor></KeyDescriptor> <NameIDFormat>urn<NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat>nameIdentifier</NameIDFormat> <AssertionConsumerService<AssertionConsumerService index="1""1" isDefault="true""true" Binding=""urn:oasis:names:tc:SAML:1.0:profiles:browser-post"" Location=""https://www.supervillain.edu/Shibboleth.sso/SAML/POST"/>"/> <AssertionConsumerService<AssertionConsumerService index="2""2" Binding=""urn:oasis:names:tc:SAML:1.0:profiles:artifact-01"" Location=""https://www.supervillain.edu/Shibboleth.sso/SAML/Artifact"/>"/> </SPSSODescriptor></SPSSODescriptor> <Organization><Organization> <OrganizationName<OrganizationName xml:lang="en">The"en">The Exalted University of Supervillains</OrganizationName>Supervillains</OrganizationName> <OrganizationDisplayName<OrganizationDisplayName xml:lang="en">Supervillain University</OrganizationDisplayName>"en">Supervillain University</OrganizationDisplayName> <OrganizationURL<OrganizationURL xml:lang="en">http"en">http://www.supervillain.edu/</OrganizationURL></OrganizationURL> </Organization></Organization> <ContactPerson<ContactPerson contactType="technical">"technical"> <SurName>Erik<SurName>Erik Magnus Lehnsherr</SurName>Lehnsherr</SurName> <EmailAddress>magneto@supervillain.edu</EmailAddress><EmailAddress>magneto@supervillain.edu</EmailAddress> </ContactPerson></ContactPerson> </EntityDescriptor> </EntitiesDescriptor> |
%COMMENT%
...
</EntityDescriptor>
</EntitiesDescriptor>
|