【发布时间】:2014-07-03 07:25:07
【问题描述】:
我在一家大量使用 Google Apps 和现在的 ChromeOS 设备的教育机构工作。我们着手的一个项目是开发一个 Chrome 扩展(可能有多个),它将复制我们在 Windows 环境中的功能。这些将仅在我们的域内和我们的设备上使用,一般不可用。
我们有一个内部构建的基于 HTTP/JSON 的 API,它提供各种详细信息,例如来自我们的 MIS(同样,内部构建)的提醒和其他内容,并且可以提供包含这些信息的弹出窗口等。通过 Windows 下的 NTLM 身份验证,可以确保 API 知道当前用户是谁。
我需要某种方式让 API 在从 Chrome 设备访问时能够知道用户是谁。这意味着扩展需要能够以安全的方式告诉 API 用户是谁。如果 API 可以建立登录用户的 Google Apps 电子邮件地址,它可以从我们的数据库中确定此人是谁。我的问题是,我该如何实现?
已经考虑过并被拒绝的一些解决方案:
- 让扩展程序简单地告诉 API 当前用户的电子邮件地址
被拒绝,因为它很容易被伪造。这必须是安全的。 - 改为询问用户他们的 Active Directory 凭据
扩展程序应该能够在没有用户输入的情况下运行 - 我们可以代表用户授权扩展程序访问 Google Apps 域。
此外,用于登录的 Google OAuth 2.0 似乎特定于浏览器中显示的网站。这需要静默处理。
我了解这是一个非常模糊的问题,但我们将不胜感激任何正在解决的非常相似的问题的建议或示例。 它的核心是:如何让 Chrome 扩展程序使用 Google 凭据通过非 Google API 进行身份验证? (API 可以通过任何必要的方式扩展以支持此功能。)
更多细节:
- 我们的 API 基于 .NET
- Chrome 扩展程序将仅在我们学院内的设备上运行,这些设备将注册到我们的域中。只有该域内的用户才能登录并运行扩展程序。
【问题讨论】:
标签: .net asp.net-mvc google-chrome-extension google-api google-apps