我的目的是使用 PicketLink 实现类似于 Atlassian 在 Crowd 中所做的事情。 .
更详细地说,我希望单个 PicketLink 实例为多个 Java EE 应用程序提供身份验证、授权、SSO 和 IdM 服务。这里的重点是为 JPA/LDAP 配置、自定义 IdM 模型和自定义身份 validator 提供一个位置(以上所有内容都将在客户端应用程序之间共享)。
据我从文档中了解到,PicketLink 并未提供开箱即用的功能。我想象客户端应用程序使用 PicketLink API,但实际调用通过 RMI/Hessian/REST 等代理到主 PicketLink 实例。我将不胜感激任何有关此架构是否可行的专家意见,以及任何其他批评和建议。
最佳答案
您正在寻找SAML
SAML is an XML-based, open-standard data format for exchanging authentication and authorization data between parties, in particular, between an identity provider and a service provider.
您可以创建一个充当身份提供者的 PicktLink 实例(基本上是一个 JavaEE 应用程序)。该实例将“...用于 JPA/LDAP 配置、自定义 IdM 模型和自定义身份 validator 的单一位置”。 其他 JavaEE 应用程序将充当服务提供者。这些应用程序可以使用身份提供商提供的基于 SAML 的身份服务:
一些备注:
- 您可以使用开源或专有的身份提供商,例如 shibboleth
- SAML 使用 HTTP 作为底层协议(protocol)
- SAML 或多或少是通用的。各种技术都可以使用SAML。您不仅限于 Java。
- 从安全角度来看,使用众所周知的成熟技术总是比编写自己的技术更好。 SAML 是众所周知的。但编写自己的身份提供程序是有风险的。
关于java - 适用于多个应用程序的 PicketLink 单个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30552563/