0

我们公司有一个仅供我们员工内部使用的网络应用程序。我们还有 Google Apps 专业版。我们希望这样做,以便我们的员工可以使用他们已经拥有的 Google Apps 帐户登录我们的私人网络应用程序。

要求:我们要显示我们自己的登录表单。我们不想通过互联网以纯文本形式传递电子邮件/密码。

我们应该使用哪种身份验证机制来实现这一点?

注意:我们的应用程序是使用 Zend Framework 用 PHP 编写的(如果重要的话)。

4

3 回答 3

0

我会研究 OpenID 和您的域用户的某种组合(即只让 domain.com 上的用户可以登录)。

谷歌 API

他们还有 PHP 和其他语言的库,您可以利用它们来实现这一点。

编辑:

更多信息

于 2010-06-29T22:37:03.577 回答
0

在集成 Google Apps 和内部使用的私有系统时,我们只有两种选择。

  1. 使用谷歌作为认证中心。修改私有系统以在 Google 的服务器上进行身份验证。我们可以使用 OpenID 或 AuthSub。查看http://code.google.com/apis/accounts/docs/OpenID.htmlhttp://code.google.com/apis/accounts/docs/AuthSub.html了解更多信息。
  2. 使用私有系统作为认证中心。在这种情况下,我们必须在私有服务器中实现 SAML 协议并配置 Google Apps 的 SSO 设置。查看http://code.google.com/googleapps/domain/sso/saml_reference_implementation.html了解更多信息。

使用第一种方法更容易完成 SSO,因为那里已经有很多 OpenID 库。但是,正如您在要求中所述,您想使用自己的登录表单。所以我想你必须使用第二种方法。

顺便说一句,如果您的私有系统必须从 Google 获取或设置信息,您可能需要使用 OAuth 进行授权。有关详细信息,请参阅http://code.google.com/apis/accounts/docs/OAuth.html

于 2010-07-15T11:14:01.273 回答
0

使用ClientLogin API,它完全符合您的要求:允许您验证用户名和密码。(链接转到配置 API doco,但这与此处无关)

专业人士:

  • 您可以使用自己的登录表单

缺点:

  • 您没有通过 Google Apps 获得 SSO,即应用程序中的用户将被提示再次登录(您没有提到这是一项要求,但这似乎是一个合理的要求)
  • 谷歌不会喜欢你(他们试图阻止 ProgrammaticLogin。
  • 您会得到偶尔的验证码测试,您需要向您的用户展示。

OpenID 专门阻止您显示自己的登录页面,因此如果这是一个硬要求,那么程序登录确实是您唯一的选择。

走 SSO 路线让您几乎可以做任何事情,但是对整个域进行身份验证以使一个应用程序以更好的方式进行身份验证可能有点矫枉过正?如果您真的想走这条路,请查看 SimpleSAMLphp。

于 2011-07-05T09:11:14.707 回答