通過配置遠程鑒權功能,CDN可以按照您指定的方式將使用者請求轉寄給鑒權伺服器,由鑒權伺服器對使用者請求進行校正。校正通過即允許訪問,校正失敗會拒絕訪問或進行相應的限制,可有效避免CDN節點上的資源被非授權使用者訪問。

功能介紹

遠程鑒權功能是一種存取控制功能,用於對發送到CDN邊緣節點上的使用者請求進行校正,並根據鑒權伺服器返回的校正結果來判斷如何處理使用者的請求。

遠程鑒權和URL鑒權的作用一樣,都用於保護資源,讓資源只被授權成功的使用者訪問,非授權使用者將無法訪問。這兩個功能在技術實現方案上有如下差異:
  • URL鑒權:使用者把網域名稱的鑒權規則下發給CDN節點,由CDN節點完成鑒權的整個資料互動流程。
  • 遠程鑒權:使用者有自己單獨設定的鑒權伺服器,CDN節點收到使用者請求後,需要把使用者請求轉寄給鑒權伺服器完成鑒權,鑒權伺服器由使用者自主管理。
遠程鑒權功能的資料互動流程如下:流程
序號 互動說明
使用者發起的資源訪問請求到達CDN節點,請求中攜帶了鑒權參數。
CDN節點收到使用者請求,將使用者請求轉寄給鑒權伺服器。
鑒權伺服器根據使用者請求中攜帶的鑒權參數給出鑒權結果,並返回給CDN節點。
CDN節點根據鑒權伺服器返回的鑒權結果執行對應的動作,並返回對應的資料給使用者。
鑒權結果舉例說明如下:
  • 舉例1:鑒權成功,CDN節點與使用者開始正常的快取資料訪問互動。
  • 舉例2:鑒權失敗,CDN節點返回404狀態代碼給使用者。
  • 舉例3:鑒權失敗,CDN節點對使用者訪問進行限速。
  • 舉例4:鑒權逾時,CDN節點執行鑒權逾時的預設動作,即允許存取使用者請求。

