问题标签 [opensaml]
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.
java - 将 Netty 应用程序转换为 SAML2.0 服务提供商端点的选项
我有一个使用 Netty 4.x 框架的应用程序,它充当某种服务器。身份验证必须是联合的,所以现在我需要将其转换为 SAML2.0 服务提供者。
我做了一些研究,我担心的是,为了使用现有的 SAML2.0 解决方案,即 OpenAM、PingFederate,服务提供者必须是在某种 Web 容器中运行的 Web 应用程序,而我的情况并非如此项目。这是真的?
我对单点登录和联合世界非常陌生,我非常感谢提供的任何信息和提示。
java - OIOSAML 的 Bouncy Castle Maven 依赖项
OIOSAML项目使用由Apache Ivy管理的Bouncy Castle API。
ivi.xml 的一部分:
我使用具有相同依赖项的Maven 。pom.xml 的一部分:
但是,我找不到字段subjectKeyIdentifier
和课堂authorityKeyIdentifier
。X509Extension
部分SecurityHelper
课程:
X509Extension
班级:
使用 OIOSAML 需要使用哪个版本的 Bouncy Castle API?
java - OIOSAML AuthnResponse:无法加密断言
我想实现一个简单的场景:
- 用户试图访问信息系统的受保护资源
- 信息系统向身份提供者发送请求以对用户进行身份验证
- 身份提供者验证用户是否有打开的会话,如果没有活动会话,则执行用户身份验证(身份提供者将用户重定向到可以输入用户名/密码的网页)
- 如果用户成功通过身份验证,身份提供者会向信息系统发送包含用户身份信息的语句集
- 根据从身份提供者收到的信息,信息系统验证用户是否可以访问受保护的资源
作为信息系统(服务提供商),我使用OIOSAML。基于Shibboleth的远程 idP (在客户端,关于它我什么都不知道。只是它是在 Shibboleth 的基础上编写的)
来自文档:
OIOSAML.java 服务提供者包实现了一个兼容 Servlet 的 SAML 服务提供者,用于 SAML 联合。该软件包实现了作为符合 OIOSAML 的服务提供商工作所需的所有功能。
该包的主要组件是处理用户身份验证的 servlet 过滤器。过滤器检查用户是否已经通过身份验证,如果没有,则将用户重定向到 SAML 身份提供者。当用户返回 SAML 断言时,断言得到验证,并为用户创建一个新会话。应用程序可以通过编程 API 访问接收到的断言及其属性。
IdP 和服务提供商配置通过标准 SAML 元数据处理。
我的 web.xml:
我的 oiosaml-sp.properties:
生成AuthnRequest
:
结果URLEncode
字符串:
系统工作,当我通过受保护的映射执行请求时,我得到身份提供者的登录页面,我可以在其中输入几个登录名/密码以继续。但是,标识提供者会发送此响应:
所以,
这是什么意思以及如何克服它?
java - OIOSAML:服务端点设置问题
我编写了一个基于OIOSAML的带有 SP 启动 Web SSO 场景的简单系统。为了测试系统,我将它部署在远程主机上。
但是AssertionConsumerServiceURL
,在我指定 URL 的地方,Shibboleth idP(基于 Shibboleth 的 idP)应该返回的答案没有被调用。
SAMLAssertionConsumer
- 只是一个简单的 servlet,像这样:
首先,我只需要确保响应到来。
我的 web.xml:
我的 oiosaml-sp.properties:
生成AuthnRequest
:
有一些 JSP 页面 private.jsp,我向它发出请求:
在此请求之后,我重定向到身份提供者的登录页面:
输入几个登录名/密码,然后……什么都没有。打开带有一些常见错误描述的页面:
错误
处理请求时发生错误。
不工作,我的 servlet SAMLAssertionConsumer
,控制台很清楚。但是,如果我直接向我的 servlet 提出请求SAMLAssertionConsumer
:
然后它工作。当然。
我想知道如何正确配置断言消费者服务。那是 SP 元数据的一部分,我在其中指定了断言使用者。
java - 通过集成 Spring SAML(作为 SP)和 SimpleSAML(作为 IdP)来转发错误
为了在我的 web 应用程序中支持SSO和SLO,我使用Spring Security SAML Extension实现了一个服务提供者。
代码在GitHub上可用:vdenotaris/spring-boot-saml。
通过使用SSOCircle作为身份提供者一切正常。
现在,我正在尝试基于Simple SAML链接另一个 IdP ,在这种情况下 SSO 失败。
分析我的应用程序服务器(Apache Tomcat 7.0.54)上的日志,我发现了这些错误:
有没有办法解决这个问题?
问候,V。
春季调试日志:
Tomcat 服务器.xml
oracle - 使用 Oracle 作为我的测试身份提供者是否可行 - SAML
我正在使用 SAML2.0 协议,我想成为我身边的服务提供商。
我正在使用 opensaml 库来构建我的提供程序。我需要一个身份提供者来测试我的设置。
我可以使用 Oracle 作为我的测试身份提供者吗?可以免费使用吗?我已经在使用 salesforce 作为我的测试 Idp。我需要另一个 Idp 来测试。
概括 :
我可以使用 Oracle SAML2.0 作为身份提供者来测试我的服务提供者吗?如果不建议我其他基本上是可配置的。
编辑:如果可以使用 Oracle,任何人都可以建议配置它的方式吗?
提前致谢。
opensaml - 如何使用 OpenSAML 设置 Signature DigestMethod 算法
我们可以设置签名算法如下:
我正在尝试找到一种方法来设置这样的 DigestMethod 算法。是否可以通过 OpenSAML API 实现?非常感谢任何输入。
更新:为清楚起见,添加示例签名。这个问题关心的是其中的 DigestMethod 元素。
更新:弗拉基米尔的回答有效。但是,该解决方案似乎是线程不安全的?在我的应用程序中,我们只引导 opensaml 一次,然后由具有不同配置的不同线程使用 - 例如不同的签名算法。有没有办法以线程安全的方式做到这一点?
更新:Shibboleth IdP 使用 opensaml,根据Shibboleth IdP Wiki,目前这是一个全局配置。因此,无论 IdP 还是 SP 端,如果使用 opensaml 处理 SAML 消息,则应该存在此限制。以下是该文章的摘录:
更改 IdP 签名/摘要算法和相关设置目前是一项全局操作。该算法将针对与之交互的所有依赖方进行更改。在您确认所有依赖方都可以使用您选择的新算法处理响应之前,请勿进行此更改
更新:终于找到了完成这项工作的方法。已将其添加为答案。
java - Weblogic 12c 上的 Spring SAML
我目前正在开发一个使用 Spring SAML ( http://projects.spring.io/spring-security-saml/ ) 项目作为我们身份验证的一部分的应用程序。我知道它仍在 RC 中,但我们正在开发的应用程序也是如此。当部署到 Tomcat7 时,我们已经集成了库并且功能齐全,但在部署到 Weblogic 12c (12.0.1.2) 时遇到了问题。在没有抛出任何错误的 Weblogic 上,断言值将被解密为空无错误。
问题似乎出在 Xerces 库中。据我所知,Spring SAML(由于 OpenSAML)需要 2.10.0,但 Weblogic 提供了 2.8.0 的 Xerces 库。我试图通过在项目 WEB-INF/lib 文件夹。这修复了 Spring SAML 的解密问题,但破坏了 Weblogics 解析 JSP 页面的能力。我在下面包含了未升级和升级的 Xerces 异常的部分堆栈跟踪。如果有人知道如何正确解决此问题,以便 Spring SAML 可以在不破坏默认功能的情况下运行 Weblogic,我将不胜感激。
这是更新 Xerces 之前的堆栈跟踪
这是将 Xerces 更新到 2.10.0 后的堆栈跟踪。
java - Opensaml 错误接收正确的解组器
我在 opensaml2.6 运行此代码
对于文档
Unmarshaller
return a null
,你能帮我理解一下查找正确的标准Unmarshaller
以及它在opensaml中是如何工作的吗?
saml - opensaml 断言签名验证
我有一个 SAML 2 响应,其中包含一个已签名的断言,并且响应本身已再次签名。我使用下面的代码来验证响应的签名配置文件。
并在代码块下方验证签名。
但我相信这些东西只验证响应签名和响应签名配置文件。我还需要验证断言签名吗?我尝试使用下面的代码块验证断言签名。但它给了我 ValidationException 这意味着它无效。但它应该是。