【问题标题】:Active Directory authentication for SaaS productSaaS 产品的 Active Directory 身份验证
【发布时间】:2011-06-07 13:01:56
【问题描述】:

在对允许 SaaS 产品针对租户的内部 Active Directory(或其他 LDAP)服务器对用户进行身份验证的最佳方法提供一些理论帮助之后。

应用程序是托管的,但要求租户可以将身份验证委托给他们现有的用户管理提供程序,例如 AD 或 OpenLDAP 等。Microsoft Online 的托管交换等工具支持企业 AD 同步。

假设客户端不想将端口 389 转发到他们的域控制器,那么最好的方法是什么?

【问题讨论】:

标签: authentication active-directory ldap saas


【解决方案1】:

在进行一些研究并与一些负责管理此问题的系统管理员交谈后,我们确定了两个选项,这应该可以满足大多数人的需求。我会在这里为那些也对结果感兴趣的人描述它们。

安装在组织的 DMZ 中的身份验证服务

如果用户希望通过本地 Active Directory 服务器使用身份验证,他们将需要在其 DMZ 中安装代理并为其打开端口 443。我们的服务将被配置为命中此服务以执行身份验证。

此服务将位于 DMZ 中并接收来自 SaaS 应用程序的身份验证请求。该服务将尝试使用这些凭据绑定到活动目录并返回一个状态以指示成功或失败。

在这种情况下,应用程序的基于表单的身份验证不会改变,用户不会意识到幕后的身份验证。

OpenId

与第一种方法类似,将在客户端的 DMZ 中安装一个服务,并打开 443 端口。这将是一个 OpenId 提供者。

SaaS 应用程序将是一个 OpenId 消费者(已经用于 Facebook、Twitter、Google 等登录)。

当用户希望登录时,将显示 OpenId 提供程序,要求他们输入用户名和密码。此登录屏幕将从客户端的 DMZ 提供。用户永远不会在 SaaS 应用程序中输入他们的用户名或密码。

在这种情况下,现有的基于表单的身份验证将替换为来自客户端 DNZ 中服务的 OpenId 身份验证。

我们正在调查的第三个选项是 Active Directory 联合服务,但它是 Active Directory 专有的。其他两种解决方案支持互联网上任何基于 LDAP 的身份验证。

【讨论】:

  • 这个信息真的很有帮助。我很好奇您是否最终实施了这些解决方案。如果您能分享有关 SaaS 的 AD 身份验证的任何经验教训,那就太好了。
【解决方案2】:

也许这可能会有所帮助……

这家供应商Stormpath 提供的服务包括:用户身份验证、用户帐户管理以及连接到客户的本地目录。

【讨论】:

    【解决方案3】:

    到客户用户目录的 LDAPS 连接怎么样?他们可以将其关闭,以便只有您的服务器在他们担心它是公开的时才能访问。因为它是 SSL,所以端到端是安全的。您只需要他们颁发的 CA 的证书(如果它不是公共证书)。我努力让这个在 DMZ 的内部网络项目中工作,并且在线上真的缺乏任何指南。所以当我得到它的工作时,我写了一个:

    http://pcloadletter.co.uk/2011/06/27/active-directory-authentication-using-ldaps/

    【讨论】:

    • 感谢您抽出宝贵时间编写本指南。
    【解决方案4】:

    最好的办法是为您的 SaaS 应用程序实施 SAML 身份验证,然后向 Okta 或 OneLogin 等身份提供商注册。完成后,您还可以将其与 ADFS 连接,以通过 Active Directory 为您的 Web 应用程序提供单点登录。

    我自己只是在做这项研究,这就是我遇到的,一旦实施完成会有更多更新。希望这能给你足够的关键字来做另一个谷歌搜索

    【讨论】:

    • 谢谢礼萨。自 4 月以来是否有进一步的更新?我也在研究同样的事情。
    【解决方案5】:

    我的理解是有三种可能的解决方案:

    1. 在域控制器上安装一些东西以捕获所有用户更改(添加、删除、密码更改)并将更新发送到远程服务器。不幸的是,网站无法知道初始用户密码 - 只有更改后的新密码。

    2. 为 Web 服务器提供访问权限,以通过 LDAP/WIF/ADFS 连接到您的域控制器。这可能意味着在公司的防火墙中打开传入端口以允许特定 IP。

    3. 否则,绕过用户名/密码并改用email-based authentication。用户只需每 3-6 个月通过电子邮件对每台设备进行一次身份验证。

    我必须开始为即将到来的项目实施此功能,并且为了简单起见,我非常倾向于选项 #3。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-11
      相关资源
      最近更新 更多