1.2. 如何使用单点登录进行 SAML v2 工作
JBoss EAP 安全架构指南介绍了基于浏览器的单点登录 (使用 SAML 和多个红帽 JBoss 企业应用平台实例)以及多个基于浏览器的单点登录指南,以及使用基于浏览器的单点登录和 SAML 部分的多应用程序。本节更加深入地阐述 SAML 配置集和与基于浏览器的单点登录与 SAML v2 相关的绑定。
1.2.1. Web 浏览器单点登录配置文件 复制链接链接已复制到粘贴板!
Web 浏览器单点登录 配置文件以浏览器代理的形式指定 IDP、SP 和主体,处理基于浏览器的单点登录。SP 和 IDP 都具有多个绑定,每个绑定都可以在 Web 浏览器单点登录配置文件中使用,从而允许许多可能的流。另外,这个配置集还支持从 IDP 或 SP 启动的消息流。此配置集还支持 IDP 将 SAML 断言推送到 SP 或从 IDP 中拉取断言的 SP。从 SP 或 IDP 开始的流程将在 JBoss EAP 安全架构指南 的高级别加以说明。从 IDP 推送的 SAML 断言利用 HTTP POST 消息或 HTTP 重定向。由 SP 拉取的 SAML 断言涉及将工件发送到接收方,然后被解引用来获取断言。
Web 浏览器单点登录配置集的基本流如下:
对 SP 的主要 HTTP 请求.
主体首先尝试使用 HTTP 用户代理(如浏览器)在 SP 访问受保护的资源。如果主体已签发了具有有效安全性上下文的 SAML 令牌,SP 将允许或拒绝主体。这是最后一步。否则,SP 将尝试查找用于身份验证请求的 IDP。
SP 确定 IDP.
SP 查找支持 SP 的首选绑定的 IDP 及其端点。这允许 SP 向 IDP 发送身份验证请求。此过程的具体方式可能因实施而异。
使用主体从 SP 向 IDP 发出身份验证请求.
SP 确定 IDP 位置和端点后,SP 以
<AuthnRequest>消息的形式发出身份验证请求,该消息将由用户代理向 IDP 主体发送。HTTP 重定向、HTTPPOST或 HTTP 工件 SAML 绑定可用于使用用户代理将消息传输到 IDP。IDP 标识主体.
身份验证请求通过主体发送到 IDP 后,主体将由 IDP 标识。识别方法不是通过 Web 浏览器单点配置文件具体定义,可以通过多种方式完成,例如使用 FORM 进行身份验证,
使用现有的会话信息、kerberos 身份验证等。IDP 问题响应 SP.
确定了主体后,IDP 以
<Response>信息的形式发出一个响应,以返回 SP,以便使用用户代理授予或拒绝主体访问。此消息将至少包含一个身份验证断言,也可用于指示错误。HTTPPOST或 HTTP 工件可用于传输此消息,但由于大多数用户代理的 URL 长度限制而无法使用 HTTP 重定向。如果用户代理发起基于 IDP 的流(例如,尝试直接访问 IDP 而不是 SP),则此过程从这一步开始。如果成功,HTTPPOST或 HTTP Artifact 将发送到一个位置,该位置在 IDP 中预先配置。SP 允许或拒绝访问主体.
SP 收到 Response 后,可以通过创建安全上下文或拒绝访问或执行自己的错误处理,向主体授予所请求资源的访问权限。
JBoss EAP 不支持 SAML 工件绑定。
HTTP 重定向绑定利用 HTTP GET 请求 和 URL 查询参数来传输协议消息。以这种方式发送的消息也在接收方发送和解码前 URL 和 Base-64 编码。HTTP POST 绑定使用表单数据发送消息,并在消息上执行 base-64 编码/decode。SP 和 IDP 都可以使用重定向或 POST 绑定来传输和接收消息。由于某些情况下 URL 长度的限制,通常在传递短消息时使用 HTTP 重定向,并在传递较长的消息时使用 HTTP POST。