我最近为我们正在开发的Google Apps Marketplace应用实施了SSO functionality。简单来说:它提供了一种方法来检索Google Apps用户的电子邮件并将其登录到您的网站,而无需他的授权。您只需要在域上安装期间由Google向应用程序提供的消费者密钥和消费者密钥(安装用户还授权(一次性操作)您在Manifest文件中请求的任何其他权限。)
现在,我已经设法使用JanRain's OpenID PHP library让SSO用户登录正常工作,并使用PHP Extensions for Google Apps OpenID Discovery将Google Apps添加为提供商。
但是,登录后,我需要实现一项功能,该功能将检索给定Google Apps域中的所有用户。我已经使用oAuth2身份验证和以下Directory API进行了此操作。但是,这需要存在消费者密钥,消费者密钥和重定向网址(必须在Google API控制台中注册)。
有没有办法取消这种便利,让我们的用户可以直接使用我们在登录时在后台进行的现有SSO身份验证来获取他们的Google Apps域用户?否则,用户在Google API控制台注册应用程序,输入正确的重定向网址并在我们的网站中进行设置,然后他就可以获得其域名用户将会非常麻烦。
答案 0 :(得分:2)
普通用户无法使用目录API,您需要authenticate as an admin user进行目录API调用。
根据您访问所有用户的需求,您可以通过请求访问用户的联系人范围和grabbing a copy of the full Global Address List来获取,其中包含有关所有非隐藏域用户以及非隐藏用户的信息小组和共享联系人。