我们过去创建了许多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的自定义实现.请帮忙.
最佳答案 如果您处理身份验证,那么您就是IDP.
客户是正确的 – 这就是SAML正常工作的方式 – 双方交换元数据.元数据描述了什么配置文件,什么绑定,证书,NameID的格式等.
做了很多这些,我有点困惑.我从未处理过无法提供元数据的IDP!
有.NET 4.5类 – System.IdentityModel.Metadata来做到这一点.
看看开源代码在IdentityServer中生成元数据.
(注意:这只是WS-Fed,但原理是相同的).