【问题标题】:ComponentSpace SAML组件空间 SAML
【发布时间】:2019-09-17 11:02:46
【问题描述】:

仅适用于 ComponentSpace 用户!

我需要在启动后从数据库中添加提供者配置。 没有关于此主题的有用文档。以下是我找到并尝试过但没有成功的一些建议。

有没有人成功地使用 ComponentSpace 动态添加身份提供者配置?

他们论坛上的帖子建议在我的控制器中注入 ComponentSpace.Saml2.Configuration.SamlConfigurations。问题是 SamlConfigurations 为空,尽管我已经在启动时加载了工作配置。

https://componentspace.com/Forums/7950/

我可以在 Startup.cs 的应用程序配置中访问数据库。但是 saml 已经使用 services.AddSaml 添加到 ConfigureServices 中,并且没有明显的更新方法。

【问题讨论】:

    标签: asp.net-core configuration saml component-space


    【解决方案1】:

    推荐的方法是实现 ISamlConfigurationResolver 接口,如配置指南中所述。

    https://www.componentspace.com/Forums/8234/Configuration-Guide

    “SAML 配置选项”部分概述了何时使用每种方法的替代方案和建议。

    “实现 ISamlConfigurationResolver”部分描述了此接口并包含几个示例实现。 您可以将 SAML 配置存储在自定义数据库中。您的 ISamlConfigurationResolver 实现将根据请求从该数据库中检索信息。作为 SAML SSO 或 SLO 流的一部分,按需请求配置。

    请注意,当前版本的文档建议使用 services.TryAddScoped 来指定您的实现。这要求您在调用 services.AddSaml 之前执行此操作,否则从 appsettings.json 读取的默认 ISamlConfigurationResolver 实现仍然处于活动状态。更好的方法是调用 services.AddScoped();

    关于您尝试的方法,您可以通过编程方式指定 SamlConfigurations。如果您查看我们发布的 ExampleIdentityProvider 和 ExampleServiceProvider 项目,它们的 Startup 类包含一个 ConfigureSaml 方法。您可以调用 services.AddSaml(config => ConfigureSaml(config)),而不是调用 services.AddSaml(Configuration.GetSection("SAML")),它会从 appettinsg.json 添加 SAML 配置。

    但是,我认为对于您的场景,最好实现 ISamlConfigurationResolver。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多