Microsoft Entra SDK for Agent ID の概要

Microsoft Entra SDK for Agent ID は、トークンの取得、検証、および安全なダウンストリーム API 呼び出しを処理するコンテナー化された Web サービスです。 アプリケーションと共にコンパニオン コンテナーとして実行されるため、ID ロジックを専用サービスにオフロードできます。 Microsoft Entra SDK for Agent ID で ID 操作を一元化することで、各サービスに複雑なトークン管理ロジックを埋め込む必要がなくなり、コードの重複と潜在的なセキュリティの脆弱性が軽減されます。

Kubernetes、Docker を使用したコンテナー化されたサービス、または Azure 上の最新のマイクロサービスを使用して構築する場合、Microsoft Entra SDK for Agent ID は、クラウドネイティブ アプリケーションでの認証と承認を処理するための標準化された方法を提供します。

Microsoft Entra SDK for Agent ID とは

Microsoft Entra SDK for Agent ID は、認証と承認のために HTTP API を介してアプリケーションと通信し、テクノロジ スタックに関係なく一貫した統合パターンを提供します。 Microsoft Entra SDK for Agent ID は、アプリケーション コードに ID ロジックを直接埋め込む代わりに、標準の HTTP 要求を介してトークンの管理、検証、および API 呼び出しを処理します。

このアプローチにより、一貫した認証パターンを維持しながら、さまざまなサービスをPython、Node.js、Go、Javaなどで記述できるポリグロット マイクロサービス アーキテクチャが可能になります。

一般的なアーキテクチャは次のとおりです。

クライアント アプリケーション → あなたの Web API → Microsoft Entra SDK for Agent ID → Microsoft Entra ID

最新のコンテナー イメージとバージョン タグについては、使用を開始する コンテナー イメージ を参照してください。

セキュリティ

Microsoft Entra SDK for Agent ID のデプロイが、セキュリティで保護された操作のベスト プラクティスに従っていることを確認します。 SDK は、許可されていないアクセスを防ぐために、ネットワーク アクセスが制限されたコンテナー化された環境で実行する必要があります。 SDK API をパブリックに公開すると、未承認のトークン取得などのセキュリティの脆弱性につながる可能性があります。

セキュリティ のベスト プラクティス を参照して、ネットワーク、資格情報、および実行時のセキュリティに関する推奨事項のベスト プラクティスを確認します。

注意事項

SDK API にパブリックにアクセスすることはできません。 承認されていないトークンの取得を防ぐために、同じ信頼境界内 (同じポッドや仮想ネットワークなど) 内のアプリケーションのみがアクセスできるようにする必要があります。

簡単スタート

Microsoft Entra SDK for Agent ID の使用を開始するには、次の手順を実行することをお勧めします。

  1. デプロイを選択する - Kubernetes、Docker、または AKS を選択する
  2. 設定の構成 - 環境変数を設定する
  3. シナリオを選択する - ガイド付き例に従う
  4. 運用環境へのデプロイ - セキュリティのベスト プラクティスを確認する

主な利点

このアーキテクチャでは、ID に関する懸念事項をビジネス ロジックから分離し、次の利点を提供します。

メリット Description
複数言語のサポート Python、Node.js、Go、Javaなどから HTTP 経由で呼び出す
一元化されたセキュリティ構成 ID 構成、トークン管理、資格情報管理の 1 つの場所
コンテナー ネイティブ Kubernetes、Docker、AKS、およびその他の最新のデプロイ用に構築されています
ゼロ トラスト Ready マネージド ID と所有証明トークンとの統合 - 機密データをアプリケーション コードから除外する

エージェント ID のための Microsoft Entra SDK または Microsoft.Identity.Web を使用するタイミング。

Scenario Microsoft Entra SDK を使ってエージェント ID を使用する Microsoft.Identity.Web を使用します。
言語サポート 複数の言語 (Python、Node.js、Go、Javaなど) .NETのみ
デプロイメント モデル コンテナー (Kubernetes、Docker、AKS) 任意のデプロイ モデル
ID パターン すべてのサービスで一貫したパターン ディープ .NET フレームワークの統合
エージェント ID サポートされているすべての言語で利用可能 .NETのみ
トークンの検証 サポートされているすべての言語で利用可能 .NETのみ
セキュリティ モデル アプリケーション コードから分離されたシークレットとトークン アプリケーションとの統合
パフォーマンス 追加のネットワーク ホップが必要 直接インプロセス呼び出し
フレームワークの統合 HTTP API の統合 ネイティブ .NET統合
コンテナー化 コンテナー化された環境向けに設計 コンテナーの有無にかかわらず動作します

Microsoft.Identity.Web との比較を参照して、2 つのアプローチの選択に関する詳細なガイダンスを確認してください。

トークンの検証