操作步驟

  1. 登入 CDN控制台
  2. 在左側導覽列,單擊 域名管理
  3. 域名管理頁面,單擊目標網域名稱對應的 管理
  4. 在指定網域名稱的左側導覽列,單擊 访问控制
  5. 單擊 遠程鑒權 頁簽。
  6. 開啟 遠程鑒權 開關,根據介面提示,配置遠程鑒權資訊。
    说明 開啟遠程鑒權功能後,使用者的每次請求都要鑒權,當請求訪問量大時,需考慮鑒權伺服器的壓力和效能。
    參數 說明
    鑒權伺服器位址 鑒權伺服器對外可以訪問的地址。系統會對您輸入的鑒權伺服器位址進行校正,包括格式校正和值校正。
    • 格式要求
      格式必須為以下幾種類型之一:
      • http://example.com/auth
      • https://example.com/auth
      • http://192.0.2.1/auth
      • https://192.0.2.1/auth
    • 值要求

      值不能包含127.0.0.1和localhost,因為這類本地地址屬於無效地址。

    要求方法 鑒權伺服器支援的要求方法。支援GET、HEAD和POST這三種要求方法,預設使用GET方法請求。
    鑒權檔案類型
    • 所有檔案類型 :所有的檔案類型都參與鑒權。
    • 指定檔案類型 :僅指定的檔案類型參與鑒權。
      • 指定檔案類型時,如果您輸入多個檔案類型,多個檔案類型用豎線(|)分隔,例如:mp4|flv。
      • 檔案類型區分大小寫,即jpg和JPG是兩種不同的檔案類型。
    保留參數設定 用於控制使用者請求URL中需要參與鑒權的參數。可以選擇保留所有參數、保留指定參數和刪除所有URL參數。
    • 保留指定參數時,多個參數用豎線(|)分隔,例如:user|token。
    • 參數區分大小寫,即key和KEY是兩種不同的參數。
    添加自訂參數 為CDN節點轉寄給鑒權伺服器的請求URL添加自訂參數。您可以自訂設定參數和取值,也可以直接使用CDN控制台上預設的變數。
    • 自訂設定參數和取值時,要求如下:
      • 多個參數用豎線(|)分隔,例如:token=$arg_token|vendor=ali_cdn。
      • 參數值區分大小寫,即key和KEY是兩種不同的參數值。
    • 使用預設變數時,您可以提取變數的值添加到CDN轉寄給鑒權伺服器的請求上。

      例如,選擇提取變數$http_host,則使用者請求的URL地址會加上host=$http_host,此處的host表示使用者要求標頭中的host值。變數名稱與變數含義的介紹,請參見 變數名稱

    保留要求標頭設定 用於控制使用者要求標頭中需要參與鑒權的參數。可以選擇保留所有參數、保留指定參數和刪除所有要求標頭參數。
    • 保留指定參數時,多個要求標頭用豎線(|)分隔,例如:user_agent|reffer|cookies。
    • 參數不區分大小寫,即http_remote_addr和HTTP_Remote_Addr一樣。
    说明 選擇“保留所有參數”時,CDN節點預設會刪除HOST頭,如果您需要保留HOST頭,可通過“保留指定參數”或者“添加自訂參數”來保留。CDN節點預設刪除HOST頭的原因是CDN節點轉寄給鑒權伺服器的鑒權請求中攜帶的HOST頭是加速網域名稱,這可能會導致鑒權伺服器無法識別鑒權請求,從而導致訪問404、鑒權失敗。
    添加自訂參數 為CDN節點轉寄給鑒權伺服器的要求標頭添加自訂參數。您可以自訂設定參數和取值,也可以直接使用CDN控制台上預設的變數。
    • 自訂設定參數和取值時,要求如下:
      • 多個要求標頭用豎線(|)分隔,例如:User-Agent=$http_user_agent|vendor=ali_cdn。
      • 參數不區分大小寫,即http_remote_addr和HTTP_Remote_Addr一樣。
    • 使用預設變數時,您可以提取變數的值添加到CDN轉寄給鑒權伺服器的請求上。

      例如,選擇提取變數$http_host,則使用者請求的URL地址會加上host=$http_host,此處的host表示使用者要求標頭中的host值。變數名稱與變數含義的介紹,請參見 變數名稱

    鑒權成功狀態代碼 鑒權伺服器在鑒權成功時返回的HTTP狀態代碼,即鑒權結果。

    例如,將鑒權成功狀態代碼設定為200,當鑒權伺服器返回200時,表示鑒權成功。 如果鑒權伺服器返回的狀態代碼不是成功狀態代碼,也不是失敗狀態代碼,結果即為鑒權逾時。

    鑒權失敗狀態代碼 鑒權伺服器在鑒權失敗時返回的HTTP狀態代碼,即鑒權結果。

    例如,將鑒權失敗狀態代碼設定為403,當鑒權伺服器返回403時,表示鑒權失敗。 如果鑒權伺服器返回的狀態代碼不是成功狀態代碼,也不是失敗狀態代碼,結果即為鑒權逾時。

    響應自訂狀態代碼 鑒權伺服器返回鑒權失敗狀態代碼給CDN,即使用者請求鑒權失敗時,CDN節點返回給使用者的狀態代碼。

    例如,將響應自訂狀態代碼設定為403,當使用者請求鑒權失敗時,CDN節點會返回403給使用者。

    鑒權逾時時間長度 統計的是從CDN節點發起鑒權請求開始,到CDN節點收到鑒權伺服器返回的結果為止的時間。單位為毫秒,鑒權逾時時間長度最長可以設定為3000。
    鑒權逾時之後的動作 CDN與鑒權伺服器之間的資料互動逾時後,CDN對使用者請求的處理。支援 通過 拒絕 這兩種動作,區別如下:
    • 通過 :鑒權逾時,CDN將直接允許存取使用者的請求。
    • 拒絕 :鑒權逾時,CDN將返回上面配置的 響應自訂狀態代碼 給使用者。
  7. 單擊 确定,完成配置。

    成功配置遠程鑒權功能後,您可以在 遠程鑒權 頁簽下,對當前的配置進行修改或關閉遠程鑒權功能。

變數名稱

添加自訂參數時,您可以選擇直接使用CDN控制台上預設的變數。變數名稱與變數含義見下表。
變數名稱 變數含義
$http_host 要求標頭中的host值。
$http_user_agent 要求標頭中的user_agent值。
$http_referer 要求標頭中的referer值。
$http_content_type 要求標頭中的content_type值。
$http_x_forward_for 要求標頭中的x_forward_for值。
$remote_addr 請求的client ip資訊。
$scheme 請求的協議類型。
$server_protocol 請求的協議版本。
$uri 請求的原始uri。
$args 請求的Query String,不包含問號(?)。
$request_method 要求方法。
$request_uri uri+'?'+args的內容。

相關API

BatchSetCdnDomainConfig