基本認證(Basic Auth)

介紹

Basic Auth 是一種透過 HTTP 協議實現的驗證方式,它在使用者向伺服器請求資源時,需要在請求頭中附帶使用者名稱和密碼的資訊。 伺服器會接收到請求頭中的資訊,並對該資訊進行驗證,如果驗證透過,則返回請求的資源,否則返回 401 錯誤程式碼。

注意:使用 Basic Auth 時,使用者名稱和密碼會在請求頭中明文傳輸,不推薦在生產環境中使用。

OpenResty Edge 中提供了對應的頁面規則動作來實現此功能。

此動作僅有一個引數:Basic Auth 使用者組,用於指定使用的使用者組。

示例

OpenResty Edge 的 Basic Auth 使用者透過使用者組進行組織管理。 因此,需要先增加使用者組。

增加 Basic Auth 使用者

進入:應用 > HTTP/HTTPS > [指定應用] > HTTP Basic Auth 賬號 > 新建 Basic Auth 使用者組。

增加使用者組:

輸入使用者組名稱以及標籤。 然後增加使用者:

輸入使用者名稱和密碼。

配置頁面規則

增加頁面規則,啟動 Basic Auth 動作:

選擇我們前面新建的使用者組即可。

傳送測試請求

傳送一個不帶認證資訊的請求:

$ curl http://test.com/anything -v
...
< HTTP/1.1 401 Unauthorized
...

可以看到返回了 401 狀態碼,表示缺少認證資訊。

接著傳送一個帶正確認證資訊的請求:

$ curl http://test.com/anything -u oredge:xxxxxxxx -v
...
< HTTP/1.1 404 Not Found
...

沒有返回 401,表示已經透過了 Basic Auth 認證;返回了 404 是因為請求訪問了不存在的資源(/anything)。