SP Metadata示例

<md:EntityDescriptor entityID="https://sp.example.com/shibboleth"
                     xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata"
                     xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui">
    
   <md:SPSSODescriptor protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
      <md:Extensions>
         <mdui:UIInfo>
            <mdui:DisplayName xml:lang="en">GARR Test SP</mdui:DisplayName>
            <mdui:DisplayName xml:lang="it">GARR SP di Test</mdui:DisplayName>
            <mdui:Description xml:lang="en">This is a Service Provider useful for testing</mdui:Description>
            <mdui:Description xml:lang="it">Questo è un Service Provider utile per i test</mdui:Description>
         </mdui:UIInfo>
      </md:Extensions>
    
      <md:KeyDescriptor>
         <ds:KeyInfo>
            <ds:X509Data>
               <ds:X509Certificate>
                  SP_SELF-SIGNED_SUGGESTED_CERTIFICATE_USED_TO_
                  SIGN_AND_ENCRYPT_THE_ASSERTIONS_EXCHANGED_WITH_A_IDP-CHANGE_IT
               </ds:X509Certificate>
            </ds:X509Data>
         </ds:KeyInfo>
      </md:KeyDescriptor>
    
      <md:AssertionConsumerService
         Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
         Location="https://sp.example.com/Shibboleth.sso/SAML2/POST"
         index="0" />
    
      <md:AttributeConsumingService index="1">
    
         <!-- example for the required attribute: mail -->
         <md:RequestedAttribute FriendlyName="mail"
            Name="urn:oid:0.9.2342.19200300.100.1.3"
            NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
            isRequired="true" />
    
         <!-- example for the required attribute: eduPersonPrincipalName -->
         <md:RequestedAttribute FriendlyName="eduPersonPrincipalName"
            Name="urn:oid:1.3.6.1.4.1.5923.1.1.1.6"
            NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri"
            isRequired="true" />
    
      </md:AttributeConsumingService>
   </md:SPSSODescriptor>
    
   <md:Organization>
      <md:OrganizationName xml:lang="en">Consortium GARR</md:OrganizationName>
      <md:OrganizationName xml:lang="it">Consortium GARR</md:OrganizationName>
    
      <md:OrganizationDisplayName xml:lang="en">Consortium GARR
      </md:OrganizationDisplayName>
      <md:OrganizationDisplayName xml:lang="it">Consortium GARR</md:OrganizationDisplayName>
    
      <md:OrganizationURL xml:lang="en">http://www.garr.it/b/eng
      </md:OrganizationURL>
      <md:OrganizationURL xml:lang="it">https://www.garr.it</md:OrganizationURL>
   </md:Organization>
    
   <md:ContactPerson contactType="technical">
      <md:EmailAddress>mailto:example.technical.contact@garr.it</md:EmailAddress>
   </md:ContactPerson>
    
</md:EntityDescriptor>

这段元数据描述了一个名为 "GARR Test SP" 的服务提供者 (SP),它用于测试目的。以下是元数据中各个部分的解释:

1. md:EntityDescriptor:

  • entityID="https://sp.example.com/shibboleth": SP 的唯一标识符,用于在 SAML 系统中识别它。

  • xmlns:ds="http://www.w3.org/2000/09/xmldsig#": 定义了 XML 数字签名 (XML Digital Signature) 的命名空间。

  • xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance": 定义了 XML Schema 实例的命名空间。

  • xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata": 定义了 SAML 2.0 元数据的命名空间。

  • xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui": 定义了 SAML 2.0 元数据用户界面 (Metadata User Interface) 的命名空间。

2. md:SPSSODescriptor:

  • protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol": 表示 SP 支持 SAML 2.0 协议。

3. md:Extensions:

  • mdui:UIInfo: 包含 SP 的用户界面信息。

    • mdui:DisplayName: SP 的显示名称,分别用英文和意大利语提供。

    • mdui:Description: SP 的描述,分别用英文和意大利语提供。

4. md:KeyDescriptor:

  • ds:KeyInfo: 包含 SP 的公钥信息。

    • ds:X509Data: 包含 SP 的 X.509 证书。

    • ds:X509Certificate: SP 的证书内容,这里用占位符表示,实际应该包含真实的证书内容。

5. md:AssertionConsumerService:

  • Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST": 指定 SP 使用 HTTP POST 绑定方式接收 SAML 断言。

  • Location="https://sp.example.com/Shibboleth.sso/SAML2/POST": SP 的断言接收服务 (ACS) 的 URL。

  • index="0": 用于标识 ACS 的索引,这里为 0。

6. md:AttributeConsumingService:

  • index="1": 用于标识 AttributeConsumingService 的索引,这里为 1。

  • md:RequestedAttribute: 定义了 SP 所需的属性。

    • FriendlyName: 属性的友好名称。

    • Name: 属性的 OID (对象标识符)。

    • NameFormat: 属性名称格式。

    • isRequired: 是否为必需属性,这里两个属性都为必需。

7. md:Organization:

  • md:OrganizationName: SP 所属组织的名称,分别用英文和意大利语提供。

  • md:OrganizationDisplayName: SP 所属组织的显示名称,分别用英文和意大利语提供。

  • md:OrganizationURL: SP 所属组织的网站 URL,分别用英文和意大利语提供。

8. md:ContactPerson:

  • contactType="technical": 表示技术联系人。

  • md:EmailAddress: 技术联系人的电子邮件地址。

总结:

这段元数据描述了一个名为 "GARR Test SP" 的服务提供者,它支持 SAML 2.0 协议,使用 HTTP POST 绑定方式接收 SAML 断言,并需要 "mail" 和 "eduPersonPrincipalName" 两个属性。它还包含了 SP 所属组织的信息和技术联系人的信息。

参考资料

https://wiki.geant.org/display/eduGAIN/Basic+SP+Metadata+Example

最后更新于