Google Apps Premium Edition:要使用哪种身份验证机制?

时间:2010-06-29 22:29:47

标签: google-api google-apps google-authentication

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

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

我们应该使用哪种认证机制来实现这一目标?

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

3 个答案:

答案 0 :(得分:0)

我会研究OpenID和您的域用户的某些组合(即只允许domain.com上的用户登录)。

Google API

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

编辑:

Some more info

答案 1 :(得分:0)

在整合Google Apps和内部使用的私有系统时,我们只提供两种选择。

  1. 使用Google作为身份验证中心。修改私人系统以在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了解详情。
  3. 使用第一种方法更容易实现SSO,因为那里已经有很多OpenID库。但是,正如您在要求中所述,您希望使用自己的登录表单。所以我想你必须采用第二种方法。

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

答案 2 :(得分:0)

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

Pro的:

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

缺点:

  • 您没有使用Google Apps获得SSO,即已经在应用中的用户将被提示再次登录(您没有提到这是一项要求,但这似乎是合理的事情)
  • Google不会喜欢你(他们试图阻止ProgrammaticLogin。
  • 您将需要偶尔进行CAPTCHA测试,以便向用户展示。

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

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