我如何为SAML2生成有效的SP XML文件?

时间:2017-09-07 14:33:28

标签: apache saml-2.0 adfs shibboleth

我不知道为我的自定义SP服务实现SAML2协议,我有一些困难......

我试过这个;

<?xml version="1.0" encoding="UTF-8"?>
 <EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="http://www.mydomain.ext/#/secure">
  <SPSSODescriptor WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
   <AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="http://www.mydomain.ext/#/" isDefault="true"/>
    <KeyDescriptor>
     <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
      <ds:X509Data>
       <ds:X509Certificate>
        {my_x509_certificate_generated}
       </ds:X509Certificate>
      </ds:X509Data>
     </ds:KeyInfo>
    </KeyDescriptor>
   <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:entity</NameIDFormat>
  </SPSSODescriptor>
 </EntityDescriptor>

我需要将它发送到IDP发送xml文件。什么错过了制作有效的SP xml文件?,谢谢

1 个答案:

答案 0 :(得分:1)

您附加的XML是SP元数据,它描述了SP属性 - ID,证书,绑定支持等... 我建议您在进入实际编码或配置之前更熟悉SAML。

以下是一些很好的资源:

https://github.com/jch/saml

https://en.wikipedia.org/wiki/Security_Assertion_Markup_Language

https://en.wikipedia.org/wiki/SAML_2.0

如果您使用JAVA实现SP,可以使用以下一些好的库: OneLogin的SAML Java工具包 - https://github.com/onelogin/java-saml

Okta SignIn小部件 - https://github.com/okta/okta-signin-widget

适用于Java的LastPass SAML SDK - https://github.com/lastpass/saml-sdk-java

Dead Simple SAML 2.0 Client - https://github.com/coveo/saml-client

pac4j - http://www.pac4j.org/docs/clients/saml.html