将Azure AD配置为Spring Security中的IDP
所以我试图将Azure AD用作SAML IDP,但是在运行时我会遇到以下错误: 2021-02-05 16:09:16.303 ERROR 3760 --- [nio-8080-exec-9] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [org.opensaml.saml2.metadata.provider.MetadataProviderException: No IDP was configured, please update included metadata with at least one IDP] with root cause org.opensaml.saml2.metadata.provider.MetadataProviderExc
2 2024-03-24
编程技术问答社区
消耗SAMLResponse令牌
基于SAML SP的身份验证具有以下简短工作流程. 用户想在sp. 上访问应用程序 sp将samlrequest令牌发送到IDP. IDP消耗它并生成samlresponse令牌. IDP将此samlresponse令牌发送到Sp. 给出的AC-url 我的问题是SP如何消耗此Samlresponse令牌. 什么是逻辑? 如果我能获得一些Java代码的帮助,它将是有益的. 解决方案 下一个食谱对我有用: 获取samlresponse令牌并解码并充气: // Base64 decode Base64 base64Decoder = new Base64(); byte[] xmlBytes = encodedXmlString.getBytes("UTF-8"); byte[] base64DecodedByteArray = base64Decoder.decode(xmlBytes); // Inflate (uncompress) the A
0 2024-03-19
编程技术问答社区
Android的SAML客户端?
我正在研究一个项目,该项目需要从某些受保护的网页中解析一些数据.为了获得这些页面,我必须克服SAML认证形式(Shibboleth). 是否有人能够在Android(Java)中实施此标准? 我已经读过此线程: saml客户端客户实现? 但这并不能给我一个很好的解决方案.实际上,我需要获取某些受保护的Web页面的数据以解析它,而不是让用户查看此类页面的内容.因此,通过网络访问登录并不是我真正需要的. 解决方案 经过一番研究,我最终自己建立了它. 我仔细遵循了每一个重定向,并记下了创建,编辑或删除的每个cookie(Opera,其内置选项允许关闭重定向是钥匙). 结果是流程,然后我在一个软件包 ad hoc 中复制了setupConnection类,其任务是连接到主机并跟踪cookie的. SAML类复制了SAML流,最后是主要类,我可以从中收集有用的信息. 希望它有帮助. 其他解决方案 我认为OpenSAML是处理SAML零件的最佳选择,然后可能是您通常会在浏览器中
12 2024-02-01
编程技术问答社区
Eclipse中的Android错误。"无法执行dex。无法将新的索引65799合并到一个非巨集指令中!"
我正在使用Eclipse使用OpenSAML尝试一个Android项目.我在构建路径中添加了所有必需的JAR文件.现在,当我以Android应用程序运行程序时,显示以下错误: [2012-11-18 11:52:59 - Dex Loader] Unable to execute dex: Cannot merge new index 67075 into a non-jumbo instruction! [2012-11-18 11:52:59 - MyTestProgram] Conversion to Dalvik format failed: Unable to execute dex: Cannot merge new index 67075 into a non-jumbo instruction! 我有点谷歌搜索,但什么都没有出现.这个错误可能是什么意思? 解决方案 我发现它对我有用的一种解决方案是将dex.force.jumbo=true添加到我的pro
2 2024-01-28
编程技术问答社区
我如何从Java与ADFS对话?
我们有一个在Caucho树脂上运行的网站.它主要使用JSP写在Java.我们在网站上有自己的自定义身份验证. (我们不使用任何第三方身份验证框架.)我们现在想支持使用SAML的联邦.主要是,IDP将运行ADF,但我的问题是关于SAML.特别是,如何使用OpenSAML,Shibboleth或其他与Java兼容的选项联合使用Java应用程序的上游IDP ? 编辑:另一个选项是OAuth.优点?缺点? 解决方案 您的应用程序需要直接充当SAML SP(来自您的代码)或间接充当(例如,通过反向代理,应用程序服务器,...). 对于直接选项(需要对您的应用程序进行更多修改),您可以: 代码saml sp自己(最有可能带有使用现成的产品将其集成到您的应用程序中,例如 openAM/a> 对于间接选项(对您的应用程序需要更少的修改),您可以: 使用 =" https://github.com/latchset/mod_auth_mellon" rel =" nofo
20 2024-01-19
编程技术问答社区
使用openSAML对响应进行签名
我试图通过签署响应而不是断言来实现SAML 2.0.我有3个现有的供应商在断言级别上接受我的签名,但是新的供应商正在协议/响应级别要求它.我一直在谷歌搜索和调试大约8个小时,找不到我做错了什么的有效示例.下面的代码清楚地显示了我在做什么,最后10行左右是我已经实现的差异(在if/else中).另外,我在XML中注意到我的签名值和DigestValue都是空的.谁能将我指向一些清晰的文档,或者更好的是使用OpenSAML的工作响应签名的例子?在这一点上,任何帮助将不胜感激. Assertion assertion = OpenSamlHelper.CreateSamlAssertion( issuer.trim(), recipient.trim(), domain.trim(), subject.trim(), attributes); // // Sign // Credentia
8 2023-12-21
编程技术问答社区
如何验证SAML断言签名
如何验证SAML断言签名? for (Assertion assertion : samlResponse.getAssertions()) { try { if (assertion.getSignature() != null) { Optional x509Certificate = assertion.getSignature().getKeyInfo().getX509Datas() .stream() .findFirst() .map(x509Data -> x509Data.getX509Certificates() .stream()
6 2023-12-15
编程技术问答社区
OpenSAML 3解组器为零
嗨,我目前正在将应用程序移植到OpenSAML3并遇到以下问题: InitializationService.initialize(); ... Unmarshaller unmarshaller = Configuration.getUnmarshallerFactory().getUnmarshaller(qName); 我已从OpenSAML2和先前的初始化函数替换了DefaultBootstrap.工厂仍将我归还给我作为卫生员. 知道这里怎么了? 这是初始化进度的输出: [main] INFO org.opensaml.core.config.InitializationService - Initializing OpenSAML using the Java Services API [main] INFO org.opensaml.xmlsec.algorithm.AlgorithmRegistry - Algorithm failed runtime
38 2023-11-08
编程技术问答社区
Tomcat的DEBUG日志意外地出现在控制台中
以下只是我的Tomcat 7控制台上出现的一些记录陈述的样本.大多数人来自开放式SAML或Hibernate,我正在努力防止它们出来.我使用的是记录式,并在WARN或更高版本上有根记录器和所有其他记录器,我无法弄清楚某些库继续注销信息和调试级别的语句.有什么想法吗? 14:40:45.360 [localhost-startStop-6] DEBUG org.opensaml.xml.XMLConfigurator - {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Username intialized and configuration cached 14:40:45.360 [localhost-startStop-6] DEBUG org.opensaml.xml.XMLConfigurator - Initializing object provider
10 2023-10-24
编程技术问答社区
Spring SAML2和春季会议 - 未检索SavedRequest(在身份验证/inresponseto异常之后,无法重定向到请求的页面)
我正在尝试使用Spring Boot SAML2 + Spring会话来保护我的Web应用程序(将在K8上部署).如果没有春季会议data-rest或春季礼物播放,一切都很好.它可以使用OKTA进行身份验证,并在身份验证后将其重定向回到请求的页面.另外,我可以使用OpenSAML3或OpenSAML4. 但是,当我尝试使用Spring-Session-Data-Rest或Spring-Session-Hazelcast(仅1个实例,尚无群集)时,它不会将其重定向到请求的页面.另外,它会因OpenSAML4而失败,但有例外:"响应包含一个inresponseto属性[],但找不到保存的身份验证请求".有一些关于OpenSAML3的eOL,所以我想让它与OpenSAML4一起使用. 这是一个示例应用程序,可以演示我的情况 P.S.我已经追溯到httpsessionrequestcache.java,从savedrequestawarewarpper.java调用.如果没有春季会议
OpenSAML3文档
有人知道在任何地方是否有OpenSAML3的文档?付款还是其他?我知道曾经有一本15美元的书,但我相信只覆盖了OpenSAML2. 我知道这可能会被选为选票,因为它不是一个编程的特定问题,而是春季SAML列出,因此它是现在的主要论坛( http://projects.spring.io/spring-security-saml/). SAML在没有良好图书馆的情况下实现了痛苦,我认为Spring-Saml是在JVM上写的人最适合的东西.由于Spring-SAML似乎被放弃,并且OpenSAML2即将终止.我想看看是否可以更新Spring SAML以使用OpenSAML的较新版本,但是除了SRC代码外,似乎没有文档(没有迁移指南,甚至没有发布Javadoc).任何人都可以指向正确的方向. 解决方案 编辑 我刚刚发布了我的书的新版本,《 OpensAml指南》,涵盖了OpenSAML V3.它应该很好地作为文档. 符合布伦特的说法,库从v2到v3没有太多可见的变化.因此,他在电
28 2023-09-14
编程技术问答社区
HttpSession为SPRING_SECURITY_CONTEXT返回空对象
我正在尝试集成 spring saml saml库a>在示例WebApplication中,使用Shibboleth作为IDP. 我可以加载登录页面,登录并显示索引页. 问题是,当我单击其他链接时,WebApp将我重定向到登录页面时,IDP会识别我并将重定向到请求的页面(如果网络很快,很难看到此内容).就像我没有登录春季安全. 我检查了日志,发现了以下内容: org.springframework.security.web.context.httpsessionsecuritycontextrepository- httpsession返回的null对spring_security_context org.springframework.security.web.context.httpsessionsecuritycontextrepository- httpsession:org.apache.catalina.session.session.stession.st
18 2023-09-14
编程技术问答社区
如何与JK或签名的METDATA一起使用Spring SAML代码
IDP仅提供.crt文件和元数据XML文件,而IDP告诉我们,我没有用于.crt文件的密码,我使用命令创建了JKS文件:KEYTOOL -IMPORT -ALIAS -ALIAS ZOOM -TRUSTCACERTS -TRUSTCACERTS -FILE QA.CRT -KEIKETORE -KEICESTORE -KEICESTORE -KEICESTORE- keystory.jks. 现在,我下载了Spring SAML演示代码,并将SecureyContext.xml更改为Bellow: --------------------------------------------------------
2 2023-09-14
编程技术问答社区
java.lang.classcastException:org.opensaml.core.xml.schema.impl.xsanybuilder不能被施为org.opensaml.xml.xml.xmlobjectBuilder
在我们的应用程序中,我们正在尝试升级到Spring Boot 2, 我们正在使用 spring-security-saml2核:1.0.4.release ,在运行应用程序时,我们将遵循异常.看来,在classPaath上有两个jars xmltooling-1.4.6 和 opensaml-core-3.3.0 ,它们具有相同的文件default-config.xml.在这种情况中
22 2023-09-12
编程技术问答社区
在Spring Web应用程序中创建SAML的凹陷断言
我们有一个Spring Web应用程序,以及需要知道哪个用户已登录到Spring应用程序中的第三方应用程序.一旦用户在Spring应用程序中登录,他将有可能以透明的方式访问第三方应用程序. 为此,我们必须使用SAML(第三个应用需要).因此,Spring Web应用程序将以IDP发射的方式作为IDP工作. 我找到了OpenSAML库,这是: http://blog.keksrolle.de/2010/07/27/how-to-to-create-create-a-valid-saml-saml-2-0-0-0-saml-2-0-apertion-with-opensaml-for-java.html 它显示了一个有关如何创建SAML断言的示例,但是我很难找到有关创建自定义IDP的额外文档... 那么,除了OpenSAML以外,还有其他工具可以帮助我们吗?或样品? 我也找到了shibboleth,但不确定在这种特殊情况下它是否可以帮助... thx 解决
6 2023-09-11
编程技术问答社区
使用opensaml将samlrequest解析到authnrequest中
我想将我在httpservletrequest中获得的samlrequest解析为authnrequest对象,以便我可以获得其发行器和其他属性. 使用OpenSAML版本 org.opensaml opensaml-core 3.1.0 private String receiveResponse(@RequestParam(name = "SAMLRequest") final String samlRequest, final Model model, final HttpServletRequest request, final HttpServletResponse
4 2023-09-11
编程技术问答社区
应该多次接受相同的SAML响应吗?
只要在允许的SAML代币寿命内,SAML联合软件是否应该接受相同的SAML响应? 在更简单的术语中: IDP(标识提供商)发出SAML响应,然后SP(服务提供商)接受/处理.首次使用后,可以立即重新使用相同的未修饰的SAML响应吗?鉴于SAML发行时间戳在允许的范围内. 安全方面,将SAML令牌(响应)限制在一种用途上是有意义的,这样即使它被"中间人"偷走了,也无法重复使用.但是,为了实施该软件,该软件需要存储有关SAML响应的一些信息:序列号,整个内容的哈希 请提供一些有关实施的解释和/或示例的链接. 谢谢! Alex. 解决方案 安全性吗?当然.实际上,您可以使用断言的" XS:ID"部分来帮助您(我公司的软件确实如此). 从 core : XS:ID简单类型用于声明SAML标识符 断言,请求和回应.声明为类型的值 XS:此规范中的ID必须满足以下属性 除XS的定义所施加的那些:ID类型本身: •任何分配标识符的一方都必须确保 该方或任何
8 2023-09-05
编程技术问答社区
saml getunmarshaller(元素)返回null
我正在尝试从XMLString构造XML对象,但是Getunmarshaller(element)正在返回null: 这是代码: try { InitializationService.initialize(); DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = documentBuilderFactory.newDocumentBuilder(); Document document = docBuilder.parse(new ByteArrayInputStream(xmlString.trim().getBytes())); Element element = document.getDocumentE
54 2023-09-04
编程技术问答社区
Shibboleth SP指向多个IDP
我已经在机器上安装了SP. 我需要根据URL将其配置为多个IDP. ex. 我们有两个主机one.myorg.com和two.myorg.com都指向同一模块/机器 - 因此,相同的sp. 现在,我需要像one.myorg.com/secure击中one.myorg.com/secure sp的sp一起https://testshib.com/idp进行身份验证,而否则two.myorg.com/secure被击中SP应该转到https://myown.idp.com IDP. 编辑:不应要求选择IDP. 解决方案 如果这仍然是实际的,您可以在这里找到一些提示: https://wiki.shibboleth.net/confluence/display/shib2/idpdiscovery ..显示/概念/iDpdiscovery" rel =" nofollow noreferrer">在这里. 关键想法是在向SP登录模块的手动登录请求中提供有关IDP
20 2023-09-04
编程技术问答社区