创建SAML SLO请求

问题描述 投票:1回答:1

作为服务提供商(SP),我正在尝试使用URL重定向流创建SLO请求。经过大量的文章之后,这就是我想出的:

  1. 创建注销请求xml并进行数字签名
  2. 将请求xml转换为base64 url​​编码的字符串
  3. 将base64编码的请求xml作为查询字符串附加到SLO url
  4. 将页面重定向到上面构造的URL(IDP)
  5. IDP随后将在其末尾对所有SP执行必要的SLO步骤,重定向回我们当前的应用程序(该应用程序启动了SLO请求)
  6. 解析以上响应并相应地在UI中显示消息

但是,当我进入实际的实现时,我面临以下挑战,其中一些挑战并非特定于SAML SLO。

  1. 要对注销请求xml进行数字签名,是否必须从.pfx文件加载/导入x509证书,或者我可以使用任何来自证书存储区的具有私钥的证书?
  2. 出于演示目的,我已在本地系统中使用具有私钥的证书成功签署了请求。此过程将签名和公共密钥信息附加到注销请求xml中。
  3. 我已经编码(Base64Url)请求xml,但是结果字符串的长度太长(超过4k个字符),这将超过URL / GET请求中允许的最大长度。我把这一步弄错了吗?
  4. 文章/ SAML规范均未提及查询字符串的外观。是SAML规范(我可能会错过)定义了querystring参数名称,还是取决于IDP?

总而言之,我觉得SAML规范缺少适当实施的文章,这使得很难掌握它。

注意:到目前为止,我没有写任何代码,因为没有它们我的问题就可以回答。但是,如果需要,我可以包括它们。

许多引用的文章中很少:

c# .net cryptography saml-2.0
1个回答
0
投票

我强烈建议您使用existing SAML library,而不要自己动手。

其中一些是免费的,您可以检查源代码以了解操作方法。

或者也可以只使用堆栈本身!

© www.soinside.com 2019 - 2024. All rights reserved.