django-mellon/mellon/templates/mellon/metadata.xml

93 lines
3.7 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EntityDescriptor
entityID="{{ entity_id }}"
xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
<SPSSODescriptor
AuthnRequestsSigned="true"
WantAssertionsSigned="true"
protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
<Extensions>
<idpdisc:DiscoveryResponse index="1"
xmlns:idpdisc="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
Binding="urn:oasis:names:tc:SAML:profiles:SSO:idp-discovery-protocol"
Location="{{ discovery_endpoint_url }}"/>
</Extensions>
{% for public_key in public_keys %}
<KeyDescriptor>
<ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>{{ public_key }}</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</KeyDescriptor>
{% endfor %}
<SingleLogoutService
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
Location="{{ logout_url }}" />
{% for name_id_format in name_id_formats %}
<NameIDFormat>{{ name_id_format }}</NameIDFormat>
{% endfor %}
<AssertionConsumerService
index="0"
{% if default_assertion_consumer_binding == "artifact" %}
isDefault="true"
{% endif %}
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
Location="{{ login_url }}" />
<AssertionConsumerService
index="1"
{% if default_assertion_consumer_binding == "post" %}
isDefault="true"
{% endif %}
Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
Location="{{ login_url }}" />
</SPSSODescriptor>
{% if organization and organization.NAMES and organization.DISPLAY_NAMES and organization.URLS %}
<Organization>
{% for name in organization.NAMES %}
{% if name.LABEL %}
<OrganizationName {% if name.LANG %}xml:lang="{{ name.LANG }}"{% endif %}>{{ name.LABEL }}</OrganizationName>
{% else %}
<OrganizationName>{{ name }}</OrganizationName>
{% endif %}
{% endfor %}
{% for display_name in organization.DISPLAY_NAMES %}
{% if display_name.LABEL %}
<OrganizationDisplayName {% if display_name.LANG %}xml:lang="{{ display_name.LANG }}"{% endif %}>{{ display_name.LABEL }}</OrganizationDisplayName>
{% else %}
<OrganizationDisplayName>{{ display_name }}</OrganizationDisplayName>
{% endif %}
{% endfor %}
{% for url in organization.URLS %}
{% if url.URL %}
<OrganizationURL {% if url.LANG %}xml:lang="{{ url.LANG }}"{% endif %}>{{ url.URL }}</OrganizationURL>
{% else %}
<OrganizationURL>{{ url }}</OrganizationURL>
{% endif %}
{% endfor %}
</Organization>
{% endif %}
{% for contact_person in contact_persons %}
{% if contact_person.CONTACT_TYPE %}
<ContactPerson contactType="{{ contact_person.CONTACT_TYPE }}">
{% if contact_person.COMPANY %}
<Company>{{ contact_person.COMPANY }}</Company>
{% endif %}
{% if contact_person.GIVEN_NAME %}
<GivenName>{{ contact_person.GIVEN_NAME }}</GivenName>
{% endif %}
{% if contact_person.SURNAME %}
<SurName>{{ contact_person.SURNAME }}</SurName>
{% endif %}
{% for email_address in contact_person.EMAIL_ADDRESSES %}
<EmailAddress>{{ email_address }}</EmailAddress>
{% endfor %}
{% for telephone_number in contact_person.TELEPHONE_NUMBERS %}
<TelephoneNumber>{{ telephone_number }}</TelephoneNumber>
{% endfor %}
</ContactPerson>
{% endif %}
{% endfor %}
</EntityDescriptor>