全部產品
Search
文件中心

API Gateway:使用簡單認證(AppCode)方式調用API

更新時間:Jul 13, 2024

阿里雲API Gateway提供多種針對用戶端請求的安全認證方式,包括阿里雲APP認證方式、Jwt外掛程式、第三方鑒權等。對於阿里雲APP這種認證方式,目前您可以設定兩種認證形式,分別是簽名認證和簡單認證(AppCode),本文將詳細介紹簡單認證(AppCode)方式的使用。

注意事項

簡單認證方式免去了複雜的簽名過程,但是把AppCode作為明文暴露網路中傳輸,會帶來一些安全隱患,請務必重視。

重要

用戶端和API Gateway之間務必使用HTTPS進行通訊,避免使用HTTP協議進行資料轉送。因為簡單認證方式,AppCode在傳輸過程中使用明文,而HTTP通訊協定沒有加密,一旦網路通訊的網路包被駭客抓取,有非常大的丟失AppCode的風險。

概述

  • 對於請求的簽名認證方式,可參見簽名認證方式調用API

  • 簡單認證(AppCode)使用API Gateway頒發的AppCode進行身份認證,調用者將AppCode放到要求標頭中,或者放到請求的Query參數中進行身份認證,實現快速調用API的能力。簡單認證(AppCode)過程如下:

    1. 建立簡單認證(AppCode)方式的API。

    2. 建立一個App(頒發AppCode)。

    3. 將建立的簡單認證(AppCode)方式的API授權給App。

    4. 使用API Gateway頒發的AppCode進行身份認證。

建立簡單認證(AppCode)API

  1. 登入API Gateway控制台,在左側導覽列選擇API管理 > 分組管理,在分組管理頁面單擊右上方建立分組

  2. 在建立分組頁面,選擇執行個體為所建立的API Gateway執行個體,填寫分組名稱BasePath,單擊確定

  3. 在左側導覽列選擇API管理 > API列表,在API列表頁面的右上方單擊建立API

  4. 在建立API基本資料頁面,選擇已建立的分組,填寫API名稱安全認證方式選擇為阿里雲APPAppCode認證選擇允許AppCode認證(Header)允許AppCode認證(Header & Query)

    358fcadb17655c8e8d14e358d2d96d67

    AppCode認證四個選項的說明如下:

    選項

    說明

    上架雲市場後開啟

    預設不開啟,如果API上架雲市場,則支援將AppCode放在Header中進行認證。

    禁止AppCode認證

    無論API是否上架雲市場,都不開啟,都需要使用簽名方式調用。

    允許AppCode認證(Header)

    無論API是否上架雲市場,都開啟,但只支援將AppCode放在Header中進行認證。

    允許AppCode認證(Header & Query)

    無論API是否上架雲市場,都開啟,同時支援將AppCode放在Header中,或者將AppCode放在Query中進行認證。

  5. 選擇簽名演算法,單擊下一步

  6. 進入定義API請求欄可參見定義API請求,然後單擊下一步

  7. 進入定義API後端服務可參見定義後端服務資訊,單擊儲存

說明
  • 定義API參數的時候,不需要定義攜帶AppCode的頭或者Header參數。

  • API建立完成之後可以將API發布到環境中進行調試。

建立一個App

  1. 登入API Gateway控制台,左側導覽列選擇API調用 > 應用管理,在應用管理頁面右上方單擊建立APP

  2. 在建立應用彈框中填寫應用程式名稱,單擊確定

說明
  • 已建立的App會自動產生一個AppCode,可在應用管理頁面單擊已建立的App應用程式名稱進入應用詳情頁面找到。

  • 如果您是雲市場使用者,在雲市場購買API時雲市場會為您建立一個 App。

簡單認證(AppCode)API授權給App

  1. 登入API Gateway控制台,在左側導覽列選擇API管理 > API列表,在API列表頁面選擇已建立的API名稱操作列下的image,單擊授權

  2. 在授權頁面選擇要授權的環境授權有效時間選擇要授權的應用。在我的應用程式,直接單擊搜尋,會載入本帳號下的APP,單擊添加選中確定

使用AppCode身份認證

簡單認證(AppCode)調用API,有兩種方式,一種是將AppCode放在Header中進行調用,一種是將AppCode放在Query參數中進行調用。

方式一:將AppCode放在Header中

  • 在請求Header中添加一個Authorization參數。

  • Authorization欄位的值的格式為APPCODE + 半形空格 +APPCODE值。格式如下:

    Authorization:APPCODE AppCode值

    樣本:

    Authorization:APPCODE 3F2504E04F8911D39A0C0305E82C3301
    重要

    當後端服務為HTTP函數時,Authorization不會透傳到後端服務,會被HTTP函數的Authorization覆蓋,建議將AppCode放在Query中。

方式二:將AppCode放在Query中

  • 在請求Query中添加AppCode參數(同時支援appcode , appCode , APPCODE , APPCode四種寫法)。

  • AppCode參數的值為AppCode的值。

樣本:

http://www.aliyum.com?AppCode=3F2504E04F8911D39A0C0305E82C3301