【问题标题】:proxy for web service accessed through HTTP basic authentification通过 HTTP 基本身份验证访问的 Web 服务的代理
【发布时间】:2012-03-11 13:03:42
【问题描述】:

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

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

我认为最简单的方法之一是要求承包商通过位于我们服务器上的脚本(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 代理模块功能?

【问题讨论】:

  • 我会考虑使用Squid 来解决这样的问题。 mod_proxy 应该也能正常工作。

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


【解决方案1】:

关于带有 mod_proxy 的经过身份验证的代理设置的有用线程:

Setting up an Apache Proxy with Authentication

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

【讨论】:

  • 似乎是最好的解决方案。我正在考虑使用 apache 代理,但学习 Squid 永远不会太晚 :)
猜你喜欢
  • 1970-01-01
  • 2011-10-12
  • 1970-01-01
  • 2011-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-29
  • 2011-09-10
相关资源
最近更新 更多