我有一个提供受保护资源的 nginx 服务器。我想做的最后一件事是管理密码重置请求,所以我正在查看Login with Google。
他们有 PHP、Java、JavaScript 等的示例,但没有 Apache 或 nginx 的示例。如何配置 nginx 以使用Login with Google功能替换基本身份验证?
后面的一些代理系统依赖于 %REMOTE_USER% 变量,所以我需要保留那个。帮助表示赞赏。
更新 澄清:我有一组服务(一个tomcat,一个node.js,一个couchdb,一个vert.x,一些python)位于Web服务器后面,可能会或可能不会授权用户与它们交互。它们都有一个共同点,就是可以从 Web 层接收身份信息。
所以我在 Web 层所做的:指定 - “仅限经过身份验证的用户”(这是一个授权设置,我“重用”以触发身份验证机制)。
一旦用户通过身份验证,该身份信息就会被传递。有关基本身份验证和 CouchDB 的示例,请查看此博客条目。我可以在 nginx 中做同样的事情,但这里的任务是使用与外部提供商建立的身份来保护其他人的密码秘密。
也许您可以在您的网络应用程序前面运行oauth2_proxy 。
虽然理论上您可以在网络服务器级别实现 OAuth(例如:http ://chairnerd.seatgeek.com/oauth-support-for-nginx-with-lua/ ),但这通常是一个非常糟糕的主意。有服务器端语言的示例,因为那是您应该实现它的地方 - 在您的代码中,而不是在您的服务器中。