中国服务器网

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

使用Nginx / Lua检测并重写HTTP基本用户/密码标头到自定义标头中

我正在使用一个历史悠久的API,通过一个密钥/秘密组合来授予访问权限,原始APIdevise者应该将其作为用户名和密码在HTTP基本身份validation标头中传递,例如: curl -u api_key:api_secret http://api.example.com/…. 现在我们的API客户端将会不断增长,我们正在寻求使用3scale来处理身份validation,速率限制和其他function。 根据3scale的指示和build议,我们将在我们的API服务器前使用一个Nginx代理,这个代理使用3scale的服务来处理所有的访问控制系统。 我们将把我们现有的客户的密钥和秘密导出到3scale并保持两个系统同步。 我们需要我们现有的应用程序继续以现有的方式接收密钥和秘密,因为一些返回的数据是客户特定的。 但是,我需要find一种方法,将HTTP基本身份validation请求转换为重写的自定义头文件,而3scale本身不支持将其作为身份validation方法。 我已经能够使用3scale为你configuration的Nginx和Luaconfiguration设置代理。 这允许-u key:secret被传递给我们的服务器,并被正确处理。 目前,我需要另外添加相同的authentication信息作为查询参数或自定义标题,以便3scale可以pipe理访问。 我希望我的Nginx代理为我处理,以便用户以预先存在的方式提供一组authentication详细信息,3scale也可以提取。 在我知道的语言中,例如Ruby,我可以解码HTTP_AUTHORIZATION标头,selectBase64编码的部分,并解码它以find已经提供的密钥和秘密组件。 但是我是一个Nginx的新手,不知道如何在Nginx中实现同样的function(我也不知道3scale提供的Lua脚本是否可以成为解决scheme的一部分)…