SAML 2.0 实例分析 sp向idp发送请求(3)

user没有登陆过sp,此时sp向idp发送请求,下文是请求的xml形式

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
                    AssertionConsumerServiceURL="http://localhost:8080/sp/consumer"
                    Destination="http://localhost:8080/idp/sso"
                    ID="fd57f81a-d58f-433e-8f6f-0874fc0f939e"
                    IssueInstant="2020-04-18T03:19:42.430Z"
                    ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
                    Version="2.0">
    <saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">http://localhost:8080/sp</saml:Issuer>
    <samlp:NameIDPolicy AllowCreate="true"
                      Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>
</samlp:AuthnRequest>

  

该请求根节点是 <samlp:AuthnRequest> 来表明是一个认证请求,有如下几个参数:

1、 AssertionConsumerServiceURL 断言sp地址,即当 IDP 认证成功后响应返回的地址
2、 Destination 目标地址,即 IDP 接收请求的地址
3、 ID 该请求的唯一标识
4、 IssueInstant 请求的时间
5、 ProtocolBinding SP 声明此次通信的绑定方式,不同的绑定方式意味着不同的通信流程,SAML2.0 主要包括:HTTP-Artifact,HTTP-POST,HTTP-Redirect,SOAP 等几种绑定方式。
6、 Version 版本号
7、 saml:Issuer SP 的 Id 标识
8、 samlp:NameIDPolicy IDP 对于用户身份的标识;NameID policy 是 SP 关于 NameID 是如何被创建的说明;Format 指明 SP 需要返回什么类型的标识(SAML Artifact);属性AllowCreate指明 IDP 是否被允许当发现用户不存在时创建用户账号。

posted @ 2020-04-19 13:01  程程111  阅读(1895)  评论(0编辑  收藏  举报