Entra ID を使った認証と認可

Azure API Management

Fiodar Sazanavets

Senior Software Engineer at Microsoft

OAuth の基本概念

Entra ID と APIM の統合

Azure API Management

ID プロバイダーを使う理由

カーバレーのたとえ

  • IdP をカーバレーにたとえることができる
  • 車のグローブボックスには貴重品(安全なデータ)が入っている
  • バレーには特別な バレーキー を渡す
    • 駐車のみ可能で、貴重品へのアクセスは不可
  • 同様に、IdP はアプリのセキュリティを管理するが、アプリ内の安全なデータにはアクセスできない
  • 例: Entra ID が IdP、API Manager がクライアントとして機能する
Azure API Management

Entra ID アプリの登録

  • Entra ID は Azure Portal から利用できる
  • 管理には高い権限を持つ共同作成者アクセスが必要
  • OAuth を適用するには、アプリの登録 で新しいエンティティを追加する
  • 各登録にはカスタム名と有効なリダイレクト URL が必要
  • APIM の場合、リダイレクト URL は APIM インスタンスのアドレス
  • これにより、ログイン後に Entra ID がリクエストを APIM に戻す

Entra ID アプリの登録

Azure API Management

クライアント情報の取得

Entra ID クライアント情報

  • クライアント ID とテナント ID

    • アプリケーションの 公開アドレス を形成する
    • コードが Entra ID にアプリの 「識別情報」 を伝えるために使用
  • クライアントシークレット

    • アプリケーションの パスワード として機能する
    • コードが身元を証明するために提示する
    • 必ず安全に保管し、クライアント側のコードに公開してはならない
Azure API Management

エンドポイント URL の取得

  • クライアントを IdP に接続する前にエンドポイント URL を取得する

    • Entra ID でアプリ登録の 概要 ページから エンドポイント をクリック
    • OAuth 2.0 の 認可 エンドポイントと トークン エンドポイントを取得
  • 認可エンドポイント

    • ユーザーをサインインにリダイレクトする場所
  • トークンエンドポイント

    • バックエンドが認可コードをアクセストークンと交換する

Entra ID 認証フロー

Azure API Management

APIM と Entra ID の接続

APIM における OAuth と OIDC の接続

  • APIM で API の OAuth 2.0 + OpenID Connect を開く

    • 新しい認可サーバーを定義する
  • サーバーの設定内容:

    • 認可エンドポイントとトークンエンドポイント
    • クライアント ID とクライアントシークレット
    • API が公開するスコープ
Azure API Management

さあ、練習しましょう!

Azure API Management

Preparing Video For Download...