通过与本地 AD 集成为 AWS 上的应用程序启用 SSO

Enable SSO for application on AWS by integrating with on-premise AD

对于部署在 AWS 上的报告应用程序,需要为用户启用 SSO 才能访问它 -

  1. 用户只能从公司网络内的办公室 PC 访问该应用程序。
  2. 应用端点受 API 网关保护,只允许从公司内部网络访问。
  3. 一旦用户点击报告应用程序的URL,应用程序应使用企业 AD 对登录用户进行身份验证,以确保登录用户是有效用户并且他们属于更正允许访问应用程序的 AD 组。
  4. 如果身份验证和授权检查通过,则应用程序应允许用户访问,否则会提示登录页面以手动输入凭据。

你能告诉我什么是最好的设置方法吗?我们在公司基础设施上部署了 ADFS(不确定版本),所以想知道我们是否可以使用它或依赖 Windows Kerberos 身份验证来获取令牌以允许用户访问。 什么是更好的方法,或者更重要的是什么可以更快地设置。总体上对 SSO 和 ADFS 完全陌生,非常感谢您的回复。

谢谢! 劳纳克

我建议您使用 ADFS,因为与 Kerberos 相比,将 Web 应用程序与 ADFS 集成要容易得多。

Kerberos 可能比较棘手。我看到您提到报告应用程序只能在公司的内部网络中使用,但您可能仍然会遇到 Kerberos 的问题,因为它需要在最终用户机器上设置特定的浏览器。在 Windows 上,您必须确保某些 IE 设置:

  • IE -> Internet 选项 -> 安全 -> 本地 Intranet -> 自定义级别 -> 确保你有 “仅在 Intranet 区域自动登录” 被选中。
  • IE -> Internet 选项 > 高级 -> 确保 “启用集成 Windows 身份验证” 已开启
  • 您很可能还需要将报告应用程序 URL 添加到每个用户 PC 上的内联网站点和受信任站点列表中(如果您为应用程序使用自定义域名,即不是您域中的本地服务器名称)
  • 除IE之外的其他浏览器可能需要不同的设置,您可以阅读more details here

我认为使用 AD 组也有点复杂,因为您只能从 Kerberos 令牌获取用户名。然后,您将不得不直接对 AD 进行额外调用以查找用户组。使用 ADFS,您可以直接从令牌中获取组(如声明的那样)。

这是一本关于如何将您的网络应用程序与 ADFS 集成的好手册:https://auth0.com/docs/connections/enterprise/adfs