gpt4 book ai didi

spring - SAML SP 和 ADFS IdP 之间的 SSO 问题

转载 作者:行者123 更新时间:2023-12-02 16:56:39 25 4
gpt4 key购买 nike

我们正在开发一个 Web 应用程序,它提供多种登录机制,例如 LDAP、Kerberos、SAP Logon Ticket 以及 SAML。

为此,我们使用 Spring Security 框架,它的工作(大部分)非常棒!

几个月前,我们向应用程序添加了 SAML 支持,并使用外部 IdP (SSOcircle) 对此进行了测试。我们还与 SSOcircle 的首席执行官密切合作,帮助我们启动并运行。

一切都很顺利,我们认为我们可以向我们的第一个现实生活中的客户注册 SAML。

因此,我们在 Linux 计算机上设置了一个测试服务器 (SP),并配置了我们的部分(我们使用了此文档: http://docs.spring.io/spring-security-saml/docs/current/reference/html/chapter-idp-guide.html )并等待我们的客户完成他们的部分。

但是当他们尝试 SSO 进入我们的应用程序(他们使用 ADFS)时,我们遇到了问题。

因为现在,我们收到两条错误消息中的一条。要么这个

Authentication request failed: org.springframework.security.core.userdetails.UsernameNotFoundException: Empty username not allowed!

或者这个

Error validating SAML message org.opensaml.common.SAMLException: NameID element must be present as part of the Subject in the Response message, please enable it in the IDP configuration

在故障排除期间,我在 StackOverflow 上遇到了这些其他线程:

SAMLException: NameID element must be present as part of the Subject in the Response message, please enable it in the IDP configuration

Configuring ADFS 3.0 / SAML 2.0 to work with Spring Security for SSO integration

NameID element must be present as part of the Subject

奇怪的是,只有当我们将 adfs 声明规则从“传出声明类型”更改为“传递声明类型”时,才会出现第二条错误消息(关于 nameid)元素。

现在,我不知道在哪里继续进行故障排除。关于这个问题有什么想法或想法吗?

最诚挚的问候雷内

EDIT1:我附加了调试日志文件和我们的 saml 安全配置的链接

EDIT2:有人知道是否有办法指定 SAML 应使用的时区?目前,尽管我们的操作系统配置为使用 CET/CEST,但使用的时区似乎是祖鲁时间。因此我们必须使用responseSkew参数进行登录/注销。

EDIT3:调试和配置已删除,因为我们解决了问题

最佳答案

好的,我们解决了问题。

在实时调试过程中,我们注意到 NameID 没有作为 SAML 断言属性键/值对发送,而是作为 SAML 断言“ header ”中的“独立”键/值对发送。

因此,我们修改了代码以涵盖 SAML 断言中的两个可能位置,现在它工作得很好。 :D

关于spring - SAML SP 和 ADFS IdP 之间的 SSO 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39752131/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com