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
。