Identity について
AGNTCY Identity は、エージェント、MCP サーバー、マルチエージェントシステムの ID を発行・検証するオープンソースのコンポーネントです。エンティティ間で検証可能な信頼が必要なエージェント基盤を対象としています。
主な機能
- 01エージェントと MCP サーバーの一意な ID の作成
- 02外部 IdP で発行された既存 ID の取り込み
- 03バッジ型クレデンシャルの発行と検証
- 04コマンドラインでのボールトとクレデンシャルの管理
- 05ID メタデータを保存する Node バックエンド
活用シーン
- 01MCP サーバーのメタデータ生成とバッジの公開
- 02公開済みバッジの真正性の検証
- 03Okta などの IdP とエージェント ID の連携
MCP 対応
本プロジェクトは MCP サーバー向けの ID とバッジの検証機能を提供し、メタデータの生成、バッジの公開と検証を扱います。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
ID
AGNTCY Identity は、オープンかつ分散型の手法を通じて、エージェントを一意に識別するための安全で検証可能な方法を提供します。各エージェントには、検証可能なクレデンシャル(VC)によって裏付けられた、全世界で一意な識別子が割り当てられます。 AGNTCY Identity を使用すると、Identity Provider(Okta など)が割り当てる ID や Agent Card(Google の A2A など)といった規約に基づく独自の ID を持ち込むことも、標準規格(W3C DID など)に従った ID を割り当てることもできます。 このコンポーネントにより、AGNTCY エコシステム内のすべてのエージェントが検証可能で全世界で一意な ID を持つことが保証されます。これにより、ID の割り当て方法に関係なく、多様なマルチエージェントシステム間で安全な認証、信頼できる通信、相互運用性が実現します。
- ID は ResolverMetadata オブジェクトにリンクされ、安全かつ自動的に検証できます。
- ID は 1 つ以上の Agent Badge にリンクできます。なぜでしょうか?複数のバッジを使用すると、エージェントに過剰な権限を付与することなく、タスクに応じた細かなアクセス権をさまざまなシステムに設定できます。Agent Badge には、次の内容を含む検証可能なクレデンシャル(VC)が含まれます。
- エージェントの ID
- スキーマ定義(OASF など)
- 認証やその他のセキュリティ要件のためのメタデータ
メモ
これと同じ構造は MCP サーバーと MAS にも適用され、IoA において ID を持つすべてのエンティティ間で一貫性が保たれます。
📚 目次
- 🚀 エージェントの信頼性を設計する
- 🌟 機能と主要コンポーネント
- ⚡️ 5 分で始める
- 📜 CLI の主要コマンドを見る
- 🧪 デモを実行する
また、次のこともできます。
- 📖 CLI と Node の全ドキュメントを読む
- 📦 サンプルのエージェントと MCP サーバーを確認する
- 📘 プラットフォームの機能を理解するために、ドキュメント全体を確認する
- 📝 詳細な API ドキュメントについて、API 仕様を確認する
🚀 エージェント型の信頼を設計する
- 基本原則:信頼はエージェントのインターネットの基盤です。
- アイデンティティを基盤に:AGNTCY Identity により、エージェントとツール(MCP サーバー)の真正性を検証できます。
- 柔軟性と相互運用性:BYOID(Bring Your Own ID)に対応し、既存のアイデンティティプロバイダー(IdP)と統合できます。
ソフトウェアエージェント間の安全で信頼性の高い通信は、エージェントのインターネット(IoA)のビジョンを支える重要な要素です。 適切なアイデンティティ管理がなければ、悪意のあるエージェントや未検証のエージェントがマルチエージェントシステム(MAS)に侵入し、誤情報、詐欺、セキュリティ侵害につながるおそれがあります。 こうしたリスクを軽減するため、AGNTCY はエージェントの認証と関連メタデータの検証に、一貫性のある標準フレームワークを提供します。 これは、次のすべてに適用されます。
- エージェント
- Model Context Protocol(MCP)サーバー
- MAS(マルチエージェントシステム)
ヒント
このリポジトリには、AGNTCY Identity の各コンポーネントの動作を紹介する AI エージェントと MCP サーバーが含まれています!
🌟 機能と主なコンポーネント
機能
- アイデンティティの作成:エージェントと MCP サーバー向けに、一意で検証可能なアイデンティティを生成します。
- 既存アイデンティティのオンボーディング:外部 IdP のアイデンティティを統合します。
- バッジの作成と検証:エージェントと MCP サーバーを認証し、メタデータを検証します。
主なコンポーネント
- Issuer CLI:コマンドラインインターフェースを使用して、アイデンティティ、保管庫、認証情報を管理します。
- Node Backend:アイデンティティ管理とメタデータを扱うバックエンドサーバーです。
⚡️ 5 分で始める
この簡単なガイドでは、Identity の Issuer CLI と Node Backend をセットアップします。
Issuer CLI では、エージェントと MCP サーバーのバッジを生成、登録、検索、検証できます。CLI には、バッジへの署名に必要なキーをローカルストレージ、またはサードパーティーのウォレットや保管庫に保存し、取得するためのライブラリが含まれています。
Node Backend は API とバックエンドのコアで構成されています。org:sub-org ID、PubKeys、Subject ID、バッジ、ResolverMetadata、Verifiable Credentials(VC)などのメタデータを保存、管理し、関連付けます。
前提条件
以下の手順を実行するには、次のいずれかをインストールしておく必要があります。
ステップ 1:Issuer CLI をインストールする
次のコマンドを使用して Issuer CLI をインストールします。
curl を使用する場合:
sh -c "$(curl -sSL https://raw.githubusercontent.com/agntcy/identity/refs/heads/main/deployments/scripts/identity/install_issuer.sh)"
または、wget を使用する場合:
sh -c "$(wget -qO- https://raw.githubusercontent.com/agntcy/identity/refs/heads/main/deployments/scripts/identity/install_issuer.sh)"
メモ
お使いのプラットフォームに対応する
Issuer CLIバイナリは、最新リリースからダウンロードすることもできます。一部のプラットフォームでは、実行権限の追加や、
System Security Settingsでのバイナリの承認が必要な場合があります。より簡単に使えるように、バイナリを
$PATHまたは/usr/local/binフォルダーに移動することをおすすめします。
ローカルで Golang をセットアップ済みの場合は、go install command も使用できます。
go install github.com/agntcy/identity/cmd/issuer@latest && \
ln -s $(go env GOPATH)/bin/issuer $(go env GOPATH)/bin/identity
ステップ 2:Docker で Node Backend を起動する
-
リポジトリをクローンし、
identityディレクトリに移動します。git clone https://github.com/agntcy/identity.git && cd identity -
Docker で Node Backend を起動します。
./deployments/scripts/identity/launch_node.shまたは、ローカルで利用できる場合は
makeを使用します。make start_node
メモ
Node Backend は、helm chart を使用してインストールすることもできます。手順はチャートのディレクトリにあります。
ステップ 3:インストールを確認する
以下のコマンドを実行すると、インストールを確認し、利用可能な各種コマンドを表示できます。
identity -h
📜 CLI で使用する基本コマンド
CLI で使用できる基本コマンドは次のとおりです。
- vault:暗号化された Vault とキーを管理します
- issuer:発行者の設定を登録および管理します
- metadata:ID のメタデータを生成および管理します
- badge:ID のバッジを発行および公開します
- verify:ID バッジを検証します
- config:現在の設定コンテキストを表示します
🧪 デモを実行する
このデモシナリオでは、AGNTCY Identity コンポーネントを実際の環境でどのように使用できるかを確認できます。 次の操作を実行できます。
- 発行者として登録する
- MCP サーバーのメタデータを生成する
- MCP サーバーのバッジを発行して公開する
- 公開されたバッジを検証する
前提条件
まず、上記の 5 分で始める セクションの手順に従って Issuer CLI をインストールし、Node Backend を実行して、ローカルの Vault とキーを生成してください。
このデモ環境をローカルで実行するには、以下がインストールされている必要があります。
ステップ 1:Ollama と Docker でサンプルを実行する
サンプルのエージェントは、ローカルの Llama 3.2 LLM インスタンスを利用してエージェントの機能を実現します。 Ollama をインストールしたら、次のコマンドを使ってモデルをダウンロードして実行できます(サイズは約 2 GB のため、十分なディスク空き容量があることを確認してください)。
-
Llama 3.2 モデルを実行します。
ollama run llama3.2 -
リポジトリのルートから
samplesディレクトリに移動し、次のコマンドを実行してCurrency Exchange MCP Serverを利用するCurrency Exchange A2A Agentをデプロイします。cd samples && docker compose up -d -
[任意]付属の テストクライアント を使ってサンプルをテストします。
ステップ 2:CLI を使ってローカルの Vault を作成し、キーを生成する
-
生成した暗号化キーを保存するローカルの Vault を作成します。
identity vault connect file -f ~/.identity/vault.json -v "My Vault" -
新しいキーペアを生成し、Vault に保存します。
identity vault key generate
ステップ 3:発行者として登録する
このデモでは、Okta を IdP として使用し、発行者用のアプリケーションを作成します。 試用アカウントとアプリケーションをすばやく作成できるよう、Okta CLI を使ってプロセスを自動化するスクリプトを用意しています。
重要
すでに Okta アカウントをお持ちの場合は、
okta loginコマンドを使って既存の組織にログインできます。新しい Okta 開発者アカウントの登録に失敗した場合は、手動で試用登録を行ったうえで、Okta CLI の指示に従って
okta loginコマンドを使用してください。
-
リポジトリのルートから次のコマンドを実行し、新しい Okta アプリケーションを作成します。
. ./demo/scripts/create_okta_app -
対話形式のプロンプトで、次のオプションを選択します。
> 4: Service (Machine-to-Machine),> 5: Other -
Issuer CLIと前の手順で設定した環境変数を使って、発行者を登録します。identity issuer register -o "My Organization" \ -c "$OKTA_OAUTH2_CLIENT_ID" -s "$OKTA_OAUTH2_CLIENT_SECRET" -u "$OKTA_OAUTH2_ISSUER"
メモ
http://localhost:4000/v1alpha1/issuer/{common_name}/.well-known/jwks.jsonでIssuer's Well-Known Public Keyにアクセスできるようになりました。{common_name}は、登録時に指定したコモンネームです。
ステップ 4:MCP サーバーのメタデータを生成する
前のステップと同様に、Okta を使用して MCP サーバーのメタデータ用の 2 つ目のアプリケーションを作成します。
-
リポジトリのルートから次のコマンドを実行し、新しい Okta アプリケーションを作成します。
. ./demo/scripts/create_okta_app -
対話型プロンプトで、次のオプションを選択します。
> 4: Service (Machine-to-Machine),> 5: Other -
Issuer CLIと前のステップで設定した環境変数を使用して、MCP サーバーのメタデータを生成します。identity metadata generate -c "$OKTA_OAUTH2_CLIENT_ID" \ -s "$OKTA_OAUTH2_CLIENT_SECRET" -u "$OKTA_OAUTH2_ISSUER"
メモ
成功すると、このコマンドはメタデータ ID を出力します。次のステップで、このメタデータにリンクされた公開済みバッジを表示する際に必要になります。
ステップ 5:MCP サーバーのバッジを発行して公開する
-
MCP サーバーのバッジを発行します。
identity badge issue mcp -u http://localhost:9090 -n "My MCP Server" -
バッジを公開します。
identity badge publish
メモ
http://localhost:4000/v1alpha1/vc/{metadata_id}/.well-known/vcs.jsonでVCs as a Well-Knownにアクセスできるようになりました。{metadata_id}は前のステップで生成したメタデータ ID です。
(任意)ステップ 6:公開済みバッジを検証する
Issuer CLI を使用すると、自分で発行したものに限らず、公開済みの任意のバッジを検証できます。
これにより、公開したエージェントと MCP のバッジを他のユーザーが検証できます。
-
前のステップで作成したバッジをダウンロードします。{metadata_id} はステップ 4 のメタデータ ID に置き換えてください。
curl -o vcs.json http://localhost:4000/v1alpha1/vc/{metadata_id}/.well-known/vcs.json -
Issuer CLIを使用してバッジを検証します。identity verify -f vcs.json
メモ
Python SDK を使用して、プログラムからバッジを検証することもできます。詳しくは、Python SDK を参照してください。
開発
開発手順の詳細については、次のセクションを参照してください。
ロードマップ
提案されている機能と既知の問題の一覧については、未解決の Issue を参照してください。
貢献
貢献は、オープンソースコミュニティを学び、刺激を受け、創造するための素晴らしい場所にしています。皆さまからの貢献を心より歓迎します。詳しい貢献ガイドラインについては、CONTRIBUTING.md をご覧ください。
著作権表示
Apache 2.0 ライセンスの下で配布されています。詳しくは LICENSE をご覧ください。 著作権者:AGNTCY コントリビューター。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。