我们是一家小公司,使用 Google Apps (Enterprise) 来满足电子邮件需求。非常喜欢它。我们内部使用的是 Windows AD (2003)。也没什么可抱怨的。
我希望获得 AD 和 Google Apps 之间的某种 SSO 方法,以便 AD 成为我的人们管理(并定期更改!)密码的唯一地方。
我以前看过谷歌的“tfm”,但我想我还是不太明白。有人这样做过吗?如果有,你愿意分享一下怎么做吗?能不能在不产生大量复杂性和费用的情况下做到这一点?
答案1
您可以使用 Google Apps 做几件事。
您可以设置一个SAML服务器连接到您的 AD 网络,然后设置 Google 以根据 SAML 服务器验证您的 Google Apps 访问权限。我们使用了一个名为simpleSAMLphp因为我们已经设置了运行 PHP 的服务器,并且我们有具备 PHP 技能的开发人员。单独使用 SAML 解决方案的缺点是您只能通过 Web 登录帐户。这意味着您无法通过 imap/pop 访问您的邮箱,也无法使用任何旧的 XMPP 客户端登录 Google Talk。
使用 SAML 不会自动在 Google Apps 域中创建帐户。您可能还需要一个可以同步帐户的工具,您可以使用Google 应用目录同步工具。这将允许您创建帐户,但默认情况下它仍然不会同步密码,因为 Windows 密码哈希不可逆,Google 无法对其执行任何操作。
可以使用类似密码香港拦截 AD 中的密码更改,然后以 Google 目录同步实用程序可用于设置 Google Apps 密码的格式(无盐 sha1)存储密码。但这确实增加了一点安全风险,因为 Google 只会通过其配置 API,并且要与 Google 同步,您基本上必须存储这些哈希值。如果您要使用此功能,则确保这些哈希值的安全非常重要。
嗯。你让我对 SAML 感到兴奋,直到谈到 imap/pop。这会杀死所有使用 Windows Mobile 和 Blackberry 客户端的人,不是吗?还有其他聪明的替代方案吗?
如果您愿意承担存储密码哈希的风险,那么您可以将 SSO 和目录同步结合在一起以获得一个正常工作的系统。
另一种选择是,有人可以开发一个内部网门户,您域中的用户可以在其中初始化他们的 Google 帐户并设置 Google 帐户的密码。我曾考虑开发类似的东西,但无法让我的同事同意这是可行的方法。
基本思路是,构建一个 Web 应用,
- 位于您的内部网中,并根据您的活动目录进行身份验证
- 具有一项功能,它将获取用户用于登录内部网站点的用户名和密码并从 AD 中获取所需的任何其他信息,然后使用 Google Provisioning API 添加/更新用户帐户。
构建该工具其实并不太难,我估计开发一些基本功能只需要 12-16 小时的开发时间。此解决方案的优点是它为您提供了 100% 的 Google Apps 功能,缺点是它给最终用户带来了一些不便。
答案2
我也希望看到对这个问题的更好的答案。
我玩过Google Apps 目录同步将 Google 用户与 Active Directory 用户同步。这看起来很棒,直到我读到 AD 的 LDAP 实现将密码保存在加密的二进制字段中,而 Google 的同步工具无法访问该字段。
谷歌的其他 SSO 解决方案似乎扭转了局面,Google 成为了权威凭证来源。我们对此不感兴趣;如果我们的互联网访问中断,我们的 LAN 上会发生什么?
因此,目前我最好的解决方案是使用包含用户名和密码的 Google Apps 电子表格,然后将其导出到 CSV,然后批量导入至 Google Apps。这不处理密码更改。到目前为止,我们最好的办法是教育我们的用户在 Windows 密码策略强制更改时将 Google 和 Windows 密码都更改为相同的新密码。
答案3
这是一个将哈希值存储在广告中的密码过滤器。http://code.google.com/p/sha1hexfltr/它安全地保存广告中的哈希值。无需 SSO,无需新服务器!
答案4
您可以使用 LemonLDAP::NG 来实现这一点。请参阅http://lemonldap-ng.org/documentation/latest/applications/googleapps