介绍 SAML

介绍 SAML

135388
Created On 09/25/18 19:20 PM - Last Modified 03/26/21 16:46 PM


Resolution


表的内容

 

SAML 概述

 

 

 

SAML 概述

 

安全断言标记语言 2.0 SAML (2.0)是 XML- 安全域之间交换身份验证和授权数据的基于标准。 SAML 主要解决企业中的两个要求:多个实体的基于 Web 的单个登录和联邦身份。 单点登录被通过共享多个组织和应用程序之间的身份信息。 联合的身份允许服务提供商同意路上来指单个用户,即使该用户众所周知的不同的伪装中的提供程序集。

 

解决方案的组件 SAML SSO

 

通常,有三个实体参与 SAML 交易:

  • 校长 (用户)
  • 服务提供商 ( SP )
  • 身份提供者 (IDP)

 

服务提供商通常是应用程序或服务,校长已请求访问,身份标识提供程序插入到标识的实体存储,进行用户的凭据。 SAML 没有定义 IdP 可用于验证用户的技术 - 相反,它侧重于定义 A 和 IdP 之间的信息交换 SP ,以指示委托人的身份验证和授权状态。 这允许 IDP 自由使用额外的身份验证技术(2FA/, MFA 基于证书的身份验证...)来对用户进行身份验证。 SAML 消息 XML 用作数据交换格式,并且通过 HTTP SSL TLS /() 运输时具有保护这些消息的强烈要求 HTTPS 。

 

SAML 断言 包含有关身份验证和用户的信息。 断言包含信息,接收方可以使用访问控制决策。 有 3 种类型的断言语句:

 

  • 身份验证声明 包含用于确保用户身份的时间和方法等信息。

 

  • 属性语句 包含有关用户的信息,如用户名、电话号码、地址。。。等。

 

  • 授权决策声明 确认用户是否有权访问指定资源。

 

SAML 使用包含断言的安全令牌在 SAML 权威机构(即身份提供商和消费者,即服务提供商)之间传递有关委托人( SAML 通常是最终用户)的信息。 例如,身份标识提供程序断言此用户已经过身份验证并给出了关联的属性。 在 SAML ,身份提供者也被称为 SAML 当局断言方。 服务提供商也被称为 "依赖方 ",因为它们"依赖"身份提供商(断言方)提供的信息。 身份提供者将断言转发给 断言消费者服务 ACS URL (),此服务验证了断言,以确保最终用户是否有权访问应用程序和其他资源。 ACS URL 很重要,因为这是 URL 服务提供商接收和使用断言的位置。

 

可以传递消息的较低级别通信或消息传递协议(如 HTTP 或 SOAP ) SAML 由绑定定义。 SAML 绑定 是指示IdP如何通信的端点上的挂钩 SP 。 HTTP作为运输工具,典型的绑定包括 REDIRECT HTTP (302) 和 POST HTTP POST ()。 HTTP 重定向绑定:定义如何 SAML 使用 HTTP 重定向消息(302 状态代码响应)运输协议消息。  SAML 通过重定向传输的请求或响应 HTTP 分别具有 SAML 查询或 SAML 回复查询字符串参数。 在发送之前,消息按该顺序放气(无标题和检查),基础64编码和 URL- 编码。 在收到后,情况正好相反,要恢复原始消息。 SP 和境内流离失所者均可使用重定向或绑定传输和接收消息 POST 。 由于 URL 某些情况下长度的限制, HTTP 在传递短消息时通常使用重定向,在 HTTP POST 传递较长消息时使用重定向。

 

HTTP POST 绑定: 定义如何在 SAML 表单控制的基本 64 编码内容中运输协议消息 HTML 。

帕洛阿尔托网络 SP 端点只能接受 SAML 消息时,运输使用 HTTP POST 。

