上面第4步中的SAML请求将通过HTTP作为从目标站点到源站点的SOAP消息发送。消息体将类似于:
<!– This request would be wrapped in a SOAP envelope –>
<samlp:Request xmlns_samlp="urn:oasis:names:tc:SAML:1.0:protocol"
MajorVersion="1"
MinorVersion="1"
RequestID="_216.27.61.137.103896224111"
IssueInstant="2005-03-19T17:04:21.022Z">
<samlp:AssertionArtifact>
AAGZE1RNQJEFzYNCGAGPjWvtDIRSZ4
</samlp:AssertionArtifact>
</samlp:Request>
该请求把自己标识为来自SAML请求-应答协议名称空间的SAML 1.1请求(MajorVersion和MinorVersion)。SAML为请求-应答协议元素定义了一个名称空间,为断言定义了另一个单独的名称空间。Request拥有基于请求者IP地址的惟一ID。请求的准确时间也包括在内。
该请求中最有趣的部分是<AssertionArtifact>标记中令人费解的字符串。目标站点从用户HTTP请求的查询字符串中得到该值。由于它用于标识浏览器,所以也叫“浏览器凭证”。注意,该请求没有要求提交特定用户的验证。该请求创建时,目标方并没有用于提交请求的用户名。该信息将在应答中得到。浏览器凭证告诉可能正在同时向目标站点发送很多用户的源站点,应该在此应答中发送哪个用户的断言。下面是一个应答示例:
<samlp:Response xmlns_samlp="urn:oasis:names:tc:SAML:1.0protocol"
ResponseID="huGxcDQc4cNdDyocphmi6CxEMngaÓ
InResponseTo="_216.27.61.137.103896224111"?
MajorVersion="1"
MinorVersion="1"
IssueInstant="2004-06-19T17:05:37.795Z">
<samlp:Status>
<samlp:StatusCode Value="samlp:Success" />
</samlp:Status>
<saml:Assertion
xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion"
MajorVersion="1"
MinorVersion="1"
AssertionID="buGxcG4gILg5NlocyLccDz6iXrUa"
Issuer="www.example.com"
IssueInstant="2004-06-19T17:05:37.795Z">
<saml:Conditions NotBefore="2004-06-19T17:00:37.795Z"
NotOnOrAfter="2004-06-19T17:10:37.795Z"/>
<saml:AuthenticationStatement
AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password"
AuthenticationInstant="2004-06-19T17:05:17.706Z">
<saml:Subject>
<saml:NameIdentifier>JSmith</saml:NameIdentifier>
<saml:SubjectConfirmation>
<saml:ConfirmationMethod>
urn:oasis:names:tc:SAML:1.0:cm:artifact-01
</saml:ConfirmationMethod>
</saml:SubjectConfirmation>
</saml:Subject>
</saml:AuthenticationStatement>
</saml:Assertion>
</samlp:Response>
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
docker当作web环境好吗?
-
为什么Web会成为承载云计算的核心?
-
云计算的安全方面如何进行管控?
随着云计算日益发展和壮大,安全成了主要的关注点,目前比较成熟的管控是如何进行的?
-
开发团队随时面临违反隐私协议的问题
安全和隐私冲突吗?我们如何确保我们不违反自己的终端用户隐私协议?其实安全和隐私的相交之处就这二者都是组织的责任,来保护他们客户的敏感数据。