Java SAML元数据文件与SSO

Java SAML元数据文件与SSO,java,saml,Java,Saml,目标 使用SSO导航到url 信息 第三方给了我一个SP SAML元数据文件 问题 使用Java和JavaScript,如何导航到端点url 我看过许多关于SAML体系结构的文章,但似乎找不到如何导航到端点。我想这甚至可以像JWT罐头一样在邮递员身上测试 更多信息 我是SAML的新手,但一直在阅读这个话题。据我所知,我是“委托人”,第三方是“服务提供商”。看起来他们是用来生成SP metatdata文件的 e、 g 证明书 证明书 urn:oasis:names:tc:SAML:1.1:nam

目标

使用SSO导航到url

信息

第三方给了我一个SP SAML元数据文件

问题

使用Java和JavaScript,如何导航到端点url

我看过许多关于SAML体系结构的文章,但似乎找不到如何导航到端点。我想这甚至可以像JWT罐头一样在邮递员身上测试

更多信息

我是SAML的新手,但一直在阅读这个话题。据我所知,我是“委托人”,第三方是“服务提供商”。看起来他们是用来生成SP metatdata文件的

e、 g


证明书
证明书
urn:oasis:names:tc:SAML:1.1:nameid格式:未指定

主体是IdP正在验证的用户。简单流程基本上是,使用:

  • 用户转到服务提供商(SP)的资源
  • SP检测到用户没有会话,并将浏览器重定向到IdP的SSO端点
  • IdP验证用户(主体)
  • IdP将浏览器重定向到SP的
    AssertionConsumerService
    URL以及URL中编码的SAML响应,该响应包含主体的SAML属性
  • 通过
    GET
    POST
    SAML绑定,有各种SAML请求/响应示例和SP重定向浏览器的各种方式。加上许多其他要素,例如基于每个实体(IdP和SP)元数据中的密钥的证书和签名


    通常,您必须使用您的私钥对SAML请求进行签名,而另一个实体(例如IdP)使用您的SAML元数据中的公钥验证该签名,
    /X509Data/X509Certificate
    。发送给SP的未经请求的SAML响应可能不相关,但需要使用IdP的私钥对其进行签名,SP需要使用IdP的公钥来验证签名。

    Hi@codebrane,感谢您的上述解释。这确实使SAML的工作原理更加清晰。问题:作为使用网站的“负责人”,您知道我在哪里可以找到有关如何重定向到SP的示例/教程吗?我可以从上面的链接中看到,有一些请求/响应对象的示例,但我不知道如何实际实现它。我是否调用端点?我似乎也找不到这样的例子。配置文件是基于浏览器的,所以你什么都不打。您只需将浏览器重定向到SP的AssertionConsumerService,参数为?SAMLResponse=。。。但您需要构造一个SAML响应,对其进行签名,可能还需要对其进行加密和base64编码。出于这些原因,不建议实施您自己的IdP
    <?xml version="1.0"?>
    <md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" validUntil="2020-10-14T14:43:29Z" cacheDuration="PT604800S" entityID="https://testentityid">
      <md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">
        <md:KeyDescriptor use="signing">
          <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
            <ds:X509Data>
              <ds:X509Certificate>certificate</ds:X509Certificate>
            </ds:X509Data>
          </ds:KeyInfo>
        </md:KeyDescriptor>
        <md:KeyDescriptor use="encryption">
          <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
            <ds:X509Data>
              <ds:X509Certificate>certificate</ds:X509Certificate>
            </ds:X509Data>
          </ds:KeyInfo>
        </md:KeyDescriptor>
        <md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://logoutendpoint"/>
        <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>
        <md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://consumeendpoint" index="1"/>
      </md:SPSSODescriptor>
    </md:EntityDescriptor>