Version: Next
LDAP Authorization
#
用途說明對服務或路由增加一個藉由帳號及密碼保護的LDAP驗證。此插件會從標頭 Proxy-Authorization
或 Authorization
確認有效憑證。
#
欄位配置說明變數 | 類型 | 預設值 | 說明 | 必填 |
---|---|---|---|---|
hide_credentials | boolean | false | 此欄位決定將請求往後送至服務時是否帶上原本的驗證標頭內容。設定為true時,插件會把驗證內容自請求移除。 | V |
ldap_host | string | LDAP伺服器主機位置。 | V | |
ldap_port | number | 389 | LDAP伺服器的TCP連接埠。預設389給non-SSL LDAP和AD使用。636是給SSL LDAP和AD使用。如果 ldaps 項目開啟,則必須使用636。 | V |
start_tls | boolean | false | 開啟此選項會在 ldap 連線發布 StartTLS (Transport Layer Security) 延伸操作。如果 start_tls 設定開啟,則確保 ldaps 是關閉狀態。 | V |
ldaps | boolean | false | 開敵此選項則使用 LDAPS 協定做連線 (LDAP over TLS)。當 ldaps 開啟時,必須使用636連接埠,並且確保 start_tls 是關閉狀態。 | V |
base_dn | string | 在搜尋時作為起點的Base DN。例如:dc=example,dc=com。 | V | |
verify_ldap_host | boolean | false | 開啟此選項來驗證LDAP伺服器。伺服器憑證會藉由 lua_ssl_trusted_certificate 底下之CA證書做驗證。 | V |
attribute | string | 搜尋用戶時的屬性。例如:cn。 | V | |
cache_ttl | number | 60 | 快取存活時間(單位為秒)。 | V |
timeout | number | 10000 | 對LDAP伺服器之等待連線逾時時間(單位為毫秒)。 | |
keepalive | number | 60000 | 對LDAP伺服器閒置之連線保持連線狀態之時間(單位為毫秒)。 | |
anonymous | string | 可設定"anonymous"使用者在驗證失敗時會使用此身份驗證。如此欄位為空,則請求之標頭沒帶上Authorization時會收到authentication failure 4xx的回應。要注意的是,此欄位需填入的是consumer本身之id,而不是custom_id。 | ||
header_type | string | ldap | 可填入欲代入驗證標頭的字串。預設標頭的樣子會是 Authorization: ldap base64(username:password) ,如果 header_type 設定為 basic,則會變成 Authorization: basic base64(username:password) 。可為任意字串。 |
#
用法示例#
在全局啟用插件- 從網站左邊Menu中
外掛插件
頁面中,點選右上角的新增外掛插件
:
- 點選後,選擇
認證
頁籤,並啟用LDAP Auth,填寫內容參考欄位配置說明,設定成功後,任何請求(不分服務、路由、用戶)皆需經過認證才能通過。
#
在服務端上啟用插件- 從網站左邊Menu中
服務 > 服務列表
頁面中,選擇要啟用此插件的服務,假設為google
,點選對應的編輯按鈕:
- 在編輯畫面中,點選上方的
外掛插件
頁籤,再點選頁籤內容上方的新增外掛插件
按鈕:
點選後,選擇 認證
頁籤,並啟用LDAP Auth,填寫內容參考欄位配置說明,設定成功後,僅有此服務(範例為google
)請求需經過認證才能通過。
#
在路由端上啟用插件可以由兩種方式來選擇路由,並啟用插件:
#
方式一:路由列表- 從網站左邊Menu中
服務 > 路由列表
頁面中,選擇要啟用此插件的路由,假設為google
,點選對應的編輯按鈕:
#
方式二:服務 > 服務列表 > 路由列表- 從網站左邊Menu中
服務 > 服務列表
頁面中,選擇要啟用此插件的路由 所屬之服務(假設為google
),點選對應的編輯按鈕。
在編輯畫面中,點選上方的 路由
頁籤,選擇要啟用此插件的路由(假設為google
),點選對應的編輯按鈕:
- 承第1步,點擊上述兩種方式之一的編輯按鈕後,在編輯畫面中,點選上方的
外掛插件
頁籤,再點選頁籤內容上方的新增外掛插件
按鈕:
點選新增外掛插件
按鈕後,選擇 認證
頁籤,並啟用LDAP Auth,填寫內容參考欄位配置說明,設定成功後,僅有此路由(範例為google
)請求需經過認證才能通過。
#
驗證選擇一路由開啟此插件服務,填入LDAP伺服器相對應的資訊以及搜尋的資訊。
此時在console上送出以下指令
會得到以下回應
代表插件正常運作,並阻擋未通過驗證之請求
- 在送出的請求加上標頭
Proxy-Authorization
或是Authorization
,以下是憑證格式:
標頭內容會如以下格式:
將代入驗證標頭的請求送出後即可得到正常的回應。
note
快取會暫存此憑證給未來的請求使用,維持的時間根據設定中的 cache_ttl 所決定。