JOSSO入门指南及其与WildFly AS 10的集成

JOSSO是一款开源的SSO实现。

本文将介绍JOSSO的发展版本变化,基本概念和用法。

1.JOSSO的版本

与Struts类似,JOSSO也分为JOSSO1和JOSSO2两个系列的版本。

JOSSO1适合于定制认证和授权策略的应用场景。JOSSO2 提供一站式打包安装,适合于标准的应用场景。

JOSSO1的版本演变:

JOSSO1版本

发布时间

JOSSO 1.8.10

Oct 27, 2015

JOSSO 1.8.9

Apr 30, 2014

JOSSO 1.8.8

Sep 20, 2013

JOSSO 1.8.7

Aug 31, 2012

JOSSO 1.8.6

Mar 30, 2012

JOSSO 1.8.5

Jul 18, 2011

JOSSO 1.8.4

May 03, 2011

JOSSO 1.8.3

Oct 14, 2010

JOSSO 1.8.2

Jul 27, 2010

JOSSO 1.8.1

Oct 13, 2009

JOSSO 1.8

Jan 13, 2009

JOSSO 1.7

Mar 19, 2008

JOSSO 1.6

Nov 15, 2007

JOSSO 1.5

Apr 12, 2007

JOSSO 1.4

Jun 09, 2006

JOSSO 1.3

Jun 13, 2005

JOSSO 1.2.1

Apr 21, 2005


JOSSO2的版本演变:

JOSSO2 版本

发布时间

说明

JOSSO 2.4.1

Oct 28, 2015

兼容Java 8

支持IIS 8, Oracle Weblogic 11 and 12

JOSSO 2.4

May 26, 2014

兼容Java 7

支持Microsoft Sharepoint 2013, IBM Domino, Microsoft IIS 7 and 7.5, Apache Tomcat 8, Google App Engine (GAE), Spring Security 3

JOSSO 2.3.1

Sep 18, 2013

支持JBoss AS 7, JBoss Enterprise Portal Platform 5, GateIn Portal 2.1, Jetty 6

JOSSO 2.3

Sep 03, 2012

 

JOSSO 2.2.2

Aug 31, 2012

 

JOSSO 2.2.1

Nov 17, 2011

 

JOSSO 2.2

Jul 21, 2011

 

JOSSO 2.1

May 02, 2011

 

JOSSO 2.0.2

Nov 23, 2010

 

JOSSO 2.0

Oct 20, 2010

 


2.JOSSO的基本概念

  • Service Provider (SP)就是部署在应用服务器上的各个应用。
  • JOSSO Gateway是一种Identity Provider (IdP),负责对SP的访问请求进行身份验证。部署了JOSSO Gateway的应用服务器也被称为JOSSO服务器。
  • JOSSO  Agent与Service Provider (SP)共同部署到应用服务器上,两者紧密结合。因此,SP也被称为JOSSO Agent的伙伴应用(PartnerApplication)。对应用的访问请求,首先被JOSSO Agent拦截并重定向到JOSSO Gateway。JOSSO Gateway与JOSSO Agent可能位于不同的服务器上。

3.JOSSO Gateway与服务器的集成

JOSSO Gateway需要与应用服务器自身的身份验证系统集成。

JOSSO Gateway本身是以josso.war(在JOSSO 1.8.10中是josso-gateway-web-1.8.10.war)的形式发布的(位于%JOSSO%/dist/gateway/app/),如果要定制LOGO等,建议通过Maven从源代码构建。

下面以JOSSO 1.8.10与WildFly AS 10为例介绍集成过程。

1)首先将josso-gateway-web-1.8.10.war部署到%JBOSS_HOME%/standalone/deployments目录下

2)其次,将JOSSO Gateway的配置文件(位于%JOSSO%/dist/gateway/config/)复制到%JBOSS_HOME%/standalone/configuration/目录下。

3)然后,创建%JBOSS_HOME%/standalone/configuration/josso-auth.properties文件如下,应用保持AES键的Base64编码(用于RememberMe功能):

#JOSSO 'Remember Me' authentication schemem properties.
#Thu Apr 14 22:48:33 CST 2016
josso.rememberme.authscheme.key=SXhL+cFNzrdDWupa/7jWlQ\=\=

4)在%JBOSS_HOME%/standalone/configuration/josso-gateway-config.xml文件中,配置定义用户信息的资源库,JOSSO支持多种资源库如下:

  • josso-gateway-memory-stores.xml(默认)
  • josso-gateway-db-stores.xml
  • josso-gateway-ldap-stores.xml

只要将用到的资源库重命名为josso-gateway-stores.xml即可。

 

5)必要情况下,在%JBOSS_HOME%/standalone/configuration/josso-gateway-auth.xml文件中配置新的认证机制,默认JOSSO支持如下:

  • basic authentication (username/password)
  • strong authentication (digital certificates)
  • Rememberme authentication (Remember Me)
  • Windows Authentication (NTLM)
  • LDAP-Bind Authentication

在josso-gateway-config.xml文件中,前3种认证机制默认被支持。


4.JOSSO Agent与应用的配置

这部分将后续文章中针对具体应用详细介绍,此处只要知道主要是通过JOSSO  Agent的配置文件josso-agent-config.xml进行。

主要是配置用户的登录请求重定向到JOSSO Gateway的URL,JOSSO  Agent与JOSSO Gateway的通信通道和被代理的应用,示例如下:

        <!-- Gateway LOGIN and LOGOUT URLs -->
        <gatewayLoginUrl>http://localhost:8080/josso/signon/login.do</gatewayLoginUrl>
        <gatewayLogoutUrl>http://localhost:8080/josso/signon/logout.do</gatewayLogoutUrl>
...
        <!-- Gateway service locator -->
        <gatewayServiceLocator>
            <protocol:ws-service-locator endpoint="localhost:8080"/>
        </gatewayServiceLocator>
...
        <configuration>
            <agent:agent-configuration>
                <agent:partner-apps>
                    <agent:partner-app id="MySimplePartnerApp" context="/ntc-device"/>
                    <agent:partner-app id="MyPartnerApp1" context="/ntc-home" />
                </agent:partner-apps>
            </agent:agent-configuration>
        </configuration>


参考文献:

官网 http://www.josso.org/confluence/display/JOSSO1/JOSSO+-+Java+Open+Single+Sign-On+Project+Home

下载 https://sourceforge.net/projects/josso/files/


你可能感兴趣的:(SSO,gateway,agent,10,wildfly,JOSSO)