【问题标题】:How i can generate a valid SP XML file for SAML2?如何为 SAML2 生成有效的 SP XML 文件?
【发布时间】:2018-02-16 08:25:22
【问题描述】:

我不知道为我的自定义 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>

我需要将 xml 文件发送到 IDP。制作有效的 SP xml 文件有什么遗漏?,谢谢

【问题讨论】:

    标签: apache saml-2.0 adfs shibboleth


    【解决方案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 登录小部件 - https://github.com/okta/okta-signin-widget

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

    Dead Simple SAML 2.0 客户端 - https://github.com/coveo/saml-client

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

    【讨论】:

    • 感谢 Tomer Sela 的同意。配置我的 SP 后,我可以在 URL“mydomain.ext/Shibboleth.sso/Metadata”中看到我的 SP 元数据文件。新问题是,当我将凭据放在 IDP 登录时,这会再次重定向到 IDP 并显示错误消息。无法重定向到我的 SP 来创建会话。是否可能需要在 IDP 上配置更多内容?
    • 您看到的错误是什么?这里有几件事要检查 - 您的元数据是否具有正确的 ACS URL?这是 IDP 知道将用户重定向到哪里以在 SP 中进行身份验证的地方;您是否将您的 SP 配置为使用与 IDP 用于传输 SAML 响应消息的相同绑定? (根据您的元数据,这是 HTTP-POST);您是否使用 IDP 证书更新了 SP?
    • 不,我看到自定义错误页面视图。这是元数据文件路径 => pastebin.com/raw/r39PHz8c 的结果。与 IDP 的联盟是正确的。我可以用 Apache 重定向收到的数据吗?¿ 谢谢!
    • 您可以使用 Apache 或任何其他 Web 服务器执行 Post 绑定。一种方法是返回一个带有脚本的 HTML 表单,该脚本将自动将表单发布到 ACS url - saml.xml.org/wiki/idp-initiated-single-sign-on-post-binding
    • 谢谢 Tom Sela。我了解 IDP 包含登录表单,完成后,IDP 将 POST 数据发送到我的 SP。 Shibboleth 服务处理响应并应该重定向到 apache 服务,对吧?我想知道哪些数据在重定向之前接收了SP服务。我的网站没有任何表格,只有视图。是否需要在 SP 上制作表单并在没有 Shibboleth 的情况下更改 POST url?
    猜你喜欢
    • 1970-01-01
    • 2016-02-06
    • 2023-04-10
    • 2011-01-15
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 2016-05-16
    • 2015-10-09
    相关资源
    最近更新 更多