【问题标题】:Deflate & Base64 encode posted fileDeflate 和 Base64 编码发布的文件
【发布时间】:2018-09-12 11:12:11
【问题描述】:

我创建了示例解决方案,该解决方案使用Component Space 库将加密的 SAML 文件发布到 IDP。请求发布成功。然而,我没有得到预期的回应。我与 IDP 进行了沟通,他们告诉我该请求应经过以下步骤。

  1. Deflate 和 Base64 编码
  2. 网址编码

下面是我的 saml.config 和我用来发送具有测试值“10”的文件以用于中继状态的方法。

我的问题是:

他们有什么方法可以配置 saml.config 文件以应用来自 IDP 的请求? 如果没有,我可以遵循他们的任何解决方法吗?

SAML.config

<SAMLConfiguration xmlns="urn:componentspace:SAML:2.0:configuration">
<ServiceProvider Name="http://localhost:45661/"
               LocalCertificateFile="localCertificatePath.p12"/>
<PartnerIdentityProviders>

<PartnerIdentityProvider Name="Tawtheeq Online"
                         SignAuthnRequest="true"

SignatureMethod="http://www.w3.org/2000/09/xmldsig#rsa-sha1"

SingleSignOnServiceBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                         SingleSignOnServiceUrl="Destination URL"
                         PartnerCertificateFile="IDPcertificateURL.cer"/>
</PartnerIdentityProviders>
</SAMLConfiguration>

方法:

private void TestComponentSpaceSaml()
{
   var ConsumerServiceName = "Tawtheeq Online";
   SAMLServiceProvider.InitiateSSO(Response, "10", ConsumerServiceName);
}

【问题讨论】:

    标签: c# saml-2.0 component-space


    【解决方案1】:

    您应该与 IdP 确认应该使用哪个绑定来发送 SAML 身份验证请求。如果他们期望 Deflate 编码,这表明他们期望使用 HTTP-Redirect 绑定。如果是这种情况,请从您的配置中删除 SingleSignOnServiceBinding 设置,使其默认为 HTTP-Redirect。

    发送的 SAML 消息的编码不会有任何问题。无需解决方法。

    您应该向 IdP 询问有关问题所在的更多详细信息。

    【讨论】:

    • idp 想要对生成的文件进行压缩和编码,然后将其作为 Post 字符串文件发送到 URL。
    • SAMLv2 绑定规范oasis-open.org/committees/download.php/35387/… 定义了必须如何在实体之间传输 SAML 消息。如果 IdP 期望使用 HTTP POST 请求将 SAML AuthnRequest 发送到 SingleSignOn 端点,那么它似乎期望使用 HTTP POST 绑定。在这种情况下,SAML 消息 XML 必须采用 base-64 编码。不放气编码。请参阅上述文件的第 3.5.4 节。否则 IdP 不符合 SAMLv2。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 2019-06-19
    • 1970-01-01
    • 2017-10-07
    • 2019-09-17
    • 1970-01-01
    相关资源
    最近更新 更多