嵌套的HTTP基本身份验证?

4
有没有一种方法可以在REST API前使用基本的HTTP身份验证来使用反向代理,同时这个API也使用另一个不同的用户名和密码进行HTTP基本身份验证?
如果重要的话,反向代理是Apache。
最明显的解决方案似乎是让应用程序和代理使用不同的身份验证标头。
例如,我可以向代理发送请求:
GET /foo/1 HTTP/1.1
Authorization: proxyuserpasshere
X-Passthru-Authorization: restuserpasshere

然后代理会使用“Authorization”头部(如果有效)并将请求传递给底层Web应用程序,如下所示:

GET /foo/1 HTTP/1.1
Authorization: restuserpasshere

(其中值“restuserpasshere”取自“X-Passthru-Authorization”标头)

有没有办法配置Apache使其工作?

2)相反,我可以为代理使用标准的“Authorization”标头,并为我的应用程序身份验证使用自定义标头。因此,请求将如下所示:

GET /foo/1 HTTP/1.1
Authorization: proxyuserpasshere
X-Myapp-Authorization: restuserpasshere

这样做的缺点是我的应用程序现在是硬编码使用"X-Myapp-Authorization"头部,而不是标准的Authorization头部。

有更好的解决方法吗?


这里需要更多的细节。您是说您有一个RESTful服务,需要一组用户名/密码,在代理前需要另一组用户名和密码?如果不了解您的情况,我知道许多HTTP库提供配置基本身份验证的选项。但听起来您需要更多的东西。 - bitops
1个回答

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接