我正在尝试使用SAML2.0进行我的第一次SSO集成。我一直在用:
http://www.codeproject.com/KB/aspnet/DotNetSamlPost.aspx?msg=3562384
作为我自己的一个例子。
目前,我只是想成功地发布到他们的网址。我们连接的站点非常大,并且使用ping-identity的解决方案来管理他们的sso,这似乎给我带来的帮助很小。我已经解决了几个问题,但这一点让我感到困惑:
UnknownBindingException:请求包含的信息不足,无法确定协议绑定(是否直接在浏览器的地址栏中键入了协议终结点?)。
有人知道这可能是什么原因吗,我发布的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>任何帮助都非常感谢,
谢谢。
发布于 2010-09-01 19:34:49
当我读到您的问题时,您的应用程序将成为SAML2联合中的ServiceProvider (SP),其中Ping是IdentityProvider (IdP)。您已经标记了问题c#,所以我假设您的SP是在.Net中实现的
你使用的是哪种SAML2框架,还是你自己的?如果你正在做你自己的SAML2框架,我建议你使用OIOSAML.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
发布于 2010-08-23 20:03:04
听起来您要么是A)通过GET方法而不是POST发送断言,要么是B)您没有正确格式化包含要发送给合作伙伴的断言的HTML表单。
https://stackoverflow.com/questions/3534881
复制相似问题