Saml 2.0 ComponentSpace SAML-在签名之前增强AuthnRequest XML(&A);发送

Saml 2.0 ComponentSpace SAML-在签名之前增强AuthnRequest XML(&A);发送,saml-2.0,component-space,Saml 2.0,Component Space,我正在从ComponentSpace和手动滚动两方面评估SAML库。我把文件从头到尾读了一遍 到目前为止,它被证明比手动编写请求节省了更多的时间,但是我的IDP使用了samlp:Extensions和samlp:Issuer元素上的附加属性 如果在签名和“发送”之前有一种方法可以访问和扩充生成的XML文档,那就很方便了 我们的IDP也使用这个库(显然),因为它们使用所有这些额外的XML节点,所以我认为有一种方法。只是看不见而已 谢谢你,卢克,我会在完成后更新的 ComponentSpace SA

我正在从ComponentSpace和手动滚动两方面评估SAML库。我把文件从头到尾读了一遍

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

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

我们的IDP也使用这个库(显然),因为它们使用所有这些额外的XML节点,所以我认为有一种方法。只是看不见而已


谢谢你,卢克,我会在完成后更新的

ComponentSpace SAML有一个低级API,您会发现一个
AuthnRequest
类型可用于生成请求

该类型有一个
.Extensions
属性,该属性接受一个
Extensions
类型,其构造函数接受一个
xmlement


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

Luke,关于您的评论,“如果在签名和“发送”之前有一种方法可以访问和扩充生成的XML文档,那将非常方便。”这是我们将研究的内容


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

如果它对任何人都有帮助,以下是如何添加扩展:

AuthnRequest authnRequest = new AuthnRequest();
var doc = new XmlDocument();
doc.LoadXml("<myCustomField>123</myCustomField>");
authnRequest.Extensions = new Extensions();
authnRequest.Extensions.Data = doc.ChildNodes;
AuthnRequest AuthnRequest=new AuthnRequest();
var doc=新的XmlDocument();
doc.LoadXml(“123”);
authnRequest.Extensions=新扩展();
authnRequest.Extensions.Data=doc.ChildNodes;

实际上,这在低级API中都是可能的。您可以构建一个请求并获得一个XmlElement。就扩展而言,我们正在使用的IDP(在我们的行业中使用)大量使用扩展。在CS文档中(无论如何我都有),没有显示使用低级API构建请求。我们的IDP足够好,可以使用您的库共享一个演示,非常好。