当前位置: 首页 > 知识库问答 >
问题:

构建 SAML IDP

朱经武
2023-03-14

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

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

共有2个答案

拓拔飞飙
2023-03-14

这里有一个 SAML IDP 列表。

这里有一个 SAML 堆栈列表。

并且要添加@代码膜答案,您是否计划同时支持SP和IDP发起?

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

袁阿苏
2023-03-14

作为从头开始构建SAMLIdP的人,在Java中构建一个主要涉及以下内容:

    < li >侦听SAML请求的服务器应用程序,通常在端口443上。你可以用Spring靴来做这个。 < li >向IdP管理的用户显示认证页面的服务器代码。LDAP是一种常用的用户认证方式。 < li >提取已验证用户属性的服务器代码。这可能是LDAP查找,以查找诸如名字、姓氏、电子邮件等属性。 < li >用于决定哪些属性可以发布给请求SP的服务器代码。为此,您可以使用SP的< code>entityID。 < li >将用户属性(例如,从LDAP)转换为SAML属性并发送给SP的服务器代码。

1和4需要解析和创建< code>SAML。你可以使用openSAML。5需要SP可能理解的< code>SAML属性模式。你可以用eduPerson来做这个。

使用SAML和SP需要了解和实现各种SAML配置文件。Web浏览器SSO是一种被广泛使用的浏览器。您可以在此处阅读有关配置文件的信息。

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

一旦您有了一个工作的、经过测试的IdP实现,您就需要能够解析SAML元数据(PDF ),以便使用SP的公钥证书和元数据中的各种其他URL来验证SP。您还需要使SP元数据保持最新,并创建IdP元数据以发送给SP,以便它可以验证您的< code>SAML 响应,您将对其进行签名。

如果投资回报率不值得那么多的开发,您可以使用“标准”IdP。

 类似资料:
  • 3.4.2 构建类型 默认情况下,Android plugin 会自动的设置工程,构建 release 和 debug 两个版本。 他们主要的差异主要在于是否可以在设备上调试应用以及APK如何签名。 debug 版本会被使用已知的名称/密码自动生成的密钥/证书签名。release 版本在构建过程中不会被签名,需要构建后再签名。 这些配置可以通过一个叫 BuildType 配置。默认情况下,已经创建

  • 构建 由 fis3-command-release 插件提供构建能力 FIS3 的构建不会修改源码,而是会通过用户设置,将构建结果输出到指定的目录。 例子 在正式介绍 FIS3 功能之前,我们给定一个简单的例子,例子下载地址 demo-simple 命令 进入项目根目录,执行命令,进行构建。 项目根目录:FIS3 配置文件(默认fis-conf.js)所在的目录为项目根目录。 fis3 relea

  • 每个Gradle构建都包括三个基本的构建块:项目(projects)、任务(tasks)和属性(properties),每个构建至少包括一个项目,项目包括一个或者多个任务,项目和任务都有很多个属性来控制构建过程。 Gradle运用了领域驱动的设计理念(DDD)来给自己的领域构建软件建模,因此Gradle的项目和任务都在Gradle的API中有一个直接的class来表示,接下来我们来深入了解每一个组

  • 静态资源标签 以下方式引用的静态资源会被构建: img、video、audio、embed 和 source 标签的 src 属性 link 标签的 href 属性 object 标签的 data 属性 source 标签的 srcset 属性 不必构建的标签,添加coolieignore属性即可,如: <img src="./demo1.png"> <img src="./demo1.png"

  • CSS 合并 详细参考 内容压缩策略。 CSS 压缩 CSS 压缩采用的 clean-css 模块,默认配置为: { // 高级优化 advanced: false, // 属性合并 aggressiveMerging: false, // 兼容性,“ie7”、“ie8”、“*”(ie9+) compatibility: 'ie7', //

  • JS 合并 详细参考 内容压缩策略。 JS 压缩 JS 压缩采用的是 uglify-js 模块,默认配置为: { // 连续单语句,逗号分开 // 如: alert(1);alert(2); => alert(1),alert(2) sequences: false, // 重写属性 // 如:foo['bar'] => foo.bar proper

  • Blockly由一百多个JavaScript文件组成。 对于最终用户来说,通过Internet加载它们是一种缓慢的体验。 为了使Blockly加载更快,可以将其压缩为六个文件,总共约720kb。 Blockly附带了源代码和压缩文件,因此除非您要侵入core, blocks, generators, 或 msg目录,否则不需要构建Blockly。 Blockly压缩非常简单。 假设您已安装Pyth

  • 你可以下载 Ceph 源码并自行构建。首先,你得准备开发环境、编译 Ceph 、然后安装到用户区或者构建二进制包并安装。 构建依赖 Tip 对照本段检查下你的 Linux/Unix 发行版是否满足这些依赖。 构建 Ceph 源码前,你得先安装几个库和工具: ./install-deps.sh Note 在某些支持 Google 内存剖析工具的发行版上,名字未必如此(如 libgoogle-perf