ArangoDB(3.1.18)身份验证不适用于具有反向代理的localhost

时间:2017-04-25 18:39:00

标签: iis configuration reverse-proxy arangodb foxx

我在网络服务器(带有IIS的Windows)上设置了ArangoDB,并打算通过IIS将反向代理暴露给Web,但我希望客户端被强制使用身份验证。我无法通过所需的身份验证找到访问FOXX服务的方法。

我添加了一个数据库'common'并在

中安装了FOXX服务
versioning/version/{project}/{client}/{version}

我可以使用浏览器中的服务使用

这样的网址
http://127.0.0.1:8529/_db/common/versioning/version/myproject/aclient/4.9.3

然后它返回我有请求的JSON。但它永远不会要求我提供证书。因此,如果我通过IIS公开此服务,例如:

https://myiisserver.com/_db/common/versioning/version/myproject/aclient/4.9.3

访问服务没有限制!

arangod.conf看起来像这样(实际上没有变化)

endpoint = tcp://127.0.0.1:8529
...
authentication = true

那么我做错了什么?我只使用内部端点吗?有公共场合吗?我尝试了各种组合:

https://myiisserver.com/_db/common/_api/versioning/version/myproject/aclient/4.9.3
https://myiisserver.com/versioning/version/myproject/aclient/4.9.3

但无法弄明白。我是在尝试不可能的事情,还是错过了明显的事情?

2 个答案:

答案 0 :(得分:0)

您需要调整端点以包含ip,即myiisserver.com。如果您想在服务器的所有接口和地址上公开arangodb,请尝试endpoint = tcp://0.0.0.0:8529/endpoint = tcp://[::]:8529/。后者还将包括ipv6地址。如果您只想添加myiisserver.com,只需为myiisserver.com的IP地址添加一行。像

这样的东西
endpoint = tcp://127.0.0.1:8529
endpoint = tcp://<ip-address-of-myiisserver.com>:8529
...
authentication = true

如果您想使用FQDN,请确保服务器和外部世界的nslookup myiisserver.com解析为相同的IP地址。换句话说,请确保myiisserver.com无法解析为127.0.0.1127.0.1.1[::1],反之亦然。

答案 1 :(得分:0)

我已经弄明白问题是什么。 ArangoDB 3.1 documentation for Authentication

  

启用身份验证

     

...

     

如果您想在没有HTTP身份验证的情况下运行Foxx应用程序,请激活   对于内置服务器API的HTTP身份验证,您可以添加   配置的服务器部分中的以下行:

     

authentication-system-only = true

     

...

所以我按照以下方式编辑'arangod.conf'后才开始工作:

authentication = true

authentication-system-only = false