我正在尝试使用SAML 2.0进行首次SSO集成。我一直在用:
http://www.codeproject.com/KB/aspnet/DotNetSamlPost.aspx?msg=3562384
作为我自己的榜样。
目前我只是想成功发布到他们的网址。我们连接的网站非常庞大,并使用ping-identity的解决方案来管理他们的sso,这似乎给我带来的帮助不是很有用。我已经完成了一些但是这个让我感到难过:
UnknownBindingException:请求包含 信息不足以确定协议绑定(你输入了吗? 协议端点URL直接进入您的位置栏 浏览器?)。
有没有人知道可能导致这种情况的原因,我发布的我的saml看起来像这样:
<Response xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="_3b052151-fb4f-4e10-89bd-d65ef5141e9d" Version="2.0" IssueInstant="2010-08-20T20:36:02.8093696Z" Destination="https://******/sp/ACS.saml2" xmlns="urn:oasis:names:tc:SAML:2.0:protocol">
<Issuer xmlns="urn:oasis:names:tc:SAML:2.0:assertion">www.******.org</Issuer>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="#_3b052151-fb4f-4e10-89bd-d65ef5141e9d">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>****</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>*******</SignatureValue>
</Signature>
<Status>
<StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success" />
</Status>
<Assertion Version="2.0" ID="_d0f34b54-cf0b-49c7-9a50-f60842b7e0d2" IssueInstant="2010-08-20T20:36:02.8103697Z" xmlns="urn:oasis:names:tc:SAML:2.0:assertion">
<Issuer>www.*******.org</Issuer>
<Subject>
<NameID Format="urn:oasis:names:tc:SAML:2.0:nameid-format:persistent">adamb</NameID>
<SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<SubjectConfirmationData NotOnOrAfter="2010-08-20T20:41:02.8103697Z" Recipient="https://*****.com:9031/sp/ACS.saml2" />
</SubjectConfirmation>
</Subject>
<Conditions NotBefore="2010-08-20T20:36:02.8103697Z" NotOnOrAfter="2010-08-20T20:41:02.8103697Z">
<AudienceRestriction>
<Audience>*****</Audience>
</AudienceRestriction>
</Conditions>
<AuthnStatement AuthnInstant="2010-08-20T20:36:02.8103697Z">
<AuthnContext>
<AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</AuthnContextClassRef>
</AuthnContext>
</AuthnStatement>
</Assertion>
</Response>
非常感谢任何帮助,
感谢。
答案 0 :(得分:3)
在我阅读您的问题时,您的应用程序将成为SAML2联合中的ServiceProvider(SP),其中Ping是IdentityProvider(IdP)。你已经标记了问题c#,所以我假设你的SP是用.Net实现的
您使用的是哪个SAML2框架,还是您自己推出?如果您正在使用自己的SAML2框架,我建议使用OphiAML.net,它是Mozilla许可下的开源软件(可以用于任何目的)。您可以在此处查看来源:http://view.svn.softwareborsen.dk/cgi-bin/index.cgi/Softwareborsen/oiosaml.net/branches/ (所有文件都是英文)。
它由丹麦政府积极维护,并且已经与Ping,ADFSv2,SimpleSamlPhp和许多其他SAML2 IdP进行了互操作测试。它目前被数百个丹麦网站用作Ping作为IdP的联盟。
关于您收到的异常,您打算使用哪种绑定:HTTP重定向,还是其他什么?假设它是HTTP重定向,我建议阅读SAML2绑定规范中从p15开始的相关部分:http://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf
答案 1 :(得分:0)
听起来像是A)通过GET方法而不是POST发送断言或B)您没有正确格式化包含发送给您的合作伙伴的断言的HTML表单。