当前位置: 首页 > 知识库问答 >
问题:

SAML 2.0响应和KeyInfo元素

苏富
2023-03-14

总之,我有一个关于SAML 2.0响应的快速问题,我一直在使用它作为我的web SSO的一部分。我们是身份提供商,我们向服务提供商(SP)发送SAML令牌。SP希望我们在发送之前签署全部内容。我们已经向SP发送了公共证书。谁的证书详细信息位于生成的SAML 2.0响应中的元素下?是IDP还是服务提供商(SP)。我们还没有来自SP的公共证书

<samlp2:Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="_71b134e9-1ab3-4680-90a4-3b95c8530a59" Version="2.0" IssueInstant="2017-09-21T17:29:21.6178748Z" Destination="https://sp.com" xmlns:samlp2="urn:oasis:names:tc:SAML:2.0:protocol">
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
      <CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
      <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
      <Reference URI="#_79b534eb-9771-4d22-9d61-d4dc5997be70">
        <Transforms>
          <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
          <Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
        </Transforms>
        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <DigestValue>RzEq/7vrq</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue>jQCx6BZyoW+okh+zxwrd</SignatureValue>
    <KeyInfo>
      <X509Data>
        <X509IssuerSerial>
          <X509IssuerName>CN=CA, DC=us, DC=local</X509IssuerName>
          <X509SerialNumber>1248841732558767</X509SerialNumber>
        </X509IssuerSerial>
        <X509Certificate>MIIEpTCCA42gAwIBAgITOAAAARWJYtXzIdPzr</X509Certificate>
      </X509Data>
    </KeyInfo>
  </Signature>
  <samlp2:Status>
    <samlp2:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
  </samlp2:Status>
  <saml2:Assertion Version="2.0" ID="_79b534eb-9771-4d22-9d61-d4dc5997be70" IssueInstant="2017-09-21T17:29:21.6208748Z" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
    <saml2:Issuer>https://mycompany.com/</saml2:Issuer>
    <saml2:Subject>
      <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">TestUser</saml2:NameID>
      <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
        <saml2:SubjectConfirmationData NotBefore="2017-09-21T17:29:21.6218748Z" NotOnOrAfter="2017-09-21T17:33:21.6218748Z" />
      </saml2:SubjectConfirmation>
    </saml2:Subject>
    <saml2:Conditions NotBefore="2017-09-21T17:29:21.6218748Z" NotOnOrAfter="2017-09-21T17:33:21.6218748Z" />
    <saml2:AuthnStatement AuthnInstant="2017-09-21T17:29:21.6228748Z" SessionNotOnOrAfter="2017-09-21T17:34:21.6228748Z">
      <saml2:AuthnContext>
        <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml2:AuthnContextClassRef>
      </saml2:AuthnContext>
    </saml2:AuthnStatement>
    <saml20:AttributeStatement xmlns:saml20="urn:oasis:names:tc:SAML:2.0:assertion">
      <saml20:Attribute Name="MyCompany" NameFormat="www.sp.com">
        <saml20:AttributeValue>test value</saml20:AttributeValue>
      </saml20:Attribute>
    </saml20:AttributeStatement>
  </saml2:Assertion>
</samlp2:Response>

共有1个答案

步胜
2023-03-14

响应中的证书应该是IDP中的证书。这样SP就可以确保IDP签署了响应,并且它没有被用户代理(或其他任何人)操纵。

 类似资料:
  • SAML专家请帮忙!!!! 我对SAML和JSP非常陌生。我想使用java(Environment linux,Tomcat6.0)中的Opensaml库验证IDP(identity provider)启动的SAML响应令牌,并检索发送的属性信息,如用户ID、用户名、电子邮件。SAML响应没有加密,我的java密钥库中安装了idp的信任证书。SAML令牌配置文件是“web浏览器SSO”,它使用HT

  • 我想比较从SOAP响应和JDBC请求获取的节点下元素的值。我可以用下面的groovy代码打印这些值,但由于我不太擅长编码,所以无法进行比较。 注意:两个响应中的元素名称相同,但顺序不同。 我想根据两个响应中的元素名称比较值,而不管元素的顺序如何。注意:仅当JDBC元素值不为空时才进行比较。 def groovyUtils=新com。eviware。soapui。支持GroovyUtils(上下文)

  • 我想返回一个临时重定向,使用AsyncACK。 下面的“工作”(因为没有错误),但似乎不是异步的(它一次处理一个请求)。 这应该工作吗?如果我明确需要像https://jersey.github.io/documentation/latest/async.html#d0e9895一样启动一个新线程,返回响应是什么样子的?

  • 我在返回带有指定对象根名的对象列表时遇到了一些麻烦。我试过几种不同的方法。我确信我正在做一件像往常一样难以置信的愚蠢的事情,我很感激任何帮助。 这是我的东西

  • 我想知道SAML解决方案(身份提供者或服务提供商)是否需要支持SAML元数据交换(即SAML元数据规范),以便被定义为完全符合SAML 2.0。 查看SAML一致性文档,不太清楚根据RFC 2119,这是必须的、应该的还是可能的。 任何想法我应该在哪里寻找? 裁判: http://docs.oasis-open.org/security/saml/v2.0/saml-conformance-2.0

  • 我正在从jsp调用一个endpoint: 它返回对象类型。 来自我想将响应保存在该对象中,以便解析查询结果。 错误: 问:这是保存ResultSet响应的正确方法吗?