配置Okta以在我们的SP应用程序和IdP

时间:2016-02-05 20:51:12

标签: authentication saml-2.0 federated-identity okta

我们是一家服务提供商,其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 Discovery。

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

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

  2. Okta和基础IdP做了认证用户和验证身份验证所需的一切

  3. 我们的应用程序获得一个响应(通过HTTP-POST)到我们的ACS终端验证用户,由Okta签名

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

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

    我们如何配置Okta以便我们的用例可用?理想情况下,我们希望Okta充当中间人或调解员,检查并传递SAML请求/断言。具体来说,我们不需要对这些用户进行必要的Okta用户认证;我们只需要Okta断言用户就是他们说他们是基于潜在的IdP断言。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

RelayState是SAML协议的参数,用于标识用户登录并定向后将访问的特定资源。通常,一旦应用程序授予了身份验证并使用身份验证将用户重定向到正确的页面,这就是登录页面。

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