【问题标题】:ComponentSpace SAML - Augment AuthnRequest XML before sign & sendComponentSpace SAML - 在签名和发送之前增强 AuthnRequest XML
【发布时间】:2015-04-30 15:22:16
【问题描述】:

我正在评估来自 ComponentSpace 与手动滚动的 SAML 库。我从头到尾阅读了这些文档。

到目前为止,事实证明它比手动编写请求节省更多时间,但我的 IDP 使用了 samlp:Extensionssamlp:Issuer 元素上的附加属性。

如果有一种方法可以在签名和“发送”之前访问和扩充生成的 XML 文档,那将会很方便。

我们的 IDP 也使用这个库(显然),因为他们使用所有这些额外的 XML 节点,我认为有一种方法。就是看不出来。

谢谢,卢克

【问题讨论】:

    标签: saml-2.0 component-space


    【解决方案1】:

    如果它对任何人有帮助,这是添加扩展的方法:

    AuthnRequest authnRequest = new AuthnRequest();
    var doc = new XmlDocument();
    doc.LoadXml("<myCustomField>123</myCustomField>");
    authnRequest.Extensions = new Extensions();
    authnRequest.Extensions.Data = doc.ChildNodes;
    

    【讨论】:

      【解决方案2】:

      我会在完成工作时更新。

      ComponentSpace SAML 有一个低级 API,您会发现一个 AuthnRequest 类型可用于构建您的请求。

      该类型有一个 .Extensions 属性,该属性采用 Extensions 类型,其构造函数采用 XmlElement

      至于SPProviderID 元素,它可以作为Issuer 类型的构造函数的参数提供,然后可以通过AuthnRequest.Issuer 属性设置和应用。

      【讨论】:

        【解决方案3】:

        Luke,关于您的评论,“如果有一种方法可以在签名和'发送'之前访问和扩充生成的 XML 文档,那将会很方便。”,我们将对此进行研究。

        我们建议尽可能使用 SAML 高级 API,因为这意味着必须在应用程序中编写更少的代码。此外,我们建议尽可能避免使用扩展。但是,有时您必须在典型用例之外做一些事情,这需要恢复到低级 API。我们将考虑将您建议的支持添加到高级 API。谢谢。

        【讨论】:

        • 其实这一切都可以在底层 API 中实现。您可以构建一个请求并获取一个 XmlElement。就扩展而言,我们正在使用的 IDP(在我们的行业中使用)大量使用扩展。
        • 在 CS 文档中(无论如何我都有),没有显示使用低级 API 来构建请求。我们的 IDP 非常好,可以使用您的 lib 分享一个演示,非常棒。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-08
        • 2015-02-20
        • 1970-01-01
        • 2015-12-01
        • 1970-01-01
        • 2015-12-03
        相关资源
        最近更新 更多