From ebdc2603093a4b4e32b0642090c9cb365475b906 Mon Sep 17 00:00:00 2001 From: shimingxy Date: Sat, 7 Mar 2020 22:45:04 +0800 Subject: [PATCH] s --- docs/_includes/navigation.html | 3 +- docs/images/saml/saml1.png | Bin 0 -> 29721 bytes docs/images/saml/saml2.png | Bin 0 -> 47651 bytes docs/images/saml/saml3.png | Bin 0 -> 35449 bytes docs/protocols/saml.md | 82 +++++++++++++++++++++++++++++++++ 5 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 docs/images/saml/saml1.png create mode 100644 docs/images/saml/saml2.png create mode 100644 docs/images/saml/saml3.png create mode 100644 docs/protocols/saml.md diff --git a/docs/_includes/navigation.html b/docs/_includes/navigation.html index 6fd89f1c4..49047cdef 100644 --- a/docs/_includes/navigation.html +++ b/docs/_includes/navigation.html @@ -8,8 +8,9 @@
  • Download下载
  • diff --git a/docs/images/saml/saml1.png b/docs/images/saml/saml1.png new file mode 100644 index 0000000000000000000000000000000000000000..ae96f15ab4a2878baa90dbde13cc47f4d356d693 GIT binary patch literal 29721 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�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 literal 0 HcmV?d00001 diff --git a/docs/images/saml/saml3.png b/docs/images/saml/saml3.png new file mode 100644 index 0000000000000000000000000000000000000000..ed44704d685bcc450d10b254d3f71c1b5e612ef2 GIT binary patch literal 35449 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 ScCVx0*DYmrr2++$p#KJTIAgj1 literal 0 HcmV?d00001 diff --git a/docs/protocols/saml.md b/docs/protocols/saml.md new file mode 100644 index 000000000..04b3bbfd6 --- /dev/null +++ b/docs/protocols/saml.md @@ -0,0 +1,82 @@ +

    1、SAML 介绍

    + +
    +

    SAML即安全断言标记语言,英文全称是Security Assertion Markup Language。它是一个基于XML的标准,用于在不同的安全域(security domain)之间用户身份验证和授权数据交换。在SAML标准定义了身份提供者(identity provider)和服务提供者(service provider),这两者构成了前面所说的不同的安全域。 SAML是OASIS组织安全服务技术委员会(Security Services Technical Committee)的产品。官方技术说明可参看OASIS Security Services (SAML) TC.

    + +

    使用SAML,在线服务供应商可以联系一个独立的网络身份认证提供者,谁是试图访问受保护的内容的用户进行身份验证。

    +

    联邦是指两个或更多可信的业务合作伙伴组成的团体,其遵照的业务和技术协议允许来自联邦合作伙伴(成员公司)的用户以一种安全可靠的方式,无缝地访问另一家合作伙伴的资源。在联邦业务模型中(其中,服务是联邦化的,或可以与业务合作伙伴共享),根据有关实体间达成的协议,一家公司的用户的身份将被转换,以合法访问另一家公司的Web站点,而另一家公司无需了解该用户的原始身份。

    + +

    + IDP认证中心提供了一个基于SAML的单点登录(SSO)服务,作为身份提供者(Identity provider),控制用户名、密码和其他信息,用于识别,身份验证和授权用户的Web应用程序。 +

    +

    备注:SAML应用集成需完成应用集成申请,详见SAML相关内容。

    +

    通过SAML实现IDP 与其他合作伙伴的联邦身份认证。

    +
    +
    +
    流程说明图
    + < +
    +

    SAML实现联邦身份认证各方职责

    + + + + + + + + + + + + + + + + + + + +
    IDP认证中心(Identity Provider/IDP)合作伙伴(Service Provider/SP)
    用户身份认证安全断言判定
    联邦身份安全断言联邦身份维护
    用户账号管理服务提供和访问控制
    +
    +
    +

    IDP和SP预先完成证书的互信配置,SAML认证基于断言,断言基于证书的加密,传递过程是安全的,只有证书的持有者才能对断言进行解析

    +

    重要注意:SAML SSO解决方案仅适用于Web应用程序.

    + +
    +
    Tips:
    +

    + 如果您想对SAML 2.0开放标准进行扩展阅读,请参看:官方技术说明SAML标准(英文) | SAML维基百科(中文) +

    +

    2、SP-Init SSO流程

    +< + +用户试图访问IDP的合作伙伴应用。 + +合作伙伴应用生成一个SAML身份验证请求。SAML请求编码并嵌入到URL IDP的SSO服务。RelayState参数包含编码的合作伙伴应用程序,用户尝试访问的URL也被嵌入在SSO URL。这的RelayState参数,就是要一个不透明的标识符,不作任何修改或检查传回的。 + +合作伙伴发送重定向到用户的浏览器。重定向URL编码SAML身份验证请求的,应提交到IDP的SSO服务。 + +IDP的SAML请求进行解码,并提取两个谷歌的断言消费服务(ACS)和用户的目标URL(RelayState参数)的URL。 + +IDP的用户进行身份验证。IDP可以通过要求有效的登录凭据,或通过检查有效的会话对用户进行身份验证。 + +IDP生成一个SAML响应,其中包含身份验证的用户的用户名。按照SAML 2.0规范,这种反应是公共和私人合作伙伴的DSA / RSA密钥数字签名的 + +IDP SAML响应和RelayState参数进行编码,并将该信息返回到用户的浏览器。IDP提供了一种机制,使浏览器可以转发信息到合作伙伴的ACS。 + +合作伙伴的ACS使用IDP的公钥验证SAML响应。如果成功验证的响应,ACS将用户重定向的目标URL。 + +用户被重定向的目标URL,并记录在合作伙伴应用程序。 + +

    3、IDP-Init SSO流程

    +< + +IDP的用户进行身份验证。IDP可以通过要求有效的登录凭据,或通过检查有效的会话对用户进行身份验证。 + +IDP生成一个SAML响应,其中包含身份验证的用户的用户名。按照SAML 2.0规范,这种反应是公共和私人合作伙伴的DSA / RSA密钥数字签名的。 + +IDP SAML响应和RelayState参数进行编码,并将该信息返回到用户的浏览器。IDP提供了一种机制,使浏览器可以转发信息到合作伙伴的ACS。 + +合作伙伴的ACS使用IDP的公钥验证SAML响应。如果成功验证的响应,ACS将用户重定向的目标URL。 + +用户被重定向的目标URL,并记录在合作伙伴应用程序。 \ No newline at end of file