Mar*_*ing 5 .net asp.net-mvc google-api google-apps google-chrome-extension
我在一家教育机构工作,该机构大量使用 Google Apps,现在又使用 ChromeOS 设备。我们着手的一个项目是开发一个 Chrome 扩展(可能是多个),它将复制我们在 Windows 环境中拥有的功能。这些仅在我们的域内和我们的设备上使用,一般不可用。
我们内部构建了一个基于 HTTP/JSON 的 API,它提供了各种详细信息,例如来自我们的 MIS(同样是内部构建)的提醒和其他内容,并且可以提供包含此信息的弹出窗口等。可以通过 Windows 下的 NTLM 身份验证确保 API 知道当前用户是谁。
我需要某种方式让 API 能够在从 Chrome 设备访问时知道用户是谁。这意味着扩展程序需要能够以安全的方式告诉 API 用户是谁。如果 API 可以确定登录用户的 Google Apps 电子邮件地址,则它可以从我们的数据库中确定此人是谁。我的问题是,我该如何实现这一目标?
一些已考虑并拒绝的解决方案:
此外,用于登录的 Google OAuth 2.0 似乎特定于浏览器中显示的网站。这需要默默地处理。
我知道这是一个非常模糊的问题,但是任何正在解决的非常相似问题的建议或示例将不胜感激。其核心是:如何使用 Google 凭据让 Chrome 扩展程序通过非 Google API 进行身份验证?(可以扩展 API 以以任何必要的方式支持这一点。)
一些进一步的细节:
您可以执行以下操作:

在 Chrome 扩展程序中,使用Identity API获取此应用程序的身份验证令牌并将其发送到您的 API。您只需要这个范围:https://www.googleapis.com/auth/userinfo.email
在 API 端,每次收到令牌时,请访问以下 URL(将示例中的访问令牌替换为扩展程序发送的访问令牌):
https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ya29.iAXXXXXXXXXXXXXXi-mrflhzc-X-U14eb
你会得到这样的东西:`
{
 "issued_to": "407408718192.apps.googleusercontent.com",
 "audience": "407408718192.apps.googleusercontent.com",
 "user_id": "1170123456778279183758",
 "scope": "https://www.googleapis.com/auth/userinfo.email",
 "expires_in": 3585,
 "email": "someone@yourdomain.com",
 "verified_email": true,
 "access_type": "offline"
}
确保受众是 Chrome 客户端 ID(非常重要),并且您有电子邮件!
| 归档时间: | 
 | 
| 查看次数: | 1000 次 | 
| 最近记录: |