【问题标题】:Single instance of PicketLink for multiple applications用于多个应用程序的单个 PicketLink 实例
【发布时间】:2015-05-31 00:07:53
【问题描述】:

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

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

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

【问题讨论】:

    标签: java security jakarta-ee authentication picketlink


    【解决方案1】:

    您正在寻找SAML

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

    PicketLink supports SAML

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

    一些备注:

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

    【讨论】:

    • 上述基于 SAML 的解决方案将提供身份验证/授权/SSO 但不提供 IdM(创建/修改/查询用户/组/角色)是否正确?如果是,您认为使用 PicketLink 实施集中式 IdM 的最佳方式是什么?谢谢
    猜你喜欢
    • 2012-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多