2012-07-31 162 views
0

我有兩個web服務(即my_public_api和my_private_api)在server1中運行。 (PHP,Apache)php web服務的私人和公共web服務認證

http:// ipaddress/my_public_api - 可以被所有人訪問。

的http:// IP地址/ otherfuncation/my_private_api - 只能由已批准的用戶或特定的ip地址(服務器2)

我想實現這個一些認證訪問。這可以使用htpasswd基本認證來完成嗎?如果不是什麼可能的方式來實現這一點。 如果我使用客戶端身份驗證,可能只是爲了保護我的private_api並讓my_public_api可以訪問所有人。

+0

有哪兩種API的目的是什麼?是否可以從數據庫插入和提取數據而返回不敏感的信息? – 2012-07-31 10:50:36

+0

是的,my_public_api會接收數據(主要來自移動應用程序),並將存儲在表中用於某種目的。所以它不會影響我的任何其他表格。但是,它會從其他服務器調用my_private_api,並執行一些敏感操作並返回數據。所以我只需要保護my_private_api並將權限授予特定的人員/ ipaddress – Navanee 2012-08-01 00:31:04

回答

0

我發現了一種方法來做到這一點使用SSL,

  1. 生成服務器和客戶端證書
  2. 點的Apache生成的證書。
  3. 限制httpd.conf中的api位置/虛擬路徑
  4. 分配您要爲其授予訪問權限的客戶端證書。

檢查here知道如何設置SSL證書

例如:httpd.conf中

<Location /mysite/private_api> 
SSLRequireSSL 
SSLVerifyClient require 
SSLVerifyDepth 1 
</Location> 

檢查here更多細節