问题标签 [openam]
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 - openam 客户端 sdk 会话 ID 无效
我将 openam 与 tomcat 7 一起使用,以下行总是产生异常 SSOTokenManager manager = SSOTokenManager.getInstance(); SSOToken ssoToken = manager.createSSOToken(request);
无效的会话 ID
我认为某些配置或某些东西可能有问题
有什么帮助吗???
amSSOProvider:09/18/2012 01:18:01:882 PM EEST:线程 [http-bio-9090-exec-151,5,main] 无法从 HttpRequest com.iplanet.dpro.session.SessionException 创建 SSOToken:无效会话 ID。在 com.iplanet.dpro.session.Session.getSession(Session.java:1062) 在 com.iplanet.sso.providers.dpro.SSOProviderImpl.createSSOToken(SSOProviderImpl.java:92) 在 com.iplanet.sso.SSOTokenManager.createSSOToken (SSOTokenManager.java:241) 在 main.TestServlet2.doGet(TestServlet2.java:48) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 在 javax.servlet.http.HttpServlet.service(HttpServlet. java:723) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core .
com.iplanet.sso.SSOException:会话 ID 无效。在 com.iplanet.sso.providers.dpro.SSOProviderImpl.createSSOToken(SSOProviderImpl.java:111) 在 com.iplanet.sso.SSOTokenManager.createSSOToken(SSOTokenManager.java:241) 在 main.TestServlet2.doGet(TestServlet2.java:48 ) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain. java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224) at org.apache.catalina.core .StandardContextValve.invoke(StandardContextValve.java:170) 在 org.apache.catalina.authenticator.AuthenticatorBase。concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:909) at java.lang.Thread.run(Thread.java:619) 原因:com.iplanet.dpro.session.SessionException:会话 ID 无效。在 com.iplanet.dpro.session.Session.getSession(Session.java:1062) 在 com.iplanet.sso.providers.dpro.SSOProviderImpl.createSSOToken(SSOProviderImpl.java:92)
java - com.iplanet.services.comm.client.SendRequestException:sun.security.validator.ValidatorException:PKIX 路径构建失败:
我做了以下步骤,但它抛出异常:
1.我在windows server 2003上安装了openam 10.0.0。
2.在同一台windows服务器机器上配置tomcat和ssl。
3.配置正确,openam url可以通过https访问。
4.在另一台机器上安装了openam客户端sdk,它是ubuntu机器,我试图从那个ubuntu机器登录到openam服务器
但我得到以下异常:
我不明白可能是什么问题。是因为我的 java 密钥库(ssl 配置需要)在 windows 服务器机器上,而我在 ubuntu 机器上没有密钥库,
或者
需要将密钥库导入 ubuntu 机器。?? 请任何人都可以帮助我摆脱这种情况。
openssl - com.sun.identity.authentication.spi.AuthLoginException(1):处理 XML 请求时发生错误
我正在使用以下代码登录到 openam 服务器:
但在 lc.login(indexType, "DataStore") 得到这个异常:
我的应用程序中有 amconfig.properties 文件,也在系统变量中。但不明白那里缺少什么。
liferay - Liferay 无法通过用户名获取用户
我正在为 liferay 编写一个自动登录钩子,它试图通过屏幕名称获取用户。我正在使用以下代码来获取用户,这主要是OpenSSOAutoLogin的变体:
User user = UserLocalServiceUtil.getUserByScreenName(companyId, screenName);
这在大多数情况下都有效,除非在 liferay 中记录的屏幕名称是大写的。例如,如果存储的 liferay 的屏幕名称是“TEST”,我将无法获取用户。堆栈跟踪显示以下内容:
跟踪清楚地表明“不存在具有键 screenName=test 的用户”。这里的“测试”是用小写字母写的,但是 getUserByScreenName() 方法是用大写的屏幕名称调用的。
经过一番研究,我发现在liferay UserLocalServiceImpl中执行了小写转换。我想这是导致搜索失败的原因,但我不太确定。
任何人都可以确认吗?liferay 的屏幕名称是否应该始终为小写?
谢谢你的建议。
adfs2.0 - 在服务提供者或身份提供者上导入 sp.xml 文件
我正在做 adfs+openam 联合,其中 openam 服务器是我的服务提供者,而 adfs 服务器是身份提供者。我在 openam 服务器上创建了 sp.xml 和 sp-extend.xml 文件。以及 adfs 服务器上的 idp.xml 和 idp-extend.xml。
但是无论是在 Openam 还是 adfs 服务器上,该 sp.xml 应该在哪里导入。idp.xml 也一样。我对此感到困惑。我正在参考以下站点进行配置:
https://wikis.forgerock.org/confluence/display/openam/OpenAM+and+ADFS2+configuration
tomcat - 用于授权的 OpenAM Tomcat J2EE 代理配置
我想使用 OpenAM 将授权配置到在 Tomcat 6 中上演的测试 webapp 中。最终目标/用例类似于:
- 用户 bob 属于组员工
用户 john 属于组管理员
只有员工和经理可以访问employee.jsp 页面
- 只有管理员可以访问 manager.jsp 页面
我找到了大量关于身份验证的文档,并在我的环境中正确配置了这些文档。在登录之前,我可以访问“公共”页面(不是我配置的强制 uri),但是一旦我尝试访问像“employee.jsp”这样的受保护页面,我就会被重定向到 OpenAM 的登录模块并且必须进行身份验证. 我可以作为属于 group 员工的 bob 进行身份验证(支持用户存储是一个活动目录),但是在重定向之后我仍然被拒绝访问。如何为此配置访问权限?为保护此资源而部署的策略代理是 j2ee_agent。Web 代理似乎更相关,但我收集到 j2ee 代理是为 Tomcat 部署的。有什么想法吗?
谢谢。
环境:
- webapp 部署在 tomcat 6 中,暂存于 Windows 2008 服务器上,带有 AD
- j2ee 策略代理部署在同一 tomcat 6 实例中,配置集中在服务器中
- openam 服务器在 jboss 7 中部署的一个单独的 linux 机器上,使用 Windows 2008 Server AD 作为用户存储。
single-sign-on - SP 发起的 SSO 和 IDP 发起的 SSO 之间的区别
谁能向我解释SP 发起的 SSO和IDP 发起的 SSO之间的主要区别是什么,包括哪个是结合 ADFS + OpenAM 联合实施单点登录的更好解决方案?
saml - OpenAM 整体理解和 SAML
我正在使用 OpenAM 使用 SAML 实施 SSO 解决方案。我是这些技术的初学者,我需要一些说明。
我的进步
目前,我已经安装了一个托管 OpenAM 作为 IdP 的 Tomcat。另一个 Tomcat 适合作为我的 SP。WebAgent 已安装在其上。在尝试访问 SP 的受保护部分时,我被重定向到 IdP 日志记录页面。输入凭据后,我最终被重定向到资源。这似乎运作良好。
我的问题
我的架构只是基于一个简单的 SSO,不是吗?
如何激活 SAMLv2 ?
是否必须在信任圈内的所有服务器上安装 OpenAM 才能允许 SAML?我的意思是,在 IdP 上看起来很自然,但是我需要在 SP 上放置和配置 opensso.war 吗?
选择的场景是 IdP 发起的 SSO。如果客户端到达 IdP Authenticate WS,它会有 SAML 断言吗?
提前致谢
authentication - 使 openam/opensso 返回角色名称而不是角色通用 id
我正在使用 OpenAM 9.5.2 对应用程序上的用户进行身份验证。身份验证运行良好,但我在从最终应用程序中获取用户成员身份时遇到问题。
我在 openam 中定义了组“somegroup”并将我的用户添加到该组中。现在在我的应用程序中,我想测试经过身份验证的用户是否是该组的成员。如果我正在测试它:
我得到false
结果。实际上,我必须测试
为了得到true
回应。
我知道可以在 sso 代理配置中定义一个特权属性映射列表来映射id=somegroup,ou=group,dc=opensso,dc=java,dc=net
,somegroup
但它不适合我的情况,因为角色和组存储在外部数据库中。在 sso agent conf 中定义数据库中的角色和映射并不方便。
所以我的问题是:有没有办法让 openam 使用“短”(即somegroup
)组名而不是它的长通用 id?
adfs2.0 - 使用 java 应用程序通过 openam 登录 adfs
我已将 adfs 配置为身份提供者,将 openam 配置为服务提供者,但是如何通过 adfs throght openam 测试登录是否正常工作。
任何人都可以帮助我使用 java 应用程序通过 openam 登录到 adfs 服务器。
谢谢,