1.PicketLink的简介
PicketLink是一个开源的安全框架(不便于集成,需要二次开发),为JavaEE应用提供安全(认证、授权、权限访问API)和IDM方案。
PicketLink最初是为RedHat Middleware提供安全相关的整合。
Keycloak是一个现成的模块,为Web应用和RESTfulWeb Services集成了SSO和IDM。Keycloak遵循OAuth2.0、OpenIDConnect、JSONWeb Token(JWT)和SAML2.0规范。
Keycloak的来源之一是RestEasy项目的SkeletonKey模块,其目的是为JavaEE应用提供安全的RESTAPI。
其来源之二是以IdentityBroker的形式提供SocialLogin功能的原型。两者的结合为JavaEE应用提供了现成的安全能力(便于集成)。
Keycloak已经从一个Identity Broker发展成为Identity Provider。Keycloak已经不再只是基于OAuth2.0的Token提供RESTAPI安全,其目标是完整的OpenIDConnect互操作性,提供基本的SAMLIdP功能和开发集成。
Keycloak的最新版本是1.6.1.Final。2015.3,伴随着PicketLink 2.7.0.Final的发布,PicketLink与Keycloak合二为一,为用户提供单个统一的安全方案。
2.GateIn Portal中对PicketLink的应用
GateIn Portal 3.x中,PicketLink-IDM被用于默认portal.war的用户识别管理。
GateIn Portal 3.x中,PicketLink-IDM的资源库使用的JCR是Infinispan 5.2.7.Final。
但是在WildFlyAS 10中,默认的JCR是Infinispan 8.0.1.Final。
因此需要修改portal.war中PicketLink-IDM相关的资源库配置文件,采用Infinispan 8.0.1.Final。
另外,由于GateInPortal 3.x核心的eXo-kernel的cache实现之一是Infinispan,目前只支持Infinispan5.x,所以eXo-kernel必须添加对Infinispan 8.0.1.Final的支持。
eXo-kernel的cache实现还有Memcached,JBosscache(已过时)等。GateInPortal 3.8.16及旧版本默认为jbosscache,最新的GateInPortal 3.9.x默认采用Infinispan 5.2.7.Final。
参考文献:
PicketLink官网http://picketlink.org/
PicketLink源代码https://github.com/picketlink/picketlink
Keycloak官网http://keycloak.jboss.org/
Keycloak源代码https://github.com/keycloak/keycloak