先週末に開催された 第63回 Tokyo Jazug Night【Microsoft Entra 回】 の 国井さん の Microsoft Entra IDからAgent IDの必要性を考える のセッションで、Copilot Studio で作成したエージェントのエージェント ID の無効化についての話がありました。
Copilot Studio のエージェント ID ですが、Copilot Studio エージェントを Microsoft Entra エージェント ID に移行する に記載されているように、Agent 365 の提供前に作成されている Copilot Sutio で作成したエージェントについてもエージェント ID の付与が自動的に行われており、以前作成したエージェントについてもエージェント ID の付与が行われた状態となっています。
アプリ登録IDを使用する既存のエージェントは、Microsoftによって自動的に移行されています。
Copilot Studio で作成したエージェントについて、エージェント ID を無効化した際の挙動について、今までは効果がないと思っていたのですが、セッション内で無効化することでエージェントの利用を防止することができるという内容がありました。
現在の挙動としてどのようになっているのか一度把握しておきたいと思い、改めて評価した内容を残しておきたいと思います。
Copilot Studio におけるエージェント ID の利用について
Copilot Studio におけるエージェント ID の利用ですが、基本的な仕様としては、次の内容であるという理解です。
Copilot Studio エージェント: チャネルとサービスでの認証のために Entra エージェント ID (またはレガシ エージェントのアプリ登録) を受け取ります。
エージェント ビルダー エージェント: 現在、アプリ登録 ID またはエージェント ID は使用しません。 詳細については、「Microsoft Copilot のエージェント ビルダー」を参照してください。
チャネルとサービスの認証のためにエージェント ID が使用されるという記載となっており、エージェントを使用するための初期処理としてエージェント ID が利用されていることが示されています。
私の理解している範囲では、Copilot Studio で作成したエージェントについては、次の 2 種類の方法で利用される機会が多いのではないでしょうか。
- Microsoft 365 でエージェントを使用する
- Teams でエージェントを使用する
前述のとおり、Copilot Studio で作成したエージェントは、エージェント ID が自動的に付与された状態となりますので、Microsoft Entra 管理センターのエージェントから作成したエージェントのエージェント ID を無効化することができます。
無効化した場合の Copilot Studio で作成したエージェントですが、Microsoft 365 Copilot と Teams のチャネルで実行した場合、実行するチャネルによって無効化時の挙動が異なっているようでした。
Microosft 365 Copilot からはエージェント ID を無効にしてもエージェントと対話することができました。
Teams からの利用については、エージェント ID が無効になっていると、対話しても応答がないという状態となりました。
エージェント ID を無効にしたエージェントについて、エージェント ID のサインインログを確認すると、Bot Framework のリソースへのアクセスが失敗していることが確認できます。
Microsoft 365 Copilot からエージェントにアクセスした場合、Bot Framework へのアクセスのサインインログは発生していなかったのですが、Teams からエージェントにアクセスした場合は、Bot Framework へのアクセスが発生するという違いがあるようです。
エージェント ID の無効化 / エージェントに対しての条件付きアクセスポリシーは、エージェントからリソースにアクセスするためのトークン取得が発生した際に、エージェント ID からのトークン取得をブロックするという動作になります。
そのため、Bot Framework へのアクセスが発生している Teams からのエージェントの利用については、エージェント ID を無効化した影響を受けているようです。
今後、Microsoft 365 Copilot でもエージェント ID を無効化した影響を受ける可能性があるかは不明ですが、Copilot Studio で作成したエージェントのエージェント ID の無効化の機能評価を行う場合には「どのチャネルでの実行を想定するのか?」については意識をしておいたほうが良いかもしれませんね。