l Subject ( 主题 ) : Subject 是 SAML 实体中的第一个重要的概念, Subject 包括了 User 、 Entity 、 Workstation 等能够象征一个参与信息交换的实体。
l Relying Party ( 信任方 ) : SAML 中的 Service Provider 角色,也就是提供服务的一方。
l Asserting Party ( 断言方 ) : SAML 中的 Identity Provider 角色,用于提供对主题的身份信息的正确的断言,类似一个公证机构。
IDP 身份提供者identity provider
SP 服务提供者service provider
SAML的规范由几个部分构成:SAML Assertion,SAML Prototol,SAML binding等
SAML定义三种元件:断言、协议以及约束。存在验证、标志、授权三种断言。验证断言确认用户的身份,标志断言包含特定的用户信息,授权断言确认用户得到授权。
协议定义SAML如何请求和接收断言。约束定义如何将SAML消息交换映射成简单对象访问协议(SOAP)交换。
HTTP,SMTP,FTP...
SAML 可以分为以下几种模式:一种是 SP 拉方式,一种是 IDP 推方式。
在 SAML 中,最重要的环节是 SP 如何获取对 Subject 的断言, SP 拉方式是 SP 主动到 IDP 去了解Subject 的身份断言,而 IDP 推方式则是 IDP 主动把 Subject 的身份断言通过某种途径告诉 SP 。
SAML 的 POST/Artifact Bindings 方式(即 SP 拉方式)
该方式的主要特点是, SP 获得客户端的凭证 ( 是 IDP 对 Subject 的一种身份认可 ) 之后,主动请求 IDP 对Subject 的凭证的断言。
协议执行:
1, Subject 向 IDP 请求凭证 ( 方式是提交用户名 / 密码 )
2, IDP 通过验证 Subject 提供的信息,来确定是否提供凭证给 Subject
3, 假如 Subject 的验证信息正确,他将获取 IDP 的凭证以及将服务请求同时提交给 SP 。
4, SP 接受到 Subject 的凭证,它是提供服务之前必须验证次凭证,于是,它产生了一个 SAML 请求,要求 IDP 对凭证断言
5, 凭证是 IDP 产生的,它当然知道凭证的内容,于是它回应一个 SAML 断言给 SP
6, SP 信任 IDP 的 SAML 断言,它会根据断言结果确定是否为 Subject 提供服务。
SAML 的 Redirect/POST Bindings 方式 ( 即 IDP 推方式 )
该方式的主要特点是, IDP 交给 Subject 的不是凭证,而是断言。
1 , Subject 访问 SP 的授权服务, SP 重定向 Subject 到 IDP 获取断言。
2 , IDP 会要求 Subject 提供能够证明它自己身份的手段 (Password , X.509 证书等 )
3 , Subject 向 IDP 提供了自己的帐号密码。
4 , IDP 验证密码之后,会重订向 Subject 到原来的 SP 。
5 , SP 校验 IDP 的断言 ( 注意, IDP 会对自己的断言签名, SP 信任 IDP 的证书,因此,通过校验签名,能够确信从 Subject 过来的断言确实来自 IDP 的断言 ) 。
6 ,如果签名正确, SP 将向 Subject 提供该服务。