通过HTTP基本身份验证访问的Web服务代理

时间:2012-02-21 07:41:36

标签: php web-services apache proxy basic-authentication

我的组织订阅了一个名为Language Grid的语言Web服务基础结构,它使用basic access authentication进行服务调用。我们聘请了一家承包商为我们开发使用这些语言服务的应用程序。问题是我们不想提供用户名和密码来访问承包商的服务网格,我们希望监控(登录)访问权限。

因此,我们考虑为Web服务请求创建一个“代理”,以便承包商可以进行如下图所示的测试:

enter image description here

我认为最简单的方法之一是让承包商通过我们服务器上的脚本(PHP或其他)发出请求,并将此请求转发给服务网格。这样的脚本可能看起来像这样:

$auth = base64_encode("$user:$pass");
$url = $_POST['url']

$request = new HTTPRequest($url, HTTP_METH_POST);
$request->setPostFields($_POST)
$request->send();
$response = $request->getResponseBody();
echo $response;

有更好更安全的方法吗?例如,通过使用Apache代理模块功能?

1 个答案:

答案 0 :(得分:1)

经过身份验证的代理设置w / mod_proxy的一个有用的线程:

Setting up an Apache Proxy with Authentication

看起来其中一个答案也暗示了Squid。虽然我已经使用了它,但它真正归结为你最熟悉的东西以及你愿意花多少时间。 Squid是一个专门构建的代理,但您可以更快地使用Apache进行设置。