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

ADFS和Spring-SAML应用程序之间的循环

壤驷彦
2023-03-14

我已经在Wildfly 8.2上的JEE6 Web应用程序中实现了Spring SAML SSO,以便使用ADFS2 / 3进行autenticing,但目前我无法成功进入授权过程。这是请求/响应乒乓球/乒乓球:

<saml2p:AuthnRequest xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol"
                 AssertionConsumerServiceURL="https://172.19.100.141:8443/saml/SSO"
                 Destination="MYIDP"
                 ForceAuthn="false"
                 ID="a1be1ie43303d6ei1fa8je1fdd1jhh4"
                 IsPassive="false"
                 IssueInstant="2015-10-05T16:52:54.680Z"
                 ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                 Version="2.0"
                 >
<saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">SPENTITY</saml2:Issuer>

回应:

<samlp:Response ID="_c644ea1a-88e9-4022-a9fc-52071d0e67bc"
            Version="2.0"
            IssueInstant="2015-10-05T16:52:54.658Z"
            Destination="https://172.19.100.141:8443/saml/SSO"
            Consent="urn:oasis:names:tc:SAML:2.0:consent:unspecified"
            InResponseTo="a1be1ie43303d6ei1fa8je1fdd1jhh4"
            xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
            >
<Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">IDP/adfs/services/trust</Issuer>
<samlp:Status>
    <samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
</samlp:Status>
<EncryptedAssertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
    <xenc:EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
                        xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"
                        >
        <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
        <KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
            <e:EncryptedKey xmlns:e="http://www.w3.org/2001/04/xmlenc#">
                <e:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p">
                    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
                </e:EncryptionMethod>
                <KeyInfo>
                    <ds:X509Data xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
                        <ds:X509IssuerSerial>
                            <ds:X509IssuerName>MY ISSUER RDATA</ds:X509IssuerName>
                            <ds:X509SerialNumber>686142642</ds:X509SerialNumber>
                        </ds:X509IssuerSerial>
                    </ds:X509Data>
                </KeyInfo>
                <e:CipherData>
                    <e:CipherValue>VAL</e:CipherValue>
                </e:CipherData>
            </e:EncryptedKey>
        </KeyInfo>
        <xenc:CipherData>
            <xenc:CipherValue>VAL</xenc:CipherValue>
        </xenc:CipherData>
    </xenc:EncryptedData>
</EncryptedAssertion>

当我在过去两分钟内达到 6 个以上的请求时,ADFS 会断开连接,并且我会收到一个错误。可能的错误是什么?我已将所有必需的密钥添加到我的密钥库中,为什么即使状态代码响应的字段已成功,客户端仍会继续请求?

共有1个答案

华俊贤
2023-03-14

问题是< code > SavedRequestAwareAuthenticationSuccessHandler 的< code > user referer 属性设置为< code>true

<!-- Handler deciding where to redirect user after successful login -->
<beans:bean id="successRedirectHandler" class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler">
<!-- <beans:property name="useReferer" value="true"/> -->
    <beans:property name="defaultTargetUrl" value="/dispatcher"/>
</beans:bean> 
 类似资料:
  • 我有一个Java桌面应用程序。我发现了很多关于web应用SSO身份验证的在线资源。我需要一个旧的学校桌面应用程序同样的东西。基本上,我需要该应用程序打开浏览器窗口,让用户根据ADF进行身份验证,然后取回令牌。 如何使用ADFS/SAML添加SSO身份验证?

  • 我一直在用SAML扩展连接ADFS服务器。我已经破解了示例应用程序以使用我的ADFS服务器,一切都很顺利,但是我想知道是否有一种方法可以不使用IDP的登录页面连接到IDP。我的意思是,如果有一种方法可以在后台为最终用户完成这个过程。我在考虑对ADFS做一个查询或类似的事情,从SP登录页面获取用户并进行身份验证,避免用户在IDP登录页面进行身份验证的需要。

  • 问题内容: 我有2个应用程序,一个是用C编写的,另一个是用Java编写的,它们假定在同一台机器上运行。在它们之间实施IPC的最佳方法是什么? 最好的含义是可移植性,最小的用户意识(防火墙弹出窗口…)等。 问题答案: 我将使用Sockets over loop back开始。这样,您就可以发送文本或二进制数据,并在一个进程开始或结束时彻底处理。延迟大约为20-50微秒,具体取决于您对数据进行的处理以

  • 我在ADFS上有saml。一切正常,但我有不止一个依赖方的信任。然后,当我登录到我的一个webapp(信赖方信任)并注销时,一切都很好。 但当我登录到第一个web应用程序,然后再登录到第二个web应用程序时,我可以在ADF上使用cookie:samleSession,它结合了两个会话,然后当我从第一个web应用程序注销时,我会重定向到第二个web应用程序上的注销页面,并且不会删除网站1上的cook

  • 我在运行Windows_Server-2008-R2_SP1-English-64Bit-Base-2014.04.09的AWS EC2上安装了平联邦。我有一个使用Spring Security进行身份验证的Java应用程序。 我已经阅读了PingFederate如何设置身份提供者(IdP)和服务提供者(SP)。据我所知,IdP将是提供登录凭据(身份)并将其传递给SP的应用程序用户,该SP的目标应

  • 更新: 我能够让ADFS将我的用户转发到依赖方应用程序。我使用了ComponentSpace的SAML2.0库和RelayState。即使它成功地转发到WIF应用程序,它也不会将我的用户识别为已通过身份验证。相反,它通过重定向到IDP STS来启动SP启动的SSO场景。我不太确定该怎么办。 原始消息: 我以以下方式配置了单点登录设置: IDP-向我的SP发布SAML2响应的门户网站。 SP-ADF