另一个 SAML 需要注意的术语是 元数据。 它携带有关IdP和.。的模式和终点信息 SP 。 每个 IDP 和每个 IDP 都 SP 需要有自己的元数据。 国内流离失所者和 SPs 通常使用元数据相互进行注册。 通常,元数据包含信息,如 SSO URL 发行人姓名和包含 PKI "公共"密钥的证书。 例如, SP 可以使用此信息来信任来自 IDP 的断言,反之亦然。 SAML 2.0 提供了定义明确、可互操作的元数据格式,实体可以利用该格式启动信任过程。 IDP 提供的元数据 SP 包含有关 IDP 的信息(如实体 ID SSO SLO URL /。。。等),反之亦然。

 

 

使用案例

 

SSO 对于俘虏门户:

当用户尝试访问基于特定资源的资源时,客户希望使用我们的能力启动一个自封门户 HTTP- 。 为了缓解用户多次登录的需求,客户依靠 SAML- 基于, SSO 其中,用户登录一次与他们的IdP,然后允许访问任何服务提供商,注册在同一IDP,只要用户通过任何必要的授权检查。 此外, ID 如果用户 IP /用户映射已过期,这些客户还使用自营门户透明地识别用户(用户-)。 圈养的门户网站也可以用于对已知的用户试图访问受保护的资源进行身份验证。 此功能为管理员,提供所需的级别的安全保障,提供了一个简单、 无忧的界面给最终用户。 在组织中,多个应用程序可以使用相同的国内流离失所者进行身份验证的用户。 如果应用程序正在使用相同的 SAML IdP 来验证用户,用户在访问这些应用程序并进行身份验证时将获得一致的体验。

 

SSO 用于 GlobalProtect :

客户希望使用 SAML 基于 SSO GlobalProtect 。 SAML 允许这些企业使用单一架构 SSO 用于所有应用程序,以及所有设备平台上的所有用户。 由于 GlobalProtect 运行在多个平台上,并且 SAML 由于是平台不可知论者, SAML 因此是单个登录的完美选择。 GP 网关和门户将作为 SAML 服务提供商,将身份断言过程推迟到第三方 SAML 身份提供商。

 

SSO Firewall为 Panorama GUI /:

Firewall Panorama管理员无需 GUI 手动登录即可访问管理员。 使授权管理员能够直接访问我们已 GUI 部署 SAML 为其标准的企业中的我们, SSO 可减少登录所需的用户努力,并 firewall Panorama 允许/依靠集中身份验证引擎进行身份识别。

 

 

 

SAML 逻辑流

 

在以下示例中,我们将重点介绍使用圈养门户用户的身份验证流程。 它突出了用户、资源 firewall (服务提供商)和 IdP 之间的交互。 其他 SP 端点(管理员 UI 、 GlobalProtect 门户/网关、 GlobalProtect 无客户 SSL VPN 端)的认证流类似

 

 http sequence.png身份验证流

 

  1. 用户向资源提出请求(无论是在服务提供商(如 Firewall / Panorama GUI 或在另一个 Web 服务器上),例如bing.com)
  2. 如果对资源的请求不是 Firewall / Panorama GUI 如果存在身份验证 Policy 规则,则执行该请求并将用户重定向到自封门户 URL 。
  3. 用户的浏览器访问俘虏门户 URL
  4. 服务提供商创建一个奥森要求对象,该对象指示 SP 用户如何验证。 Authn查询被编码,并通过 HTTP POST HTTP 用户的浏览器通过或重定向方法发送到身份提供商。 关于 SAML 奥森要求、响应等的详细信息。。。将在文件的后半部分解释。
  5. 如果国内流离失所者以前通过验证的用户,国内流离失所者发送 cookie 标识用户。 此 cookie 存储在浏览器中。 在延续到上一步 (步骤 4),如果用户以前已经与国内流离失所者,以及 AuthnRequest,身份验证 cookie 存储在浏览器中也发送到用户的浏览器通过 IdP。 国内流离失所者检查,是否它是一个有效的 cookie。 如果不存在有效的 cookie,或者如果 cookie 不存在,国内流离失所者对用户进行身份验证。 国内流离失所者将呈现到浏览器登录请求和基于配置的身份验证机制,将身份验证的用户。 例如,可以配置基于窗体的简单身份验证,还可以 LDAP 查询服务器以执行用户查找。 登录请求和在浏览器中,将提出了一种用户,用户输入登录凭据并将其发布回国内流离失所者。 IdP 将登录凭据提交给 LDAP 服务器。 LDAP 服务器检查凭据并将验证状态发送回IdP。
  6. IdP 创建 SAML 一个断言,用其私钥签名,并通过 HTTP POST 包括断言在内的方法将用户重定向回服务提供商 SAML 。 使用断言中提供的信息, SP 用户将做出适当的决定,例如为用户提供对受保护资源的访问权限。
  7. 服务提供商验证 SAML XML IdP 提供的断言和签名。 它通过用户名属性从断言中提取 SAML 用户名,并根据允许列表验证用户群和用户群。 如果访问检查通行证,资源然后返回到浏览器。 浏览器完成与资源(如bing.com)的连接

 

