针对多个应用程序的单个PicketLink实例

时间:2015-05-31 00:07:54

标签: java security java-ee authentication picketlink

我的目的是使用PicketLink实现类似于Atlassian在Crowd中所做的事情。

更详细地说,我希望单个PicketLink实例为多个Java EE应用程序提供身份验证,授权,SSO和IdM服务。这里的重点是为JPA / LDAP配置,自定义IdM模型和自定义身份验证器提供一个位置(以上所有内容将在客户端应用程序之间共享)。

据我从文档中了解到,PicketLink不提供开箱即用的功能。我想象客户端应用程序使用PicketLink API,但实际调用通过RMI / Hessian / REST等代理主要PicketLink实例。我将很感谢任何关于这种架构是否可行的专家意见,以及任何其他批评和建议。

1 个答案:

答案 0 :(得分:2)

您正在寻找SAML

  

SAML是一种基于XML的开放标准数据格式,用于交换   特别是各方之间的身份验证和授权数据   身份提供者和服务提供者之间。

PicketLink supports SAML

您可以创建充当身份提供者的PicktLink实例(基本上是JavaEE应用程序)。此实例将是“... JPA / LDAP配置的单个位置,自定义IdM模型和自定义验证器”。 其他JavaEE应用程序将充当服务提供者。这些应用程序可以使用身份提供商提供的基于SAML的身份服务:

SAML

一些评论:

  • 您可以使用shibboleth
  • 等开源或专有身份提供商
  • SAML使用HTTP作为基础协议
  • SAML或多或少是普遍的。各种技术都可以使用SAML。您不仅限于Java。
  • 从安全角度来看,最好使用众所周知的成熟技术,而不是编写自己的技术。 SAML是众所周知的。但是编写自己的身份提供商是有风险的。