我们公司有一个仅供我们员工内部使用的网络应用程序。我们还有 Google Apps 专业版。我们希望这样做,以便我们的员工可以使用他们已经拥有的 Google Apps 帐户登录我们的私人网络应用程序。
要求:我们要显示我们自己的登录表单。我们不想通过互联网以纯文本形式传递电子邮件/密码。
我们应该使用哪种身份验证机制来实现这一点?
注意:我们的应用程序是使用 Zend Framework 用 PHP 编写的(如果重要的话)。
我们公司有一个仅供我们员工内部使用的网络应用程序。我们还有 Google Apps 专业版。我们希望这样做,以便我们的员工可以使用他们已经拥有的 Google Apps 帐户登录我们的私人网络应用程序。
要求:我们要显示我们自己的登录表单。我们不想通过互联网以纯文本形式传递电子邮件/密码。
我们应该使用哪种身份验证机制来实现这一点?
注意:我们的应用程序是使用 Zend Framework 用 PHP 编写的(如果重要的话)。
在集成 Google Apps 和内部使用的私有系统时,我们只有两种选择。
使用第一种方法更容易完成 SSO,因为那里已经有很多 OpenID 库。但是,正如您在要求中所述,您想使用自己的登录表单。所以我想你必须使用第二种方法。
顺便说一句,如果您的私有系统必须从 Google 获取或设置信息,您可能需要使用 OAuth 进行授权。有关详细信息,请参阅http://code.google.com/apis/accounts/docs/OAuth.html。
使用ClientLogin API,它完全符合您的要求:允许您验证用户名和密码。(链接转到配置 API doco,但这与此处无关)
专业人士:
缺点:
OpenID 专门阻止您显示自己的登录页面,因此如果这是一个硬要求,那么程序登录确实是您唯一的选择。
走 SSO 路线让您几乎可以做任何事情,但是对整个域进行身份验证以使一个应用程序以更好的方式进行身份验证可能有点矫枉过正?如果您真的想走这条路,请查看 SimpleSAMLphp。