Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SAML2.0断言请求_Java_Saml 2.0 - Fatal编程技术网

Java SAML2.0断言请求

Java SAML2.0断言请求,java,saml-2.0,Java,Saml 2.0,如何使用SAML2.0将用户从网站a重定向到网站B?一旦用户在网站B完成活动,他应该返回网站A,根据网站B的结果,他应该能够继续在网站A上进行进一步的活动 我还对服务提供商(SP)和身份提供商(IP)的概念感到困惑。网站A是服务提供商还是身份提供商,网站B也是如此 我在SAML2.0中的背景实际上是零,我正在阅读文档以了解如何创建SAML2.0断言。我正试图用java实现这一点 有没有人有了解SAML2.0的入门读物 <?xml version="1.0" encoding="UTF-8"

如何使用SAML2.0将用户从网站a重定向到网站B?一旦用户在网站B完成活动,他应该返回网站A,根据网站B的结果,他应该能够继续在网站A上进行进一步的活动

我还对服务提供商(SP)和身份提供商(IP)的概念感到困惑。网站A是服务提供商还是身份提供商,网站B也是如此

我在SAML2.0中的背景实际上是零,我正在阅读文档以了解如何创建SAML2.0断言。我正试图用java实现这一点

有没有人有了解SAML2.0的入门读物

<?xml version="1.0" encoding="UTF-8"?>
-<saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Version="2.0" IssueInstant="2013-04-12T15:43:42.389Z" ID="413be1b7-ac2d-4324-a359-998935f11a66">
  -<saml2p:Status><saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></saml2p:Status>
  -<saml2:Assertion Version="2.0" IssueInstant="2013-04-19T20:16:07.090Z" ID="SamlAssertion-25171a8736ed098dde8659e5ba250b5f" xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
   <saml2:Issuer Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">ffx-ffe-w7-15.cgiabccompany.com</saml2:Issuer>
   <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <saml2:Subject><saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" NameQualifier="">test</saml2:NameID>
    <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:sender-vouches"><saml2:NameID>CN=ffx-ffe-w7-15.cgiabccompany.com, OU=ffx, OU=ffe, O=cgifederal, L=Herndon, ST=VA, C=US</saml2:NameID></saml2:SubjectConfirmation>
    </saml2:Subject>
    <saml2:Conditions NotOnOrAfter="2013-04-19T20:21:08.437Z" NotBefore="2013-04-19T20:14:08.437Z"/>
    <saml2:AttributeStatement>
        <saml2:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="State Exchange Code"> 
        <saml2:AttributeValue>MD0</saml2:AttributeValue>  
    </saml2:Attribute>               
    <saml2:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="User Type">
    <saml2:AttributeValue>Consumer</saml2:AttributeValue>
    </saml2:Attribute>
    <saml2:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="ABC Company User ID">
    <saml2:AttributeValue>john.doe@email.com</saml2:AttributeValue>
    </saml2:Attribute>
    <saml2:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="Transfer Type">
    <saml2:AttributeValue>Direct Service</saml2:AttributeValue> 
    </saml2:Attribute>        
    <saml2:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="Keep Alive URL">
    <saml2:AttributeValue>https://www.mycompany.com/extendsession.jsp</saml2:AttributeValue>
    </saml2:Attribute>        
    <saml2:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="First Name">
    <saml2:AttributeValue>JOHN</saml2:AttributeValue>
    </saml2:Attribute>
    <saml2:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="Middle Name">
    <saml2:AttributeValue>FISCHER</saml2:AttributeValue>
    </saml2:Attribute>
    <saml2:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="Last Name">
    <saml2:AttributeValue>DOE</saml2:AttributeValue>
    </saml2:Attribute>
    <saml2:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="City Name">
    <saml2:AttributeValue>PEORIA</saml2:AttributeValue>
    </saml2:Attribute>
    <saml2:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="State">
    <saml2:AttributeValue>IL</saml2:AttributeValue>
    </saml2:Attribute>
    <saml2:Attribute NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified" Name="Zip Code">
    <saml2:AttributeValue>20190</saml2:AttributeValue>
    </saml2:Attribute>
 </saml2:AttributeStatement>
 <saml2:AuthnStatement SessionNotOnOrAfter="2013-04-12T15:43:42.328Z" SessionIndex="session#1" AuthnInstant="2013-04-12T15:43:42.328Z"><saml2:SubjectLocality DNSName="2.175.111.190" Address="1234 Fishy LN, PEORIA, IL 20190"/>
   <saml2:AuthnContext>
   <saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password   
   </saml2:AuthnContextClassRef>
   </saml2:AuthnContext>
