java - 适用于多个应用程序的 PicketLink 单个实例

标签 java security jakarta-ee authentication picketlink

我的目的是使用 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.

PicketLink supports SAML

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

SAML

一些备注:

  • 您可以使用开源或专有的身份提供商,例如 shibboleth
  • SAML 使用 HTTP 作为底层协议(protocol)
  • SAML 或多或少是通用的。各种技术都可以使用SAML。您不仅限于 Java。
  • 从安全角度来看,使用众所周知的成熟技术总是比编写自己的技术更好。 SAML 是众所周知的。但编写自己的身份提供程序是有风险的。

关于java - 适用于多个应用程序的 PicketLink 单个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30552563/

相关文章:

java - 我可以向哪些类/实例中注入(inject) CDI 事件?

Java swing 选项卡式 Pane 添加选项卡异常

php - 是否有可以从共享主机环境实际运行的任何 PHP(或类似)版本的 Google Caja?

django - 为什么要使用 mod_auth_kerb 进行身份验证?

ios - iOS 共享 NSHTTPCookieStorage 的安全性

eclipse - 在 eclipse 中运行 jms 示例时,资源注入(inject)不起作用。

java - 在 JBoss 5.1.0.GA 上部署时出现 "Persistence provider caller does not implement the EJB3 spec correctly."警告

java - Resteasy 客户端 java.lang.IllegalStateException : Response is closed

java - 通过流将带有列表的列表对象转换为 Java 8 中的映射

java - 由于其他项目中未找到导入,Ant 构建失败