ACL
用途說明#
用戶可設定代表之 ACL 群組名,使其限制對服務或路由做存取動作。此插件需要同時開啟認證插件(例如 Basic Authentication、Key Authentication 或是 OAuth 2.0)在服務或路由上。
欄位配置說明#
| 變數 | 類型 | 預設值 | 說明 | 必填 |
|---|---|---|---|---|
| allow | array of string | 可填入任意群組名,代表允許接觸服務或路由的群組。 注意: allow 及 deny 中需選擇其中一個欄位填寫。 | ||
| deny | array of string | 可填入任意群組名,代表拒絕接觸服務或路由的群組。 注意: allow 及 deny 中需選擇其中一個欄位填寫。 | ||
| hide_groups_header | boolean | false | 開啟時會在傳送請求至後方服務時移除標頭 X-Consumer-Groups 。 | V |
用法示例#
在全局啟用插件#
- 從網站左邊 Menu 中
外掛插件頁面中,點選右上角的新增外掛插件:

- 點選後,選擇
安全頁籤,並啟用 ACL,填寫內容參考欄位配置說明,設定成功後,任何請求(不分服務、路由、用戶)皆需經過檢查才能通過。
在服務端上啟用插件#
- 從網站左邊 Menu 中
服務 > 服務列表頁面中,選擇要啟用此插件的服務,假設為google,點選對應的編輯按鈕:

- 在編輯畫面中,點選上方的
外掛插件頁籤,再點選頁籤內容上方的新增外掛插件按鈕:

點選後,選擇 安全 頁籤,並啟用 ACL,填寫內容參考欄位配置說明,設定成功後,僅有此服務(範例為google)請求需經過檢查才能通過。
在路由端上啟用插件#
可以由兩種方式來選擇路由,並啟用插件:
方式一:路由列表#
- 從網站左邊 Menu 中
服務 > 路由列表頁面中,選擇要啟用此插件的路由,假設為google,點選對應的編輯按鈕:

方式二:服務 > 服務列表 > 路由列表#
- 從網站左邊 Menu 中
服務 > 服務列表頁面中,選擇要啟用此插件的路由 所屬之服務(假設為google),點選對應的編輯按鈕。
在編輯畫面中,點選上方的 路由 頁籤,選擇要啟用此插件的路由(假設為 google),點選對應的編輯按鈕:

- 承第1步,點擊上述兩種方式之一的編輯按鈕後,在編輯畫面中,點選上方的
外掛插件頁籤,再點選頁籤內容上方的新增外掛插件按鈕:

點選新增外掛插件 按鈕後,選擇 安全 頁籤,並啟用 ACL,填寫內容參考欄位配置說明,設定成功後,僅有此路由(範例為google)請求需經過檢查才能通過。
驗證#
路由啟用 ACL 插件 + 使用者 API金鑰存取#
- 以下範例選擇
google的路由開啟 ACL 插件服務,示範在allow填入test-group,如下圖。

從網站左邊 Menu 中
訂閱用戶 > 用戶列表頁面中選擇右上方新增按鈕,新增用戶。選擇剛建立的使用者,進入編輯頁面:
- 選擇上方
API金鑰頁籤,再選擇列表左上方的新增按鈕,填寫對應欄位後,按下送出。

note
創立後預設 API金鑰會是一個亂數的 uuid 格式,可以先把這個 API金鑰複製起來,下方呼叫請求時會需要帶入
x-api-key標頭內。- 選擇上方
選擇剛建立的 API金鑰,進入編輯頁面,選擇上方
ACL頁籤,點選列表左上方的新增按鈕,於群組名稱欄位中填入test-group後送出。

- 送出以下指令發送請求:
會得到以下回應:
- 在
x-api-key標頭中加入剛建立的 API金鑰,假設為c6dc4695-9965-47c5-b840-770ca2ddfb3a,送出以下指令:
即可得到正常的回應。
路由啟用 ACL 插件 + 使用者用帳密 (Basic Auth) 存取#
- 以下範例選擇
google的路由開啟 ACL 插件服務,示範在allow填入test-group,如下圖。

在相同的路由開啟 Basic Authentication 插件服務。
從網站左邊 Menu 中
訂閱用戶 > 用戶列表頁面中選擇右上方新增按鈕,新增用戶。選擇剛建立的使用者,進入編輯頁面:
切換到認證頁面,選擇
Basic Authentication頁籤,再選擇列表左上方的新增按鈕,填入帳號與密碼,範例輸入acc與pwd。
送出以下指令發送請求:
會得到以下回應:
- 在
Authorization標頭中加入 Base64 encode 後的帳密 (acc:pwd),送出以下指令:
即可得到正常的回應。