次の方法で共有


Microsoft Entra SDK for AgentID: 概要

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

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

Microsoft Entra SDK for AgentID とは

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

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

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

クライアント アプリケーション → Web API → Microsoft Entra SDK for AgentID → Microsoft Entra ID

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

Microsoft Entra SDK for AgentID は現在プレビュー段階です。 利用可能な最新のタグについては 、GitHub リリース を確認してください。

セキュリティ

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

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

注意事項

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

クイック スタート

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

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

主な利点

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

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

Microsoft Entra SDK for AgentID または Microsoft.Identity.Web を使用する場合

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

2 つの方法の選択に関する詳細なガイダンスについては、 Microsoft.Identity.Web との比較 を参照してください。

トークンの検証

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

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

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

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

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

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

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

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

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

クライアントが Web API を呼び出す一般的なフローである API は、HTTP エンドポイントを介して Microsoft Entra SDK for AgentID に 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 AgentID]:::dnode
    end
    sidecar -->|Token validation & acquisition| entra[Microsoft Entra ID]:::dnode

サポートとリソース

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

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

その他のヘルプ:

その他のリソース