API認証とアクセスの設定

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

APIセキュリティの重要性

HTTPセキュリティ

  • APIエンドポイントは公開されていることが多い
  • API背後のデータは保護が必要
  • 特に機密データに適用される
Azure API Management

認証の概要

  • 認証と認可は異なる概念である
  • 認証は呼び出し元の身元を証明する
  • ユーザー名とパスワードでのログインは認証の一形態

サインインフォーム

Azure API Management

認可の概要

非セキュアなリクエストとセキュアなリクエスト

  • 認可はアクセス権限を制御する
  • 認証済みユーザーでも認可されないことがある
  • 例:管理者のみ管理エリアにアクセス可能
Azure API Management

天気アプリの例

天気アプリの認可

Azure API Management

OAuthの概要

  • OAuthは認証に使用される
  • 認可にも使用される
  • 複雑なセキュリティプロトコル
  • 非常に高いセキュリティ評価を持つ

アクセストークンの発行

Azure API Management

Google OAuthの例

Google OAuthの例

Azure API Management

Azure FunctionsにおけるAPIキー認可

  • 認可に認証が必須とは限らない
  • HTTPエンドポイントはAPIキーで保護できる
  • 長い文字列
  • 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...