gpt4 book ai didi

java - 构建 SAML IDP

转载 作者:行者123 更新时间:2023-12-02 08:48:32 26 4
gpt4 key购买 nike

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

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

最佳答案

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

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

1 和 4 需要解析和创建 SAML。您可以使用openSAML对于那些。5 需要 SP 可能理解的 SAML 属性模式。您可以使用eduPerson为此。

使用 SAML 和 SP 需要了解并实现各种 SAML 配置文件。 Web 浏览器 SSO 是一种经常使用的方式。您可以阅读有关配置文件 here .

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

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

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

关于java - 构建 SAML IDP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60927498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com