构建SAML IDP

问题描述 投票:0回答:1

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

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

说起从头开始构建SAML IdP的人,用Java构建一个主要涉及这些事情:

  1. 通常在端口443上侦听SAML请求的服务器应用程序。您可以为此使用spring-boot
  2. 用于向IdP管理的用户显示身份验证页面的服务器代码。 LDAP是一种用于验证用户身份的常用方法。
  3. 服务器代码以提取已认证用户的属性。这可以是LDAP查找,以查找姓名,姓氏,电子邮件等属性。
  4. 服务器代码,决定可以将哪些属性释放给发出请求的SP。您可以为此使用SP的entityID
  5. 将用户属性(例如从LDAP)转换为SAML属性并发送到SP的服务器代码。>
  6. 1和4需要解析并创建SAML。您可以使用openSAML。5需要SP可能理解的SAML属性架构。您可以使用eduPerson

SAML和SP的使用需要各种SAML配置文件的知识和实现。 Web浏览器SSO是经常使用的一种。您可以阅读有关配置文件here的信息。

一旦您了解了SAML并适合该过程中的位置,就需要使用XMLSignature了解/实现PKI和各种加密主题。

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

如果投资回报率不值得那么大的发展,则可以使用'standard' IdP

© www.soinside.com 2019 - 2024. All rights reserved.