Microsoft Entra SDK for Agent ID は、Microsoft Entra IDによって発行されたアクセス トークンと ID トークンの両方を検証し、Microsoft Entra IDの公開キーに対して署名を検証し、有効期限を確認し、トークンがアプリケーション用であることを確認します。 検証が完了したら、ユーザーの要求、ロール、スコープを抽出して、アプリケーション ロジック内で十分な情報に基づいた承認の決定を行うことができます。

トークン取得/承認ヘッダーの作成

  • オン・ビハーフ・オブ OAuth 2.0 フロー - ダウンストリーム API にユーザーコンテキストを委任する
  • クライアント資格情報 - アプリケーション間認証
  • 管理 ID - ネイティブ Azure サービス認証
  • エージェント ID - 自律または委任されたエージェント パターン

ダウンストリーム API 呼び出し

  • トークンを自動的に取得してアタッチする
  • 省略可能な要求のオーバーライド (スコープ、メソッド、ヘッダー)
  • 署名された HTTP 要求 (PoP/SHR) のサポート

シナリオとチュートリアル

次のガイドは、Microsoft Entra SDK for Agent ID をアプリケーションに統合する方法を示す実用的なコード例を含む包括的なステップ バイ ステップ チュートリアルです。 各シナリオでは、さまざまなプログラミング言語とフレームワークに合わせて調整された完全な要求/応答の例、コード スニペット、実装パターンが提供されます。

Scenario Description
承認ヘッダーの検証 アクセス制御とカスタム承認ミドルウェアのベアラー トークンから要求を抽出する
承認ヘッダーを取得する ダウンストリーム API を安全に呼び出すためのトークンを取得する
ダウンストリーム API を呼び出す 複数言語マイクロサービスの自動トークン添付を使用して、保護された API への HTTP 呼び出しを行う
マネージド ID を使用する Microsoft Graphまたはその他のAzure サービスを呼び出すためのAzure サービスとして認証する
長時間連続実行のOBOフローを実装する 拡張操作におけるトークンの更新とOn-Behalf-Ofデリゲーションを用いたユーザーコンテキストの管理
署名付き HTTP 要求を使用する PoP トークンを使用して所有証明セキュリティを実装する
エージェントの自律バッチ処理 自律エージェント ID を使用してバッチ ジョブを処理する
TypeScript から統合する Node.js/Express/NestJS アプリケーションからエージェント ID 用の Microsoft Entra SDK を使用する
Pythonから統合する Flask/FastAPI/Django アプリケーションからエージェント ID 用 Microsoft Entra SDK を使用する

アーキテクチャのパターン

クライアントが Web API を呼び出す一般的なフローである API は、HTTP エンドポイントを介して MICROSOFT ENTRA SDK for Agent ID に ID 操作を委任します。 SDK は、 /Validate エンドポイントを使用して受信トークンを検証し、 /AuthorizationHeader/AuthorizationHeaderUnauthenticatedを使用してトークンを取得し、 /DownstreamApi/DownstreamApiUnauthenticatedを使用してダウンストリーム API を直接呼び出すことができます。

次のスニペットに示すアーキテクチャを使用して、トークンの発行と Open ID Connect メタデータ取得のMicrosoft Entra IDと対話します。

%%{init: {
  "theme": "base",
  "themeVariables": {
    "background": "#121212",
    "primaryColor": "#1E1E1E",
    "primaryBorderColor": "#FFFFFF",
    "primaryTextColor": "#FFFFFF",
    "textColor": "#FFFFFF",
    "lineColor": "#FFFFFF",
    "labelBackground": "#000000"
  }
}}%%
flowchart LR
    classDef dnode fill:#1E1E1E,stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF
    linkStyle default stroke:#FFFFFF,stroke-width:2px,color:#FFFFFF

    client[Client Application]:::dnode -->| Bearer over HTTP | webapi[Web API]:::dnode
    subgraph Pod / Host
        webapi -->|"/Validate<br/>/AuthorizationHeader/{name}<br/>/DownstreamApi/{name}"| sidecar[Microsoft Entra SDK for Agent ID]:::dnode
    end
    sidecar -->|Token validation & acquisition| entra[Microsoft Entra ID]:::dnode

サポートとリソース

次のリソースは、包括的なガイダンスを提供し、一般的な質問に対する問題と回答のトラブルシューティングに役立ちます。

Resource Description
エージェント ID 高度なシナリオの自律型および委任されたエージェント パターンについて説明します
API リファレンス 要求/応答形式、クエリ パラメーター、およびエラー コードを含む完全なエンドポイント ドキュメント
トラブルシューティング デプロイとランタイムの問題に関する一般的な問題と詳細な解決策
FAQ 構成、セキュリティ、統合に関するトピックについてよく寄せられる質問

その他のヘルプ: