Deflate和Base64编码发布的文件

时间:2018-09-12 11:12:11

标签: c# saml-2.0 component-space

我创建了示例解决方案,该解决方案使用Component Space库将加密的SAML文件发布到IDP。该请求已成功发布。但是,我没有得到预期的答复。我与IDP交流,后者告诉我该请求应遵循以下步骤。

  1. Deflate和Base64编码
  2. URL编码

下面是我的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);
}

1 个答案:

答案 0 :(得分:0)

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

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

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