TOOLS

 

有一些 DevTool 可以加载到浏览器(如 Chrome),可以帮助调试 SAML 消息。 一些受欢迎的 chrome 扩展:

  • SAML 铬面板
  • SAML 开发凳子扩展

 saml devtools extension.pngSAML 开发图扩展

 

devtools output.png

 

 

SAML 消息

 

SAML 身份验证请求

 

奥森要求 是 SAML SP 发送给 Idp 以启动身份验证的消息。 此消息是 Base64 编码,然后发送到国内流离失所者。 与 Base64 编码的 SAML 奥森请求一起,将中继状态令牌发送给 IDP。 中继状态 令牌是引用服务提供商维护的状态信息的不透明标识符。 此令牌回赞同其响应消息中的流离失所者。

 

 

AuthnRequest.pngSAML 奥森雷奎斯特

上面的 AuthnRequest 中的重要元素是:

  • 断言消费者服务 URL
  • 目的地 URL
  • (问题即时) 请求的时间
  • ID 请求
  • 颁发者

 

断言消费者服务 URL 是服务提供商的地址,在认证完成后,IdP 将发送响应消息。

 

目的地 URL 由 IdP 检查,以验证身份验证请求是否实际针对它。 这不仅有助于防止恶意的请求转发给收件人。

 

IdP 会检查请求的时间,以验证提出的请求是否太旧。

ID 请求是 生成的随机数,重要的是它与请求的响应匹配。

 

发行人 识别生成请求消息的实体。 通常,每个请求和响应都包含 ID 发件人的实体。

 

其他需要注意的内容如下:

 

  • 协议绑定
  • 签名
  • 摘要值
  • X509 证书

 

协议绑定 是 URI 标识 SAML 返回响应消息时要使用的绑定协议的参考。

 

签名文摘值 用于确保请求和响应消息的消息完整性。 此值将在接收端使用相同的 文摘方法 (例如 SHA1)进行交叉检查和验证,以确保消息的完整性

 

X509证书:在 SAML , SP 与IdP交换公证书钥匙彼此。 证书然后得到安装和显式信任。 建立信任的关键的起源,可以使用证书颁发机构。 AuthnRequest 或响应消息中包含的公钥是指示合作伙伴具有相应私钥的实体签署的消息。 它只是确定关键属于另一方。

 

: SAML 奥森要求 ( FW GUI 和铬开发工具)

 

SAML 奥森要求.pngSAML 奥森雷奎斯特

: 中继状态

 

RelayState.pngRelayState

 

SAML 身份验证响应

 

IdP 对用户进行身份验证后,会创建 Base64 编码 SAML 响应并将其转发给服务提供商。

作为对奥森要求的回应,IDP 发送到 SP 、状态和安全断言。 用户成功通过身份验证的国内流离失所者的情况下,响应会包含成功状态和断言。 如有其他故障,响应将包含状态指示失效的原因,它不会包含任何断言。 IDP 对用户进行身份验证, SP 并且不参与此过程。 SP 只需接收身份验证的状态。

 

SAML 响应.pngSAML 响应 

 

