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
),送出以下指令:
即可得到正常的回應。