我想导出 sp/idp 元数据,以便外部客户端可以从公共端点获取它。 asp.net(.net 框架)的
ComponentSpace.Saml2
有静态 MetadataExporter
类(docs),并且用法非常简单。但我在 ComponentSpace.Saml2
中为 asp.net core 遇到同样的问题。导出核心版本的仅 sp/仅 idp 元数据的正确方法是什么?
到目前为止我发现的选项:
ConfigurationToMetadata.ExportAsync
(docs) - 导出整个配置(本地 sp 和本地 idp,如果存在),因此您只能自己提取 sp/idp;MetadataExporter
+ ServiceProviderMetadataExporter
/IdentityProviderMetadataExporter
(docs) - 要求您从 idp 本地配置 + sp 合作伙伴配置/ sp 本地配置 + idp 合作伙伴配置中填充所有 saml 配置内容。我不确定推荐哪一个。我还检查了文档,对元数据导出没有太大帮助。
谢谢您,如果问题或其格式看起来很奇怪,我们深表歉意(这是我的第一次尝试)
是的,根据您的需要有不同的方法。
ConfigurationToMetadata.ExportAsync
:当您拥有完整的 SAML 配置并且想要导出包括本地服务提供商 (SP) 和本地身份提供商 (IdP) 组件(如果存在)的整个元数据时,可以使用此方法。如果您的目标是仅导出 SP 或 IdP 元数据,则确实需要在导出后手动提取适当的部分。
将
MetadataExporter
与 ServiceProviderMetadataExporter
或 IdentityProviderMetadataExporter
结合使用:它们分别更具体地仅导出 SP 或 IdP 元数据。您通常会创建 ServiceProviderMetadata
或 IdentityProviderMetadata
的实例,使用配置中的必要信息填充它们,然后使用导出器生成元数据 XML。
第二种方法允许对导出的内容进行更细粒度的控制。只是想在填充元数据时添加一件事,您需要考虑 SP 或 IdP 合作伙伴的预期 SAML 配置,这通常包括实体 ID、断言消费者服务 URL、单点注销服务 URL 等详细信息、证书等等。