过去,我们创建了许多SAML实现。通常,客户端将向我们发送包含密钥信息,用户信息,证书等的SAML XML数据,然后我们将解析该信息,匹配密钥和证书。然后从xml中获取用户的唯一标识符,然后根据用户是否在我们的数据库中进行身份验证,并将登录的用户发送到我们域的某个页面。(我在这里有一个第二个问题要问:这使我们成为Saml IdentityProvider还是ServiceProvider)。
无论如何,现在这个特定的客户要求我们向他们发送SAML SSO元数据文件。他们说,为了使他们可以将联盟从其环境部署到我们的环境中,他们需要SAML SSO服务元数据的副本,如此处http://en.wikipedia.org/wiki/SAML_2.0#SSO_Service_Metadata所指定
那我该怎么办?我们从来没有这样的要求。我们不使用任何第三方工具,但已使用c#和Visual Studio构建了SAML的自定义实现。请帮忙。
我是使用本机c#代码生成saml 2.0 AuthnRequest并使用SamlResponse的服务提供者.客户要求我们签署saml AuthnRequest,然后将其发送给他们.我们将其作为http-POST发送.这是我们的数据:
包含其x509证书的idp元数据.
我们自己的x509证书以及我们的私钥.使用此工具获取自签名的https://www.samltool.com/self_signed_certs.php
我们自己的SP元数据(实体描述符)使用此工具使用自签名证书和私钥进行签名https://www.samltool.com/sp_metadata.php
现在,根据以上信息,我如何签署我的AuthnRequest?