Bearer認證是通過在HTTP要求標頭攜帶令牌Token進行身分識別驗證的機制,適用於 API 或微服務等需安全訪問的情境。為函數綁定自訂網域名後,可以通過配置Bearer認證配置Token資訊,用戶端在發起訪問時,需在要求標頭添加有效Token資訊,僅當訪問請求中攜帶的Token與自訂網域名配置的Token匹配時,用戶端才能正常訪問函數。
注意事項
配置Bearer認證時,請在生產環境中使用HTTPS協議,HTTP協議僅用於開發測試,因使用HTTP協議導致的Token泄露,FC不承擔安全責任。
Function Compute僅負責儲存和驗證您配置的Token資訊,Token的產生與生命週期管理需由使用者自行負責。建議定期輪換Token,特別是在發現其已泄露或可能存在安全風險的情況下,以確保系統的安全性。
使用限制
不同自訂網域名或同一個自訂網域名綁定的Token必須唯一,且儘可能不要使用常見的排列組合作為Token的值,以免Token資料過於簡單導致的安全問題。
每個Token的值長度需要在32字元到128字元之間,並且只允許包含標準 Base64 字元 ‘A-Z’, ‘a-z’, ‘0-9’, ‘+’, ‘/’,‘=’,‘-’, ‘~’, ‘.’ 。不能以數字、中劃線開頭。
每個自訂網域名允許配置的Token數量在1到20之間。
前提條件
操作步驟
步驟一:配置Bearer認證
登入Function Compute控制台,在左側導覽列,選擇。
在頂部功能表列,選擇地區,然後在網域名稱列表,找到目標網域名稱,單擊操作列的編輯。
在編輯自訂網域名頁面,展開認證設定,認證方式選擇Bearer認證,填寫認證Token,然後單擊儲存。
認證Token的格式要求參見以下樣本:
{ "tokens": [ { "tokenName": "tokenName-7jd", "enable": true, "tokenData": "token-dfi34ij25gd1ed6ec80g35****" }, { "enable": true, "tokenData": "token-8g7f2a2c9fc23hid82593****", "tokenName": "tokenName-20i" } ] }以上樣本為配置多個Token,如果只需配置一個Token,保留其中一個即可。
請確保每個Token認證中Token的唯一性。
如果需要禁用某個Token,只需要將對應的
enable欄位設定為false。
步驟二:操作驗證
本文以Curl工具為例,攜帶Authorization: Bearer <token>發起HTTP請求,命令格式如下:
curl --data 您的資料 -X 訪問方式 -H "Authorization: Bearer <token>" https://<your-custom-domain>樣本如下:
curl -X POST -H "Authorization: Bearer token-dfi34ij25gd1ed6ec80g35****" example.com常見問題
為什麼開啟Bearer認證後,訪問網域名稱提示Authorization header is expected but missing?
該提示表示用戶端通過自訂網域名訪問函數時未攜帶Authorization頭,請在請求中添加Authorization: Bearer <token>。
為什麼開啟Bearer認證後,訪問網域名稱提示access denied due to invalid bearer token?
該提示表示用戶端通過自訂網域名訪問函數時未攜帶有效Token資訊,請檢查Token是否正確,Token資料來自於步驟一:配置Bearer認證時,配置的認證Token中tokenData欄位的值。
開啟Bearer認證後,是否會產生額外的費用?
不會。Function Compute預設提供的網關相關的功能計費都是在函數調用次數中進行收費,所以不管您是否開啟Bearer認證,都不會產生額外的費用。