設定 API 驗證與存取

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

API 安全性的重要性

HTTP 安全性

  • API 端點常為公開
  • API 背後的資料需要保護
  • 尤其是敏感資料
Azure API Management

驗證概觀

  • 驗證與授權不同
  • 驗證用來證明呼叫者身分
  • 以使用者名稱與密碼登入是一種驗證

登入表單

Azure API Management

授權概觀

不安全 vs 安全的請求

  • 授權用來控管許可權
  • 已驗證的使用者仍可能未被授權
  • 例如:只有系統管理員可進入管理區
Azure API Management

天氣 App 範例

天氣 App 授權

Azure API Management

OAuth 簡介

  • OAuth 可用於驗證
  • 也可用於授權
  • 複雜的安全性通訊協定
  • 安全性評等很高

發行存取權杖

Azure API Management

Google OAuth 範例

Google OAuth 範例

Azure API Management

Azure Functions 的 API 金鑰授權

  • 授權不一定需要驗證
  • 可用 API 金鑰保護 HTTP 端點
  • 由長字元組成的字串
  • 在 Azure Functions 會產生預設金鑰
  • 請求中必須包含金鑰
  • 用戶端需要知道金鑰
  • 用戶端不需證明其身分

在 Azure 設定 API 金鑰

Azure API Management

API 金鑰的不同範圍

Azure Function 中的 API 金鑰範圍

  • 不同金鑰有不同範圍
  • 函式層級金鑰 只授權特定函式
    • 就像開某一扇門的實體鑰匙
  • 主機層級金鑰
    • 可存取同一應用內所有函式
    • 像大樓中可開所有門的萬用鑰匙
Azure API Management

API Management 的驗證

  • APIM 可連接驗證提供者
  • 其中一個是 Entra ID
    • 先前稱為 Active Directory
  • 與 OAuth 整合比用 API 金鑰更安全
    • 但也更複雜

在 APIM 啟用 Entra ID 整合

Azure API Management

API Management 授權原則

 

在 APIM 驗證 JWT

在 API Management 中以原則實作授權

  • 原則定義存取規則

  • 依角色限制端點

  • 確保只有已授權的用戶端呼叫 API

Azure API Management

一起來練習吧!

Azure API Management

Preparing Video For Download...