问题标签 [spring-security-saml2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2513 浏览

spring - 在 Spring Security SAML 扩展中检索整个 SAML 响应

我有一个设置为服务提供者的 Spring Boot 应用程序。我的最终目标是能够使用 SAML 服务调用 AWS STS Assume Role 以代表用户生成 AWS 临时凭证,其中 SAML 响应用于对我的应用程序的用户进行初始身份验证。

我发现了另一个问题。有了这个答案,我只能得到断言,而不是整个响应。根据我的测试,上面链接的 AWS API 调用需要整个响应,而不仅仅是断言部分。

我使用这个Chrome 扩展程序来查看 SAML 响应。当我包括所有内容时(下面的大纲)

使用 SAML 的 AWS STS 代入角色有效。另一个相关问题的答案只为我提供了

<saml:Assertion>...</saml:Assertion>

块并且 AWS STS 代入 SAML 角色失败。

所以我的问题是如何将整个 SAML 响应 XML 对象返回到我的 Spring Boot 应用程序的控制器中?

0 投票
0 回答
103 浏览

grails - 如何为 Spring Security SAML 插件生成 SP XML

我在 grails 3.3.9 中进行编码,并且正在使用 Spring Security SAML 插件以便将 SSO 与 Microsoft Active Directory 2012 一起使用。此插件需要 idp xml 和 sp xml。我有 ADFS(AD 联合服务)作为我的 idp(我想出了如何为此获取 idp xml),现在我需要知道如何生成 sp xml。插件文档没有为它提供指南。我假设 sp 是我的 grails 应用程序?如何使用我的 idp 作为 ADFS 生成 sp.xml?

0 投票
1 回答
3684 浏览

java - 如何使用 spring-security-saml2 配置服务提供者以使用 EncryptedAssertions?

我正在使用这个优秀的 repo vdenotaris/spring-boot-security-saml-sample作为指南,我正在尝试设置它来验证和解密包含EncryptedAssertion.

idP 的元数据定义 XML 中的签名和加密密钥。这是在服务提供商中设置的。

当我手动向它发送具有加密断言的 SAML 消息样本时,它会失败并显示以下消息。

我在这里阅读了元数据配置,您可以配置 idp 使用的签名和加密密钥,以便解密断言(至少这是我的假设)。

这是让服务消费EncryptedAssertions的正确方法吗?我一直在点击这个无效的消息墙,但没有找到明确描述如何处理这个问题的好的可靠教程或文档。还不确定解决方案是否存在于WebSSOProfileConsumerImpl我必须修改的类中?

任何帮助或示例将不胜感激。

0 投票
0 回答
771 浏览

java - 如何为 SAML SSO 配置 Spring boot、Apache Shiro、bujipac4j

我有一个 Spring Boot - Theme Leaf - Shiro 应用程序

我已经看过以下示例

  1. 春季启动 - spring-security - pac4j-saml sso https://github.com/pac4j/spring-security-pac4j-boot-demo

  2. Shiro Web 应用程序 - buji-pac4j https://github.com/pac4j/buji-pac4j-demo

我想做的是两全其美。我想将 Shiro 用于 RBAC,并使用 buji-pac4j 进行身份验证,通过 SAML SSO 进行身份验证。

我没有找到任何文档来实现相同的目标。以下是我所做的,请指导我正确设置。

现在,当我访问任何受保护的资源时,例如https://localhost/protected/home 而不是将我带到 IDP 登录 (okta),例如https://github.com/pac4j/buji-pac4j-demo ; 应用程序重定向到默认 Shiro Auth url https://localhost/login.jsp

我在这里缺少什么,我在 shiroFilter 中的配置是否错误?如果是这样,正确的方法是什么?

0 投票
1 回答
2583 浏览

java - SAML2 - 响应没有任何可以通过主题验证的有效断言

我有一个使用 SAML2 进行身份验证的解决方案,该解决方案与测试环境中的 idp 正确集成。然后现在在生产服务器中,当我们的服务器中处理 saml 响应(POST 重定向)时,我收到此错误。我查看了 SAML2 响应,它是正确的,与测试服务器中的响应相同。所以它一定是我们这边的东西。

0 投票
0 回答
141 浏览

spring-security - 错误 SAMLResponse 上的 Spring Security SAML 无限重试循环

我目前正在配置 Spring Security SAML 扩展(我是一个想要与多个身份提供者集成的服务提供者)。

我注意到奇怪的行为。当一切配置正确时,联合登录就可以正常工作,并且一切都很完美。但是,当 SAMLResponse 解析出现问题时,我的应用程序会进入重试循环(我没有在任何地方配置)。在数百次失败的重试尝试后,它会向用户返回 500。这会将大量无用的堆栈跟踪转储到我的日志中。

第一个 SAMLResponse 解析错误消息包含一个实际的根本原因。所有其他人都有相同的信息:SAMLResponse 中的 InResponseToField 与 AuthnRequest 中的请求 ID 不匹配。但这很奇怪,因为在我的浏览器中我只看到一个请求和一个响应(在所有重试完成后出现,我收到 500)。并且 id 在这两个请求中匹配。

第一次失败:

重试:

有没有人见过类似的问题?Spring Security SAML 中是否有一些隐藏的重试机制?

0 投票
1 回答
194 浏览

spring-boot - spring-boot-thymeleaf-starter -“圆形视图路径[着陆],检查您的 ViewResolver 设置!错误

我已经使用 spring-security-saml2 实现了 saml-adfs 服务提供者。SAML-ADFS 身份验证正常进行。身份验证后,我试图将其重定向到登录页面,该页面几乎没有变量,例如根据登录的用户信息动态填充的 UserID。对于 html 页面渲染,我使用的是 spring-boot-started-thymeleaf lib。我浏览了各种文章并完成了以下配置。我所有的 html 文件都存在于 src/main/resources/templates 中。

我收到“圆形视图路径 [着陆],检查您的 ViewResolver 设置!错误。

0 投票
1 回答
146 浏览

spring-boot - IDP 使用未签名的 LogoutRequest 发起 SingleLogout

我有一个使用 spring security saml 的 spring boot v.5+ 应用程序。

当调用 idp 发起的 SingleLogout 请求时,我收到一条错误消息:

是否可以在我的服务提供商中禁用 LogoutRequest 的签名?

0 投票
0 回答
616 浏览

spring-boot - SpringBoot 2 SSO 与 OAM 使用 SAML2

我正在开发一个包含前端ReactJS和后端SpringBoot 2微服务的技术堆栈 Web 应用程序。现在是使用 SAML2 ** 使用 OAM(Oracle 访问管理器)的 SSO 集成 **(单点登录)的时候了。

我与 OAM 团队进行了讨论,他们给了我以下详细信息

  1. 实体 ID 或发行者 ID
  2. OAM 入口点或 OAM SSO URL
  3. X509证书
  4. 我给他们的断言消费者 URL (ACS URL) 以接收 SAML 响应

在网上我可以找到一些SSOCIRCLE、OKTA、ONEIDENTITY 等的 SSO 选项,但找不到Springboot2 + SSO + OAM的任何资源。

请抛出一些灯或任何关于如何开始的回应将不胜感激。

0 投票
1 回答
3506 浏览

spring-security - spring-security saml2:如何获取当前用户?

我正在使用版本为 5.2.0.RELEASE 的 spring-security 和 spring-security-saml2-service-provider。我正在尝试通过 IDP 进行身份验证以获取当前断言,以便将其映射到我们本地系统中的用户。我使用此代码获取 Saml2Authentication 对象

但我无法获得用户。我可以获得 saml2 响应(authentication.getSaml2Response),但我不确定如何获取带有用户 ID 的断言。

真的,我想从Java 代码中的 SAML 响应 (XML) 中检索属性和 NameID 。不确定 spring-security 中是否有可以帮助我的东西。

更新 所以经过一些工作,我使用 OpenSAML 库获取属性并解析 SAMLv2 响应。我不知道这是否是正确的方法