使用 Entra ID 的驗證與授權

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

OAuth 基礎概念

Entra ID - APIM 整合

Azure API Management

為何使用身分提供者

代客泊車類比

  • 你可以把 IdP 想成代客泊車員
  • 你的車手套箱裡有貴重物品(受保護資料)
  • 你交給他一把特製的「代客鑰匙」
    • 只能代客泊車,不能拿取貴重物品
  • 類似地,IdP 管理應用程式安全,但不能取用應用內的受保護資料
  • 例如:Entra ID 作為 IdP,API Manager 作為用戶端
Azure API Management

註冊 Entra ID 應用

  • Azure Portal 可找到 Entra ID
  • 管理需要高權限的貢獻者存取
  • 要套用 OAuth,至 App Registration 新增實體
  • 每個註冊需自訂名稱與有效的重新導向 URL
  • 對 APIM 而言,重新導向 URL 是 APIM 執行個體位址
  • 這可確保登入後 Entra ID 會把請求導回 APIM

Entra ID 應用註冊

Azure API Management

擷取用戶端資訊

Entra ID 用戶端資訊

  • Client ID 與 Tenant ID

    • 構成應用程式的「公開位址」
    • 程式碼用它們告訴 Entra ID 應用是「誰」
  • Client Secret

    • 相當於應用程式的「密碼」
    • 程式碼以此證明身分
    • 必須安全保存,切勿曝露於用戶端程式碼
Azure API Management

取得端點 URL

  • 在將用戶端連接到 IdP 前先取得 IdP 端點 URL

    • 在 Entra ID 的應用註冊「Overview」頁面點選「Endpoints」
    • 取得 OAuth 2.0 的「authorization」與「token」端點
  • Authorization Endpoint

    • 程式碼會將使用者導向此處登入
  • Token Endpoint

    • 後端在此用授權碼交換存取權杖

Entra ID 驗證流程

Azure API Management

將 APIM 連到 Entra ID

APIM 中的 OAuth 與 OIDC 連線

  • 在 APIM 的 APIs 下開啟「OAuth 2.0 + OpenID Connect」

    • 定義新的 authorization server
  • 伺服器設定包含:

    • Authorization 與 token 端點
    • Client ID 與 Client Secret
    • 你的 API 所暴露的 scopes
Azure API Management

一起來練習吧!

Azure API Management

Preparing Video For Download...