jboss7.x - JBoss EAP 6/JBoss AS 7 的 OpenAM/OpenSSO 代理

标签 jboss7.x agent opensso openam

我想将 OpenAM/OpenSSO SSO 功能添加到 JBoss EAP 6 或 JBoss AS 7。这意味着我必须在 JBoss 上安装 SSO Java EE 代理。 Forgerock's OpenAM download page提供了为以前版本的 JBoss 获取代理的机会,但不支持新的 JBoss EAP 6/JBoss AS 7(目前)。

你知道这样的代理是否在某个地方可用,或者在不久的将来会可用吗?如果没有,您知道如何更改 JBoss 配置以使其与 OpenAM 一起使用吗?

最佳答案

目前似乎没有 JBoss EAP 6 的官方代理。

但是,我可以通过手动配置我的 JBoss 实例使其与 OpenAM SSO 一起使用。为此,我从 forgerock 下载站点上现有的 jboss_v42_agent.zip 开始。使用 jars agent.jar、openssoclientsdk.jar 和代理配置文件,我可以使用这个 module.xml 构建一个 JBoss 模块:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="openam.agents">
  <resources>
    <resource-root path="agent.jar"/>
    <resource-root path="openssoclientsdk.jar"/>
    <resource-root path="."/>
  </resources>
   <dependencies>
    <module name="javax.api"/>
    <module name="javax.servlet.api" />
    <module name="org.picketbox"/>
  </dependencies>
</module>

然后我必须通过添加安全域来更新standalone.xml:
  <security-domain name="AMRealm" cache-type="default">
    <authentication>
      <login-module code="com.sun.identity.agents.jboss.v40.AmJBossLoginModule" flag="required">
        <module-option name="unauthenticatedIdentity" value="anonymous"/>
      </login-module>
      <login-module code="org.jboss.security.ClientLoginModule" flag="required">
        <module-option name="restore-login-identity" value="true"/>
      </login-module>
    </authentication>
  </security-domain>

最后,在通过添加一行修改 MANIFEST.MF 后,我在 JBoss 上部署了 agentapp.war:
Dependencies: openam.agents

其中 openam.agents 是我的模块的名称。

现在对于我要启用 SSO 的应用程序,我还必须执行一些更新:
  • web.xml :添加和节点:
    <filter>
      <filter-name>Agent</filter-name>
      <display-name>Agent</display-name>
      <description>OpenAM Tomcat Policy Agent Filter</description>
      <filter-class>com.sun.identity.agents.filter.AmAgentFilter</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>Agent</filter-name>
      <url-pattern>/*</url-pattern>
      <dispatcher>REQUEST</dispatcher>
      <dispatcher>INCLUDE</dispatcher>
      <dispatcher>FORWARD</dispatcher>
      <dispatcher>ERROR</dispatcher>
    </filter-mapping>
    
  • jboss-web.xml :声明要使用的安全域
    <?xml version="1.0" encoding="UTF-8"?>
    <jboss-web>
      <security-domain>AMRealm</security-domain>
    </jboss-web>
    
  • list .MF :应用与 agentapp.was 中相同的修改(添加“依赖项:openam.agents”行)

  • 我不确定这是否是在 JBoss EAP 6/AS 7 上启用 SSO 的最佳方式(我不是专家),但它似乎运作良好。

    关于jboss7.x - JBoss EAP 6/JBoss AS 7 的 OpenAM/OpenSSO 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11867838/

    相关文章:

    jboss - 没有支持许可证,我可以使用JBoss EAP 6吗?

    deployment - 在 JBoss AS7 独立部署中加载 3rd 方 JAR 的最佳实践?

    java - 使用代理的性能影响

    tomcat - 从 OpenAM Tomcat 代理过滤器映射中排除 URL

    c++ - 使用 openam 或 opensso union c++ 客户端应用程序

    javascript - 在 jBoss 6.2 和 jBoss 7.3 中部署应用程序时的不同响应

    ejb-3.0 - 从 JBoss AS 7.1.1 上的 Servlet 调用部署在 GlassFish 3.1 上的 EJB 3

    web-services - OpenSSO SSOToken 到 SAML 断言并返回

    Clojure 相当于 "Actors"

    random - Elixir - Agent 中的随机数