</saml2:AuthnStatement>
</saml2:Assertion>
</saml2p:Response>

-
-
-
ffx-ffe-w7-15.cgiabccompany.com
测试
CN=ffx-ffe-w7-15.cgiabccompany.com,OU=ffx,OU=ffe,O=cgifederal,L=Herndon,ST=VA,C=US
MD0
消费者
厕所。doe@email.com
直接服务
https://www.mycompany.com/extendsession.jsp
厕所
菲舍尔
雌鹿
皮奥里亚
白细胞介素
20190
urn:oasis:name:tc:SAML:2.0:ac:classes:Password

这方面的典型场景是带有artifact bindig的SAML WEB SSO

  • 网站A(SP)发现用户没有经过身份验证的会话
  • SP使用SAML AutnRequest作为URL参数将用户重定向到网站B(IDP)
  • IDP对用户进行身份验证,并使用URL参数中的工件将其重定向回SP
  • SP使用向IDP发送的ArtifactResolveRequest通过SOAP将工件交换为断言
  • 断言是用户被认证的证据,可以包含IDP存储的关于用户的信息。例如uid

    在您所说的场景中,网站A是SP,网站B是IDP。SP是需要用户身份验证的实体,IDP(身份提供者)是提供身份验证的实体

    SAML SSO是使用许多产品实现的,例如OpenAM Shibboleth。如果您想将SAML构建到软件中,可以使用OpenSAML或SpringSAML模块等库

    我的书,很好地介绍了SAML和OpenSAML库

    其他相关阅读是和我的这些帖子


    需要帮助吗?在博客上问我一个问题。需要很多帮助吗?我是一名招聘顾问。

    这方面的典型场景是使用artifact bindig的SAML WEB SSO

  • 网站A(SP)发现用户没有经过身份验证的会话
  • SP使用SAML AutnRequest作为URL参数将用户重定向到网站B(IDP)
  • IDP对用户进行身份验证,并使用URL参数中的工件将其重定向回SP
  • SP使用向IDP发送的ArtifactResolveRequest通过SOAP将工件交换为断言
  • 断言是用户被认证的证据,可以包含IDP存储的关于用户的信息。例如uid

    在您所说的场景中,网站A是SP,网站B是IDP。SP是需要用户身份验证的实体,IDP(身份提供者)是提供身份验证的实体

    SAML SSO是使用许多产品实现的,例如OpenAM Shibboleth。如果您想将SAML构建到软件中,可以使用OpenSAML或SpringSAML模块等库

    我的书,很好地介绍了SAML和OpenSAML库

    其他相关阅读是和我的这些帖子


    需要帮助吗?在博客上问我一个问题。需要很多帮助吗?我是一名招聘顾问。

    如果一个断言语句被包装在一个响应中,你怎么称呼它?断言或回应。基本上,网站B为我提供了这种模式,我应该从我的系统(网站A)向他们发送一个断言语句以得到验证。您向他们发送这是正常登录过程的一部分,还是只是为了测试。这听起来很奇怪,你需要发送给他们一个正常的登录。由于这不是SAML的一部分,很难说清楚,但我认为您应该向他们发送断言。一旦我完成编码,它将成为登录过程的一部分。基本上,用户将登录到网站A,并输入一些信息,然后将重定向到网站B的一些基本信息。我把SAML断言格式放在了B希望我们将它们发送到的网站上。好的,你认为答案回答了你的问题吗?你的答案帮助我理解了SAML。我试图了解如何在我的系统中实现它。我发布了SAML模式,这是网站B为网站A(我的网站)提供的重定向模式。如果一个断言语句被包装在一个响应中,你怎么称呼它?断言或回应。基本上,网站B为我提供了这种模式,我应该从我的系统(网站A)向他们发送一个断言语句以得到验证。您向他们发送这是正常登录过程的一部分,还是只是为了测试。这听起来很奇怪,你需要发送给他们一个正常的登录。由于这不是SAML的一部分,很难说清楚,但我认为您应该向他们发送断言。一旦我完成编码,它将成为登录过程的一部分。基本上,用户将登录到网站A,并输入一些信息,然后将重定向到网站B的一些基本信息。我把SAML断言格式放在了B希望我们将它们发送到的网站上。好的,你认为答案回答了你的问题吗?你的答案帮助我理解了SAML。我试图了解如何在我的系统中实现它。我发布了网站B为网站A(我的网站)提供重定向的SAML模式。