
前回は Entra ID で AI エージェントに ID を付与し、ロールを割り当てる手順を記載しました。
今回は、AI エージェントに資格情報を設定します。
その前に
1. 認可 (RBAC) と認証 (FIC) の区別
AI エージェントが動くためには、認可と認証が必要となります。
前回の記事では AI エージェントにロールを割り当てましたが、これは「認可」です。この AI エージェントに割り当てる権限を付与するものでした。
認可のほかに、AI エージェントを認証する「資格情報」が必要です。
2. AI エージェントはヒトではない
ID を付与する、という行為ではあるけれど、AI エージェントはヒトではありません。例えば、MFA (多要素認証) を設定し、Microsoft Authenticator などで OTP を発行して認証する、などはできません。
AI エージェントは Azure で言うならばサービスプリンシパルの一つのタイプ「ServiceIdentity」なのです。
3. ユーザープリンシパルとサービスプリンシパル
ユーザープリンシパルはヒトに紐づく ID です。簡単に言うと、皆様が PC やシステムにログインするときに使用する ID です。
AI エージェントは、プログラムとして動き、Authenticator の通知に応答することができません。こうした「ヒトではないアプリケーション」がリソースにアクセスするための ID がサービスプリンシパルであり、エージェント ID はその一種となります。
4. AI エージェントの資格情報
AI エージェントの資格情報は前述のとおりエージェント Blueprint で設定します。AI エージェントのオブジェクト構造は以下のようになります。
Agent Identity Blueprint (アプリケーションオブジェクト)
|
-- Blueprint Principal (テナント内のサービスプリンシパル)
|
-- Agent Identity (サービスプリンシパルの ServiceIdentity サブタイプ)
エージェント ID は自前の資格情報を持たず、Blueprint が取得したトークンを使って認証し、トークン取得は Blueprint に代行してもらいます。
Agent blueprint のクレデンシャルは、3 種類から選択できます。
A. クライアントシークレット
Blueprint の Entra ID 登録に保存される共有シークレット文字列
B. 証明書
X.509 証明書によるアサーションベース認証
証明書のライフサイクル管理が必要となる
C. フェデレーション資格情報
IdP が発行した短命のトークンを Entra ID が信頼し、引き換えにトークンを発行する
Entra 側にはシークレットは保存されない
なお、Entra ID では「B. 証明書」または「C. フェデレーション資格情報」が推奨されています。
To best align with Zero Trust principles, we recommend federated credentials or certificates.
「B. 証明書」は証明書の更新について検討が必要となります。しかし、HSM や Key Vault に秘密鍵をエクスポートできない形で保管することで、鍵を盗まれる危険は少なくなります。署名操作の権限管理は引き続き必要です。
「C. フェデレーション資格情報」は安全と思われがちですが、以下の考慮、検討が必要になります。
・ VM や App Service でコードを実行できれば、マネージド ID のトークンを取得できる
・ ユーザー割当てマネージド ID は、権限があれば別のリソースに割り当て可能であるため、攻撃者が自分の VM に割り当てるなどで Blueprint に成りすませる
・ FIC のシナリオに「その他の発行者」を選んで攻撃者が管理する IdP を設定するなどで不正な FIC の追加が可能に
これらのリスクに対応するために、権限の最小化や変更の監視を検討の上実装する必要があります。

5. AI エージェントへの Credential の設定
AI エージェントへ Credential を設定する一例です。今回は IdP に AWS のアウトバウンド ID フェデレーションを使います。
-
前準備
0-1. AWS マネジメントコンソールで [IAM] - [アカウント設定] を選択します。
0-2. [アウトバウンド ID フェデレーション] を有効化し、[トークン発行者 URL] を控えます。

0-3. [IAM] - [ロール] を選択します。
0-4. AI エージェントを使用するロールを作成し、ロール ARN を控えます。

-
設定手順
- Entra ID で Agent を選択し、[Agent blueprint] を選択します
- 対象の Agent Blueprint を選択します (ここでは前回作成した claude-sonnet)
- 左ペインのメニューで [Credentials] を選択します。
- [フェデレーション資格情報] を選択し、[資格情報の追加] をクリックします。
- [フェデレーション資格情報のシナリオ] で「その他の発行者」を選択します。
- [発行者] に 0-2 で控えた [トークン発行者 URL] を入力します。
- [値] に 0-4 で控えたロール ARN を入力します。
- [名前] を入力し、[追加] をクリックします。
これで、資格情報が設定され、Claude AI を呼び出す準備が整いました。
まとめ
今回は AI エージェントが動くために必要な「認証」の部分として、Agent Blueprint に資格情報を設定しました。ポイントは以下の通りです。
・ ロールの割当て (認可) だけではエージェントは動かず、認証ための資格情報が必要
・ エージェント ID はヒトではなくサービスプリンシパルの一種であり、資格情報はエージェント ID ではなく Blueprint 側が持つ
・ 資格情報は証明書かフェデレーション資格情報が推奨。ただしフェデレーションでも IdP 側の権限や FIC の追加・変更を管理しなければなりすましのリスクは残る

