在Function Compute中,為HTTP觸發器配置Basic認證,可以讓函數更加簡便和安全的被授權使用者訪問。
背景資訊
Function Compute支援為HTTP觸發器開啟Basic認證。在Basic認證中,使用者通過在Function Compute控制台上配置允許訪問函數的使用者名稱和密碼等資訊,用戶端在發起訪問時,通過Authorization Header攜帶有效Base64編碼的使用者名稱和密碼資訊,僅當訪問請求中的使用者名稱密碼資料與觸發器上配置的使用者名稱和密碼資料匹配時,能夠成功訪問函數。
前提條件
使用限制
使用者列表中最多可以配置20個使用者。
使用者名稱,最少12個字元,最長128個字元,命名要求符合FC的統一資來源物件命名規範。
密碼,長度在12到128個字元之間,包括大寫字母、小寫字母、數字和至少一個特殊字元
! @ # $ % ^ & * ( )。不同使用者的密碼不能相同,並且儘可能不要使用常見的排列組合作為使用者密碼,以免密碼過於簡單導致的安全問題。
配置Basic認證後,請在生產環境使用HTTPS協議,HTTP協議僅用於開發測試,因使用HTTP協議導致的使用者名稱密碼泄漏,Function Compute不承擔安全責任。
Function Compute僅負責儲存和校正您配置的使用者資訊,使用者的管理需要您自己負責。請及時輪換已經泄漏的使用者密碼和已經被證明是不安全的密碼,使用者密碼使用時間較長時,也請主動輪換。
操作步驟
步驟一:配置Basic認證
登入Function Compute控制台,在左側導覽列,選擇。
在頂部功能表列,選擇地區,然後在函數列表頁面,單擊目標函數。
在函數詳情頁面,單擊觸發器頁簽,然後單擊HTTP觸發器操作列的編輯。
在編輯觸發程序面板,設定以下選項,然後單擊確定。
認證方式:選擇Basic認證。
使用者列表:設定使用者名稱和密碼。使用者名稱和密碼設定要求請參見使用限制。

步驟二:操作驗證
以Curl命令為例,通過Authorization Header攜帶有效Base64編碼的使用者名稱和密碼資訊發起驗證。
在目標函數詳情頁面的觸發器頁簽擷取HTTP觸發器的公網訪問地址。
在命令列,執行以下命令將使用者名稱和密碼進行Base64編碼。
echo -n "使用者名稱:密碼" | base64執行完成後,擷取返回的已編碼的使用者資訊。
在命令列,執行Curl命令,調用函數。
命令樣本如下:
curl -X POST "https://example.com" -H "Authorization: Basic YmFzaWMtYXV0aGVudGljYXRpb246MTUyMkBaaHV6aTV6****="命令參數說明:
請將樣本中
https://example.com替換為您步驟一擷取的觸發器的公網訪問地址。攜帶的要求標頭Authorization的值必須以Basic開頭,且Basic與後面的使用者資訊之間必須有空格。
常見問題
為什麼開啟Basic認證後,訪問觸發器URL提示:authorization require?
該提示說明訪問HTTP觸發器時,未攜帶有效Authorization頭,請檢查請求中是否攜帶了Header Authorization以及Authorization值中使用者資訊是否正確。
為什麼開啟Basic認證後,訪問觸發器URL提示:Authorization header must start with Basic?
根據RFC 7617,通過Basic認證發起訪問,用戶端需要攜帶Authorization頭,Authorization頭的值以Basic開頭。
開啟Basic認證後,是否會產生額外的費用?
不會。Function Compute預設提供的網關相關的功能計費都是在函數調用次數中進行收費,所以不管您是否開啟Basic認證,都不會產生額外的費用。