《回应》中看到的大部分内容 SAML 与奥森要求下讨论的内容相似。 下面讨论的那些不包括在 AuthnRequest。

 

  • 状态
  • Name ID
  • 会议索引
  • 属性声明和属性值
  • 验证语句

 

状态 元素描述用户是否成功身份验证

 

NameID 是由国内流离失所者来管理生命周期的后成功的身份验证的用户/主体安全会话创建一个唯一的标识符 (在这种情况下,国内流离失所者被认为是会议管理局)

 

会话索引是 IdP 创建的唯一标识符,以跟踪 SP 用户/委托人正在执行的标识符 SAML SSO (在这种情况下, SP 被视为会话参与者)

 

属性对帐 包含与用户关联的属性。 在上面的例子中,用户的萨姆帐户名正在由IdP发送到 SP 。

 

身份验证声明 包含用于确保用户身份的时间和方法等信息

 

: SAML 响应 ( FW GUI 和铬开发工具)

 

SAML 响应.pngSAML响应: 重新铺设状态

 

RelayState2.pngRelayState

 

SAML 注销请求

 

当用户注销时 Firewall GUI ,服务提供商创建一个 SAML 注销请求以终止用户会话。 SLO请求已发送到 IDP。 名称ID和会话索引被IdP使用 SP 并终止用户会话。 理想情况下,IdP 会 SLO SP 向用户已登录的所有其他应用程序发送请求。 因此,当用户从一个应用程序注销,国内流离失所者试图登录用户从所有其他应用程序。

 

SAML 注销要求.pngSAML 注销要求

 

如果重定向被选为 SAML HTTP 绑定 SLO ,则您将看到 SAML SP 在请求中签名 URL 的注销 GET 请求的签名

 

: SAML 注销要求 ( FW GUI 和铬开发工具)

 

SAML 注销要求.pngSAML 注销要求

SAML 注销响应

 

对于 SLO IdP 发送给 IdP 的请求 SP ,IdP 会发送一个注销响应,指示成功或失败。 响应将签署的国内流离失所者。 在 SP 注销用户之前进行必要的清理。 SP将清除它为用户准备的会话 Cookie 。 下次,当用户尝试登录时,整个 SAML 过程会重新启动。 SP还可以根据会话怠速超时为用户清除会话 Cookie, SAML 并在用户尝试再次访问应用程序时重新启动身份验证过程。

 

SAML 注销响应.pngSAML 注销响应

 

: SAML 注销响应 ( FW GUI 和铬开发工具)

 

SAML 注销响应.pngSAML 注销响应

 

IDP元数据 XML

 

IDP 之间共享信任,元 SP 数据可以轻松促进。

在 SP ( Firewall 或 Panorama ) IDP 服务器配置文件中,可以使用提供的 IdP 元数据 XML 文件构建。 元数据中提供的信息在 Panaroma 或配置中解析并保存 Firewall 。 国内流离失所者的元数据可以包含以下信息:

 

  • IDP 实体 ID
  • 伊德普 SSO URL
  • SSO 绑定格式( SAML HTTP 绑定 POST –/重定向)
  • 伊德普 SLO URL
  • SLO 绑定格式( SAML HTTP 绑定 POST –/重定向)
  • SAML 属性
    • 用户名属性名称
    • 用户组属性名称
    • 管理员角色属性名称
    • 访问域属性名称
  • 国内流离失所者签名证书
  • 国内流离失所者 WantAuthnRequestsSigned 标志

 EntityDescriptor.png实体描述

 

SP 元 XML

 

SP 元数据可以从 SAML 身份验证配置文件导出 Panorama 。 Firewall如果 IdP 提供了上传 SP 满足数据选项则导出 SP 的元数据可以上传到 IdP 中, SAML 并且应用程序可以轻松创建。 如前所述,元数据可以被用来引导 信任过程。

 

元 SP 数据可能包含以下内容:

 

  • ACS URL
  • ACS 绑定格式
  • SLO URL
  • SLO 绑定格式
  • 实体 ID
  • 签名证书

 

EntityDescriptor2.pngEntityDescriptor



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000ClVvCAK&lang=zh_CN&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language