【发布时间】:2015-11-18 17:49:00
【问题描述】:
我一直在尝试将 Shibboleth 实现为 IDP,我的 Java webapp 实现为 SP,但我无法理解元数据的工作原理。我知道这是 SP 了解 IDP 的一种方式,反之亦然。我也知道它有钥匙,但我无法连接点。
请简要说明元数据的配置方式及其核心元素是什么?
【问题讨论】:
标签: java single-sign-on saml shibboleth opensaml
我一直在尝试将 Shibboleth 实现为 IDP,我的 Java webapp 实现为 SP,但我无法理解元数据的工作原理。我知道这是 SP 了解 IDP 的一种方式,反之亦然。我也知道它有钥匙,但我无法连接点。
请简要说明元数据的配置方式及其核心元素是什么?
【问题讨论】:
标签: java single-sign-on saml shibboleth opensaml
SAML 元数据围绕代表常见组合的可扩展角色集合进行组织 基本上 SAML 协议的 SAML 配置文件要求系统实体之间就标识符、绑定支持和 端点、证书和密钥等。元数据规范对于描述这一点很有用 以标准化的方式提供信息。本规范定义了 SAML 的可扩展元数据格式 系统实体,由反映 SAML 配置文件的角色组织。此类角色包括 SSO 身份 提供者、SSO 服务提供者、从属关系、属性机构、属性请求者和策略决策 点。
您可以参考此pdf link saml-metadata-2.0,它为您提供有关 SAML 元数据的更多描述性信息。
【讨论】:
你需要一步一步。
这里,shibboleth SP 和 Shibboleth IdP 是您需要从 shibboleth 网站下载和安装的两个软件,而 SP 应用程序和 IdP 应用程序是您需要开发的两个东西。
我建议你先开发SP。使用this 和this 这样做。然后你开发 IdP。
来到元数据。
SP 和 IdP 需要的主要配置是元数据。 shibboleth2.xml 是您执行此操作的文件。 SAML 需要数据重定向到哪里、从哪里获取断言以及什么是加密。但 Shibboleth 让这一切变得简单。一切都由 shibboleth 处理,您只需要提供路径元数据所在的位置。
我们所做的是配置 - 在shibboleth2.xml 中(我是在 SP 的上下文中说的,但对 SP 和 IdP 都理解相同)。
配置元素
RequestMapper - 我们的主机安全ApplicationDefaults - 只需在此处更改 entityId,将其更改为任何内容。MetadataProvider - 提供 IdP 的实体 ID 和元数据 url。这是SP端需要做的基本配置。
元数据可以由 shibboleth 系统使用上述配置生成,并且可以从 https://mywebsitehost.com/Shibboleth.sso/Metadata 下载,IdP 也是如此。 SP 和 IdP 可以通过 entityId 连接和获取信息。
【讨论】: