Spring SAML 发送错误的 AuthNRequest
遇到这个问题以来,任何帮助都将受到赞赏. 我正在为我的应用程序实施Spring SAML SSO身份验证. 这实际上是一个巨大的安全配置文件,因此我将仅附加我认为可能很重要的配置部分. @Bean public MetadataGenerator metadataGenerator() { MetadataGenerator metadataGenerator = new MetadataGenerator(); metadataGenerator.setEntityId(env.getProperty("saml.entity.id")); metadataGenerator.setExtendedMetadata(extendedMetadata()); metadataGenerator.setIncludeDiscoveryExtension(false); metadataGen
36 2024-04-22
编程技术问答社区
在 SAML 中,服务提供商和实际应用程序之间如何/应该进行通信?
我了解,IDP和SP之间的通信在标准中得到了很好的定义.我想知道如何在独立SP和实际应用程序之间进行自定义通信的方法. 我假设存在标准方式,而不会重新发明自己的自我.但是,即使spring-saml security也只谈论"自定义机制",也不说它是什么. 有人可以指向我正确的方向吗?我已经搜索过,但是我很惊讶它没有在任何地方写博客,教程等. 任何帮助将不胜感激. 解决方案 问题基本上归结为"如何在受信任的网络中部署的两个应用程序可以彼此安全通信以交换有关用户的安全信息" . SAML解决了通过不受信任的网络通信的应用程序解决的问题,并且由于身份验证点(SP)和应用程序都在同一实体=它的控制之下,因此变得更加容易.易于使用符号密码学. SP原则上可以使用前端通道(=通过Web浏览器)或后端通道(通过网络直接彼此=彼此)与应用程序进行通信. 有不同的方法来执行通信(使用一个,另一个或两个渠道),大多数可以使用一些可用的安全产品实现.这是一些想法: SP和应
32 2024-04-22
编程技术问答社区
如何要求 IDP 在 AuthnResponse 中向我发送额外的自定义属性?
我已经使用Spring SAML实施了SSO,我想知道是否有任何方法可以要求IDP(在我的情况下 ssocircle.com )向我发送其他属性以及NameID已经发送了. 可以说,我希望IDP能够将成功验证的人的帐户发送给我.我已经搜索了很多,发现了一些建议: getauthnrequest websoprofileimpl .java中的方法,以便发送到IDP的authnrequest具有此属性集.但是我没有任何线索如何继续吗?我是否应该使用此其他属性名称和格式来修改SP Metada?如果是,我该怎么做?还是可以使用RelayState参数来完成某些操作? 在这方面的任何帮助都将不胜感激. 谢谢, abhilash 解决方案 abhilash, 提供给SP的属性通常以特定于供应商的方式在IDP侧配置. 您可以通过 https:https:///IDP.SSSOCIRCLE.com/sso/ui/login ,选择"管理元数据"属性发送(可选)"
20 2024-04-22
编程技术问答社区
带有签名和签名验证功能的 SSO 无法工作
我已经使用 wso2is 4.6.0 和 spring saml saml saml saml saml sso 成功配置了: 我在WSO2控制台上看到错误 WARN {org.wso2.carbon.identity.sso.saml.util.SAMLSSOUtil} - Signature Validation Failed for the SAML Assertion : Signature is invalid. DEBUG org.wso2.carbon.identity.sso.saml.util.SAMLSSOUtil} - org.opensaml.xml.validation.ValidationException: Unable to evaluate key against signature WARN {org.wso2.carbon.identity.sso.saml.processors.SPInitSSOAuthnRequestProcessor
14 2024-04-22
编程技术问答社区
SAML:即使用户有 IDP 会话,是否也可以强制用户通过登录过程?
在SAML中,即使用户拥有活动的IDP会话,也可能会迫使用户遍历IDP的登录过程? 在这里做一个具体示例: 让我们称我的应用程序为" SP" 我使用ssocirecle作为IDP,然后使用帖子和重定向(SP启动). 要测试,我将首先登录到SSOCIRCLE以获取活动的IDP会话.然后,当我尝试去SP时,我应该重定向到IDP. 通常,由于我已经有一个活动的IDP会话,因此IDP会看到"哦,您之前已经经过身份验证,您可以直接去SP!" ! 但是我不想要那个,我希望IDP迫使用户每次输入凭据 忽略活动IDP会话 不要创建IDP会话 我想知道这是否可行. 解决方案 是的,SP可以向AuthnreQuest中的IDP发送标志ForceAuthn需要新的身份验证而不是重复现有会话. 一如既往的使用SAML2,您不能指望所有IDP都支持所有内容.是的,您必须测试您的IDP是否支持ForceAuthn标志.
36 2024-04-22
编程技术问答社区
"HTTP状态401-验证失败: 传入的 SAML 消息无效",Salesforce 作为实施 SSO 的 IdP
我已经使用Spring SAML实现了SSO,一切正常.它与以下IDP合作到现在: 1)IDP.SSOCIRCLE.com 2)openIDP.Feide.no 现在,我正在用Salesforce.com作为我的身份提供商进行测试.由于没有规定上传服务提供商元数据,因此我在IDP上完成了以下配置设置: 提供了我的EntityID和断言消费者服务URL.我还上传了我的SP证书.我已经下载了其元数据(IDP元数据),如下(隐藏敏感信息):
8 2024-04-22
编程技术问答社区
使用 SAML 扩展和 Shibboleth 在 Spring 中实现单点登录
我想在基于春季的应用程序中实现单个登录(SSO)身份验证层,以支持来自不同安全域的身份验证和授权. 我选择了Shibboleth作为IDP,但是我还没有确定我将用于sp. 选择是: 弹簧安全SAML扩展:组件使新应用程序和现有应用程序都可以在基于SAML 2.0协议的联合会中充当服务提供商,并启用Web Single Sign-On.弹簧安全扩展可以在单个应用程序中无缝组合SAML 2.0和其他身份验证和联合机制.可以使用所有支持SAML 2.0的产品(例如ADFS 2.0,Shibboleth,OpenAM/Opensso,RM5 IDM或Ping Federate)与Spring Security Security Saml扩展. 可以使用. shibboleth (也是sp ):Shibboleth是一项基于网络的技术,可实现HTTP/post,Artifact和Saml的属性推送配置文件,包括身份提供商(IDP)和服务提供商(SP)组件. 所以,我有
6 2024-04-22
编程技术问答社区
使用Okta认证其余端点和用户界面
我们使用带有嵌入式码头服务器的SprintBoot使用Java 8后端应用程序. 该应用程序的UI是使用React构建的单页应用程序. 目前,我通过使用Spring Security SAML扩展程序与Okta集成来启用身份验证.当Okta将主张发布到我的应用程序中时,我会创建一个会话,并且jsessionID发送在cookie中. 到目前为止,这还不错,当时我们有一个非常简单的UI服务的UI组件. 但是,现在我们的后端有几个休息端点,我们也希望它们得到认证.休息终点本身是使用泽西岛开发的. 如果我正确理解,SAML显然不是基于纯REST端点的选择,因为SAML主要是基于浏览器的协议.这些休息端点也将由我们的UI调用,我们希望它们通过Postman或用于测试的东西独立调用. 当客户端打电话给这些REST API时,我猜客户应发送授权标头,该标头应由后端中的一个身份验证过滤器检查.验证客户端和用户后,过滤器应将用户信息注入SecurityContext,
10 2024-03-20
编程技术问答社区
春天的saml。密钥太长,无法解包:invalidkeyexception
我在计算机中只安装了一个JDK,并且代码指向同一JDK.我已经在两个文件夹中安装了无限的强度加密库(c:\ program文件\ java \ jdk1.6.0_25 \ jre \ jre \ lib \ lib \ lib \ security and c:\ program files \ java \ jre6 \ jre6 \ lib \ lib \ lib \ security). > > > > > 即使添加上述无限强度库后,我仍会得到相同的例外.这是在继续前往其他票 例外: Caused by: java.security.InvalidKeyException: Key is too long for unwrapping at com.sun.crypto.provider.RSACipher.engineUnwrap(DashoA13*..) at javax.crypto.Cipher.unwrap(DashoA13*..) at org.apa
12 2024-03-17
编程技术问答社区
SAMLException: NameID元素必须作为响应信息中主题的一部分出现,请在IDP配置中启用它。
使用 spring-saml 实现.在类Webssoprofileconsumerimpl中,我可以找到以下代码行,这些代码在 saml响应的主张中检查nameID . . NameID nameID; if (subject.getEncryptedID() != null) { Assert.notNull(context.getLocalDecrypter(), "Can't decrypt NameID, no decrypter is set in the context"); nameID = (NameID) context.getLocalDecrypter().decrypt(subject.getEncryptedID()); } else { nameID = subject.getNameID(); } 基于代码,很明显NAM​​EID应该是主题的一部分.但是,大多数IDP包括我使用的nameID可能是主题/属性的一部分.似乎有一些
4 2024-03-17
编程技术问答社区
Spring Security的SAML断言与应用程序会话过期的问题
我与SAML断言到期与申请会话的到期感到困惑. 简单的单词,当我们将应用程序部署在容器中时,就会创建一个会话.可以通过Web.xml 中的以下条目来控制此会话的到期 60 继续前进,当我具有SAML扩展程序的弹簧安全性时,显然适用了相同的会话概念. (如果这很重要,我正在将应用程序部署在Wildfly 8.2中) 此外,当应用程序会话到期时,注销行为似乎等于本地注销概念. 到目前为止一切都很好.现在可以说,SAML主张在2个小时内很好,并且用户已经积极工作了2个小时.那么随后的请求应该怎么办?它应该重新添加到IDP吗?但是,这对用户会不方便吗?如果申请将申请重定向到IDP,以便在断言到期2小时后再次登录,则应如何处理AJAX请求? 这是参考这里的问题 解决方案 Spring SAML为身份验证的用户发出
12 2024-02-23
编程技术问答社区
无法生成SAML元数据文件
我在Web应用程序中使用了AngularJS和Spring Security.我们正在使用基本身份验证,现在我们正在尝试将SAML用于SSO登录. 当我们使用基于Java的注释时,我试图遵循此 http://localhost:8080/myapp/saml/saml/saml/metadata 成立. 我确定我错过了什么,但是什么? 解决方案 您可以直接从此链接. 您可以尝试此示例示例具有基于Java的配置a href =" http://docs.spring.io/spring-security-saml/docs/current/referent/referent/html/chapter-idp-guide.html"然后,您将获得SAML和ADFS的基于Java的配置.
12 2024-02-23
编程技术问答社区
配置ADFS 3.0 / SAML 2.0与Spring Security的SSO集成工作
我遵循了第12.0章有关与ADF一起使用adfs为IDP的说明/spring-security-saml-referenc.pdf" rel =" nofollow"> http://docs.spring.io/spring-security-security-saml/docs/1.x-snapshot/reference/reference/reference/prference/pdf/pdf/spring-security-security-security-security-security-saml, -Reference.pdf 但是,当我测试SSO时,我有例外: org.opensaml.common.SAMLException: NameID element must be present as part of the Subject in the Response message, please enable it in the IDP configur
38 2024-01-19
编程技术问答社区
春季SAML:错误解密加密密钥,没有安装的提供商支持此密钥
我已将Spring SAML手册推荐以创建私钥和导入公共证书.但是我仍然面临加密/解密的问题. 我创建了一个带有以下命令的JKS文件,如下所示,如下所示 命令用于导入IDP的公共证书 keytool -importcert -alias adfssigning -keystore samlKeystore.jks -file testIdp.cer 用于私钥的命令 keytool -genkeypair -alias myprivatealias -keypass changeit -keystore samlKeystore.jks 专用密钥和密钥店的密码定义为" Changeit" 我已经配置了SecurityContext如下
10 2023-12-15
编程技术问答社区
受信任的证书条目不受密码保护的Spring SAML
我通过复制IDP的509输入,我打算连接.然后,我通过执行以下命令 来创建JKS文件 keytool -importcert -alias adfssigning -keystore C:\Users\user\Desktop\samlKeystore.jks -file C:\Users\user\Desktop\testIdp.cer 执行后,它已要求输入我给出密码的密码.对于"信任此证书?[否):"",我将" y"作为输入.消息是在"将证书添加到密钥店"的情况下发出的. 然后我在SecurityContext.xml 中配置了以下详细信息
46 2023-12-15
编程技术问答社区
Spring SAML与WSO2身份服务器集成,SAML消息ID未汇编
我已经参加了Spring saml示例(请参阅第4.2节在本指南中)与开源登录页面SSO一起使用,并尝试添加支持以使用WSO2 Identity Server作为附加IDP服务. 为此,我通过添加元数据XML文件更改了Spring SAML示例项目,并将IS元数据的条目添加到SecurityContext.xml. 在运行弹簧应用程序时,我现在会出现一个可以使用IS登录的选项,当我重定向到它时,我可以在WSO2上成功登录.但是,弹簧应用程序对IS SAML响应抛出了异常,因为它与Inresponsetofield不匹配. 2015-01-05 09:54:12,845 line="org.springframework.security.saml.log.SAMLDefaultLogger.log(SAMLDefaultLogger.java:127)" thread="http-nio-8080-exec-4" class="org.springframework.secu
6 2023-12-15
编程技术问答社区