6

我们是一个服务提供商,我们的应用启用了 SAML,以允许 IdP 为我们验证用户身份。确保每个人都在同一页面上

  • 身份提供者 (IdP) 是一个应用程序,其工作是对用户进行身份验证
  • 服务提供商 (SP) 是一个终端应用程序,它将身份和身份验证联合到 IdP
  • SAML 是一种协议,允许 IdP 向 SP 做出可信赖的身份断言。我们正在使用 SAML 2.0 ( http://en.wikipedia.org/wiki/SAML_2.0 )

此处有关联合身份的更多信息:http: //developer.okta.com/docs/guides/saml_guidance.html

我们目前仅将 Okta 用作 IdP,但遇到了需要与单独的 IdP 集成的情况。我们希望我们的应用程序只与 Okta 通信,并让 Okta 处理与这个单独的 IdP 通信并验证他们的断言。由于我们的特定用例,我们的应用程序知道应该使用什么底层 IdP,因此不需要 IdP 发现。

我们想配置 Okta,使身份验证流程如下:

  1. 我们的应用程序将用户重定向到 Okta 中的端点,指示使用底层 IdP 进行身份验证

  2. Okta 和底层 IdP 执行任何必要的操作来对用户进行身份验证并验证身份验证

  3. 我们的应用程序(通过 HTTP-POST)向我们的 ACS 端点获取单个响应,以验证用户,由 Okta 签名

从最终用户的角度来看,他们导航到 service-provider.com,通过 Okta 重定向到 under-idp.com,执行必要的身份验证,然后重定向回 service-provider.com。最终用户不知道中间的 Okta 层,除了在重定向期间短暂出现在浏览器地址栏中的 Okta URL 可能例外。

到目前为止,我们已经能够在 Okta 实例中设置入站 SAML,以便用户可以通过底层 IdP 在 Okta 中进行身份验证。我们使用 SAMLRequest 将我们的应用程序重定向到入站 SAML 配置页面中给出的端点,但这会将用户带到 Okta 仪表板,因为该链接仅用于验证 Okta 中的用户,而不是用于验证使用 Okta 的 SP 的用户。查看我们的相关配置:

我们如何配置 Okta 以使我们的用例成为可能?理想情况下,我们希望 Okta 充当中间人或调解人,检查和传递 SAML 请求/断言。具体来说,我们不一定需要这些用户是经过身份验证的 Okta 用户;我们只需要 Okta 根据底层 IdP 的断言来断言用户就是他们所说的那个人。

4

2 回答 2

1

听起来您需要 Okta 在今年晚些时候的路线图中提供的 IdP 发现功能,以及他们的入站 SAML 设置以及与其他 IdP 的关系。我相信可以通过自定义登录页面来实现这一点。他们已经提到通过专业服务来做到这一点,但是当他们将 IdP 发现内置到平台中时,我个人感觉会好很多。

于 2016-05-06T15:31:02.073 回答
0

RelayState 是 SAML 协议的一个参数,用于标识用户在登录并定向到之后将访问的特定资源。通常这是一个登陆页面,一旦授权被授予并被应用程序用来将用户重定向到正确的页面。

Okta 支持此流,使用入站 SAML 将下游 IDP 链接到您的流。Okta 在您需要在 Okta 上配置的规则集中执行用户发现。在 Okta IDP 上,创建了一个 SAML IDP Security-->Identity Providers 并添加一个 SAML IDP。提供下游 IDP 的登录 URL。然后为 Okta IDP 添加路由规则并过滤 IP、设备、应用程序、目录属性或组,以使用 Okta 中创建的 IDP。然后在下游 IDP 上,您必须创建一个 SAML 应用程序,它将断言返回到 SP 端点。Okta 不支持 SAML 深层链接,因此您必须在初始 SAML 请求中传递 RelayState,以便下游 IDP 可以将其交给应用程序,该应用程序使用其值调用 HTTP 302 重定向。

于 2020-02-13T22:15:03.323 回答