工作 SAML 应用程序 Google 的默认 RelayState

Default RelayState for Google for Work SAML App

我正在尝试将 BIME Analytics 配置为服务提供商 (SP),以将 Google 用作 SAML 身份提供商 (IdP)。

按照 https://support.google.com/a/answer/6087519?hl=en 中的说明,我能够执行 SP 发起的身份验证。这意味着如果我访问 https://.bime.io/portal 并单击 SAML 登录按钮,我将被重定向到 Google 登录页面,并且在输入我的 Google for Work 凭据后我可以访问我的 BIME 门户页面。

不幸的是,我无法让 IdP 发起的身份验证工作。也就是说,以 Gmail 为例,如果我打开应用程序启动器并单击我的 BIME SAML 应用程序的图标,它将带我进入 BIME 而不会出现任何身份验证问题,但随后我会收到 BIME 仪表板未找到错误。

BIME 支持人员能够确定这是因为我没有发送他们需要的 RelayState 参数值。当我在 BIME 中启动时,我在他们的网页上并且有一个隐藏的 RelayState 值被发送到 Google 以让它知道在我登录后将我发送到哪里。但是,当我在 Google,该值未设置。 BIME 支持能够在 Okta 中配置连接,因为 Okta 有一个 "Default RelayState" 字段,他们可以将值硬编码到其中。

对于 Google SAML 应用程序,我如何指定默认 RelayState 值以启用 IdP 发起的身份验证到 SAML 应用程序?

昨天我查看了 G Suite 中的 IdP SAML 设置页面,发现有一个可选的 "Start URL" 字段。

我还注意到 help documentation to configure pre-integrated SAML applications 中经常使用 "Start URL" 字段。

由于 IdP 响应的可配置部分是:

  • SAMLResponse With Assertion(包括 G Suite 配置页面中的 "Assertion Consumer Service URL" 和 "Entity ID" 字段)
  • RelayState 参数

我不得不猜测 "Start URL" 可能是保存 RelayState 参数的字段。考虑到 RelayState 是 SAML 集成的一个可选但重要且常用的部分,这很有意义。它还解释了为什么该字段是可选的,并且位于 ACS 和实体 ID 字段的正下方。

This Oracle blog post 引用 Start URL 字段并建议其用途之一是包含未经请求的 RelayState 值:

Optionally enter a Start URL for Google IdP Initiated SSO operations, where the user will click on the SAML Application partner at Google to be redirected to the Application at OAM: this would be the protected application URL, or unsolicited Relay State.

所以虽然我现在无法测试自己,但我认为可以肯定地说 "Start URL" 字段就是您要设置 RelayState 值的字段。

您要找的中继状态URL是

https://www.google.com/a/[DOMAIN]/ServiceLogin?continue=https://mail.google.com

更多信息here