【问题标题】:Building a SAML IDP构建 SAML IDP
【发布时间】:2020-07-10 15:24:08
【问题描述】:

我们正计划建立自己的 SAML IDP。我有几个问题:

  1. 构建一个有意义吗?
  2. 如果是,方法是什么?我没有看到任何用于 SAML 的 Java 库。不能使用 spring-security-saml,因为它支持集成第三方 IDP,而不是构建一个。

【问题讨论】:

  • 1.除非您有一些非常特殊的、异国情调的要求,否则答案是否定的,绝对没有。

标签: java security saml-2.0 spring-saml idp


【解决方案1】:

有一个 SAML IDP here 的列表。

有一个 SAML 堆栈列表here

要添加@codebrane 答案,您是否计划同时支持 SP 和 IDP 发起?

但总的来说,不要。使用现成的产品或至少使用可靠的 SAML 堆栈库。

【讨论】:

    【解决方案2】:

    作为一个从零开始构建SAML IdP 的人来说,用Java 构建一个主要涉及以下内容:

    1. 侦听 SAML 请求的服务器应用程序,通常在端口 443 上。您可以为此使用 spring-boot
    2. 向 IdP 管理的用户提供身份验证页面的服务器代码。 LDAP 是一种常用的用户身份验证方式。
    3. 用于为已验证用户提取属性的服务器代码。这可能是一个 LDAP 查找,以查找名字、姓氏、电子邮件等属性。
    4. 服务器代码决定哪些属性可以发布给请求的 SP。为此,您可以使用 SP 的 entityID
    5. 用于将用户属性(例如从 LDAP)转换为 SAML 属性并发送到 SP 的服务器代码。

    1 和 4 需要解析和创建 SAML。你可以使用openSAML 来处理这些。 5 需要一个SAML 属性模式,SP 可能会理解。您可以为此使用eduPerson

    使用 SAML 和 SP 需要了解和实施各种 SAML 配置文件。 Web 浏览器 SSO 是一种使用频率很高的方法。您可以阅读有关个人资料here

    一旦您了解了SAML 及其在流程中的位置,您需要了解/实施XMLSignature 以及使用PKI 的各种加密主题。

    一旦您有了一个有效且经过测试的 IdP 实施,您就需要能够解析 SAML Metadata (PDF) 以使用其公钥证书和元数据中的各种其他 URL 来验证 SP。您还需要使 SP 元数据保持最新,并创建 IdP 元数据以发送到 SP,以便它可以验证您将签署的 SAML Response

    如果投资回报率不值得这么多的开发,您可以使用'standard' IdP

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-02-16
      • 2015-07-09
      • 2021-10-16
      • 2015-04-19
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多