Work IQ を使用してエージェントをMicrosoft 365に接続する (プレビュー)

Important

この記事で "(プレビュー)" と付記されている項目は、現在、パブリック プレビュー段階です。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能がサポートされていないか、機能が制限されている可能性があります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

Work IQ は、組織全体のリアルタイムの共有コンテキストでMicrosoft 365 Copilotとエージェントを根拠とするインテリジェンス レイヤーです。 電子メール、会議、ファイル、チャット、ビジネス システムからシグナルをキャプチャし、セマンティック理解を適用して、エージェントが作業データを推論してアクションを実行できるようにします。 すべての要求は、サインインしているユーザーのコンテキストで実行され、Microsoft 365のアクセス許可を受け入れられます。

エージェント間 (A2A) プロトコルを使用して、Foundry エージェントを Work IQ に接続します。 エージェントは、自然言語タスクをピア エージェントとして Work IQ に委任します 。たとえば、"Project Contoso に関する最近の電子メールを要約する" と、Work IQ はユーザーのMicrosoft 365 データに対する取得、推論、応答の合成を処理します。

ツールの使用を最適化する方法については、 ベスト プラクティスを参照してください。

Warning

Work IQ に接続すると、コストが発生し、データがAzureコンプライアンス境界外に送信され、該当するサービス条件とデータ処理ポリシーに従って処理される場合があります。 データが組織のコンプライアンスと地理的境界の外部に流れるかどうか、および関連する影響、および適切なアクセス許可、境界、承認がプロビジョニングされるかどうかを管理するのは、お客様の責任です。

特定のユース ケースのコンテキストで構築したアプリケーションを慎重に確認およびテストし、すべての適切な決定とカスタマイズを行う責任があります。 これには、メタプロンプト、コンテンツ フィルター、その他の安全システムなどの独自の責任ある AI 軽減策の実装や、アプリケーションが適切な品質、信頼性、セキュリティ、信頼性の標準を満たしていることを確認する機能が含まれます。 Foundry Agent Service の透明性に関するメモを参照してください。

Prerequisites

開始する前に、以下の項目があることを確認します:

  • 使用する接続の商用要件:

    接続パス 要件の種類 要件
    A2A、REST、または MCP を使用した作業 IQ API 使用量ベースの請求 Copilot クレジットを使用して課金を有効にします。 このパスでは、コネクタ ライセンスは使用されません。
    コネクタを使用したMicrosoft 365 ツール コネクタのライセンス 選択したコネクタの前提条件を確認します。 コネクタには、呼び出し元ユーザーごとにMicrosoft 365 Copilot ライセンスが必要な場合があります。
  • デプロイされたモデルを含むアクティブな Microsoft Foundry プロジェクト

  • AZURE RBAC ロール:

    • 開発者 ID、エージェントのランタイム ID、および OAuth フローに関係するすべてのユーザー ID に対する Foundry プロジェクトの Foundry ユーザー ロール。
    • Foundry Project Manager は、Foundry projectで Work IQ エンドポイントへの Foundry 接続を作成するためのロールです。
  • work IQ サービス プリンシパルをプロビジョニングし、WorkIQAgent.Askの管理者の同意を付与することで、1 回限りのテナントのセットアップを完了できるMicrosoft Entra全体管理者。 Microsoft Entra Privileged Identity Management (PIM) を通じてこのロールをジャスト イン タイムでアクティブ化し、セットアップ後に非アクティブ化します。 日常の作業 IQ ユーザーには、このロールは必要ありません。

  • Foundry Toolkit: Visual Studio CodeFoundry Toolkit for Visual Studio Code をインストールします。

  • JavaScript 開発: Node.js 22 以降を使用し、@azure/identity@azure/ai-projects 2.4.0 以降をインストールします。

直接 A2A 呼び出しの場合、Work IQ ではプロトコル バージョン 1.0 と 0.3 がサポートされます。 v1 メソッド名を使用するように A2A-Version: 1.0 を送信します。 ヘッダーを省略すると、既定で v0.3 になります。 時間に依存する要求の場所メタデータを含め、委任されたユーザー認証を使用します。

セットアップ依存関係マップに従う

このマップを使用して、エージェント使用フローを、管理者が組織に対して 1 回完了する依存関係から分離します。

ゴール 異なります 次の操作を続行します。
エージェントに Work IQ を追加してクエリを送信する 既存の Work IQ 接続、サインインしているユーザーのMicrosoft 365アクセス許可、および前提条件に記載されている課金またはコネクタのライセンス。 Work IQ ツールをエージェントに追加する
組織の最初の Work IQ 接続を作成する Work IQ サービス プリンシパル、シングルテナント Entra アプリ、委任された WorkIQAgent.Ask アクセス許可、テナント全体の管理者の同意。 Entra アプリを設定する
コネクタを使用したMicrosoft 365 ツールの使用 そのコネクタの接続と、サインインしているユーザーに必要なコネクタ固有のライセンス。 Work IQ ツールをエージェントに追加する

組織に既に接続がある場合は、まずエージェント使用フローを完了します。 1 回限りのテナントセットアップは、管理者が最初の接続を作成する必要がある場合にのみ使用します。

Tip

ツールボックスを使用してこのツールを追加することを検討 してください。 ツールボックスを使用すると、エージェントとランタイム間でツールを再利用できるほか、マネージド MCP エンドポイントを介して資格情報の管理、バージョン管理、ポリシーの適用を一元化できます。 ツールボックスの クイック スタートを参照してください。

使用サポート

Microsoft Foundry のサポート Python SDK C# SDK JavaScript SDK Java SDK REST API 基本的なエージェントのセットアップ 標準エージェントのセットアップ
作業 IQ ✔️ ✔️ ✔️ ✔️ ✔️ ✔️

どのように機能するのか

  1. エージェントはツール呼び出しをディスパッチ — エージェント モデルがMicrosoft 365データを必要とするタスクを識別すると、work_iq_preview ツールにツール呼び出しを出力します。
  2. Foundry は、要求を A2A 経由で Work IQ にルーティング します。Foundry では、エージェント間 (A2A) プロトコルを使用して、自然言語クエリをピア エージェントとして Work IQ に転送します。 認証では On-Behalf-Of (OBO) が使用されるため、サインインしているユーザーのコンテキストで要求が実行されます。
  3. Work IQ は M365 データを取得し、その内容に基づいて推論します — Work IQ は、ユーザーのメール、会議、ファイル、チャット、その他の Microsoft 365 シグナルを照会します。 セマンティック理解を適用して、ユーザーの実際の作業コンテキストに基づいている応答を合成し、Microsoft 365のアクセス許可と秘密度ラベル全体を尊重します。
  4. 結果がエージェントに返されます 。Work IQ は、A2A 経由で Foundry に合成された応答を返します。 エージェントは、それをユーザーへの応答に組み込みます。

Work IQ に接続する

Work IQ ツールをエージェントに追加する

Foundry Toolkit for Visual Studio Codeを使用して、ツールボックスを作成するときに組み込みツールとして Work IQ を追加し、発行されたツールボックス エンドポイントにエージェントを接続します。 ツールボックスは、選択した Work IQ オプションを MCP エンドポイント経由で公開します。

  1. アクティビティ バーで Foundry Toolkit を選択します。
  2. [ マイ リソース] で、[ プロジェクト名>Tools] を展開します。
  3. [+ ツールボックスの追加] アイコンを選択します。
  4. [ カスタム ツールボックスの作成 ] タブで、ツールボックスの名前と説明を入力します。
  5. [ ツールの追加] を選択し、[ Work IQ] を選択します。
  6. Work IQ ツールの追加で、使用する Microsoft 365 Copilot のデータを選択します。 Work IQ Chat は 、A2A エンドポイントを介して接続します。 その他のオプションは、Copilot Chat、Teams、Word、Outlook 予定表、Outlookメール、Microsoft 365ユーザー プロファイル、SharePoint、OneDriveなど、MCP エンドポイントを介して接続します。
  7. 選択したオプションごとに、既存の接続を選択するか、[ 新しい接続の作成] を選択します。
  8. [] を選択し、[] を追加します。
  9. 公開を選択します。

ツールボックスの完全な作成ワークフローについては、「 Foundry の意図ベースのツールボックスをキュレーションする」を参照してください。

コードまたは REST API を使用してツールボックスから Work IQ ツールを追加するには、このセクションの Python、.NET、JavaScript、または REST API タブを選択します。

パッケージをインストールしてください。

pip install "azure-ai-projects>=2.3.0"

以下の環境変数を設定します。

  • FOUNDRY_PROJECT_ENDPOINT — Foundry プロジェクトの [概要] ページにあるプロジェクト エンドポイント。
  • WORK_IQ_PROJECT_CONNECTION_ID — Work IQ プロジェクト接続の完全修飾リソース ID。

Azure AI Projects SDK を使用してサーバー側プロンプト エージェントを作成する場合は [プロンプト エージェント] を選択し、Microsoft Agent Framework を使用してツールボックスを介してツールに接続する一時的なインプロセス エージェントを構築するホストエージェントを選択します。

エージェントに指示を促す

import os
from azure.identity import DefaultAzureCredential
from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import PromptAgentDefinition, WorkIQPreviewTool

endpoint = os.environ["FOUNDRY_PROJECT_ENDPOINT"]

with (
    DefaultAzureCredential() as credential,
    AIProjectClient(endpoint=endpoint, credential=credential) as project_client,
    project_client.get_openai_client() as openai_client,
):
    tool_payload = WorkIQPreviewTool(
        project_connection_id=os.environ["WORK_IQ_PROJECT_CONNECTION_ID"],
    )

    agent = project_client.agents.create_version(
        agent_name="MyAgent",
        definition=PromptAgentDefinition(
        model="gpt-5-mini",
            instructions="Use the available WorkIQ tools to answer questions and perform tasks.",
            tools=[tool_payload],
        ),
    )
    print(f"Agent created (id: {agent.id}, name: {agent.name}, version: {agent.version})")

    user_input = "Summarize my recent emails about Project Contoso."
    response = openai_client.responses.create(
        input=user_input,
        extra_body={"agent_reference": {"name": agent.name, "type": "agent_reference"}},
    )

    print(f"Agent response: {response.output_text}")

    # Clean up the agent version so unused versions don't accumulate in the project.
    project_client.agents.delete_version(agent_name=agent.name, agent_version=agent.version)
    print("Agent deleted")

予期される出力: エージェントは、ユーザーのクエリを使用して Work IQ を呼び出します。 Work IQ は、ユーザーの関連するMicrosoft 365 コンテンツを取得して合成し、アクセス許可に固定して、回答を返します。

ホスト型エージェント

WorkIQPreviewToolboxToolを使用してツールボックス バージョンを作成します。 ツールボックス固有の種類は、プロンプト エージェントに Work IQ を直接追加する WorkIQPreviewToolとは異なります。

import os

from azure.ai.projects import AIProjectClient
from azure.ai.projects.models import WorkIQPreviewToolboxTool
from azure.identity import DefaultAzureCredential

project_endpoint = os.environ["FOUNDRY_PROJECT_ENDPOINT"]
work_iq_connection_id = os.environ["WORK_IQ_PROJECT_CONNECTION_ID"]

with (
    DefaultAzureCredential() as credential,
    AIProjectClient(
        endpoint=project_endpoint,
        credential=credential,
    ) as project,
):
    toolbox = project.toolboxes.create_version(
        name="work-iq-toolbox",
        description="Toolbox with the Work IQ tool",
        tools=[
            WorkIQPreviewToolboxTool(
                project_connection_id=work_iq_connection_id,
            )
        ],
    )
    print(f"Created toolbox: {toolbox.name}, version: {toolbox.version}")

このサンプルでは、新しいツールボックス バージョンが返されます。

Created toolbox: work-iq-toolbox, version: <version>

に、ツールボックスをホストされたエージェントに接続します。 このワークフローでは、ホストされたランタイム統合を使用して、ユーザーが委任した Work IQ 呼び出しに必要な要求コンテキストを保持します。 完全なPython実装については、Agent Framework Teams アクティビティのサンプルを参照してください。


Work IQ を追加する推奨される方法は、ツールボックスを使用して、MCP ツールとしてエージェントにツールボックスをアタッチすることです。 ツールボックスとは

手順 1: Work IQ ツールを含むツールボックスを作成します。

curl --request POST \
  --url "{project_endpoint}/toolboxes/work-iq-toolbox/versions?api-version=v1" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  --data '{
    "description": "Toolbox with the Work IQ tool",
    "tools": [
      {
        "type": "work_iq_preview",
        "project_connection_id": "/subscriptions/{sub}/resourceGroups/{rg}/providers/Microsoft.CognitiveServices/accounts/{account}/projects/{project}/connections/{connection-name}"
      }
    ]
  }'

ツールボックスは、 {project_endpoint}/toolboxes/work-iq-toolbox/versions/<version>/mcp?api-version=v1で MCP 互換エンドポイントを公開します。ここで、 <version> は前の呼び出しによって返されたバージョンです。

手順 2: 呼び出し元の ID が渡されるようにユーザー Entra トークンを使用して、ツールボックス エンドポイントを指すリモート ツール プロジェクト接続を作成します (対象ユーザー https://ai.azure.com)。

azd ai connection create work-iq-toolbox-conn \
  --kind remote-tool \
  --target "{project_endpoint}/toolboxes/work-iq-toolbox/versions/<version>/mcp?api-version=v1" \
  --auth-type user-entra-token \
  --audience https://ai.azure.com

手順 3: MCP ツールとして接続されたツールボックスを使用してエージェントを作成します。

POST {project_endpoint}/agents/{agent_name}/versions?api-version=v1
Authorization: Bearer {token}
Content-Type: application/json

{
  "model": "gpt-4o-mini",
  "instructions": "You are a helpful assistant with access to the user's Microsoft 365 work context through Work IQ.",
  "tools": [
    {
      "type": "mcp",
      "server_label": "toolbox",
      "server_url": "{project_endpoint}/toolboxes/work-iq-toolbox/versions/<version>/mcp?api-version=v1",
      "require_approval": "never",
      "project_connection_id": "work-iq-toolbox-conn"
    }
  ]
}

手順 4: 会話セッションを作成します。

POST {project_endpoint}/openai/v1/conversations
Authorization: Bearer {token}
Content-Type: application/json

{}

応答には、 id フィールドが含まれています。 次の手順で使用します。

手順 5: エージェントに要求を送信します。

POST {project_endpoint}/openai/v1/responses
Authorization: Bearer {token}
Content-Type: application/json

{
  "conversation": "{conversation_id}",
  "input": "Summarize my recent emails about Project Contoso.",
  "agent_reference": {
    "type": "agent_reference",
    "name": "{agent_name}"
  }
}

応答には、エージェントの実行に関するメタデータと、合成された回答を含むtextcontent フィールドが含まれます。

Note

ベアラー トークンを取得するときに、トークン スコープ https://ai.azure.com/.default を使用します。

Azure AI Projects SDK を使用してサーバー側プロンプト エージェントを作成する場合は [プロンプト エージェント] を選択し、Microsoft Agent Framework を使用してツールボックスを介してツールに接続する一時的なインプロセス エージェントを構築するホストエージェントを選択します。

エージェントに指示を促す

using Azure.AI.Projects;
using Azure.Identity;

var projectEndpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT");
var workIQConnectionName = Environment.GetEnvironmentVariable("WORKIQ_CONNECTION_NAME");

AIProjectClient projectClient = new(endpoint: new Uri(projectEndpoint), tokenProvider: new DefaultAzureCredential());

AIProjectConnection workIQConnection = projectClient.Connections.GetConnection(workIQConnectionName);
DeclarativeAgentDefinition agentDefinition = new(model: "gpt-5-mini")
{
    Instructions = "You are a helpful assistant that can access Microsoft 365 data through Work IQ. "
                 + "Use the Work IQ tool to search and retrieve information from emails, calendar events, "
                 + "Teams messages, and other Microsoft 365 content.",
    Tools = { new WorkIQPreviewTool(workIQConnection.Id) }
};

ProjectsAgentVersion agentVersion = projectClient.AgentAdministrationClient.CreateAgentVersion(
    agentName: "myWorkIQAgent",
    options: new(agentDefinition));
Console.WriteLine($"Agent created (name: {agentVersion.Name}, version: {agentVersion.Version})");

ProjectResponsesClient responseClient =
    projectClient.ProjectOpenAIClient.GetProjectResponsesClientForAgent(agentVersion.Name);
CreateResponseOptions responseOptions = new()
{
    ToolChoice = ResponseToolChoice.CreateRequiredChoice(),
    InputItems = { ResponseItem.CreateUserMessageItem("What meetings do I have scheduled today?") },
};
ResponseResult response = responseClient.CreateResponse(responseOptions);
Console.WriteLine(response.GetOutputText());

// Clean up
projectClient.AgentAdministrationClient.DeleteAgentVersion(
    agentName: agentVersion.Name, agentVersion: agentVersion.Version);

ホスト型エージェント

WorkIQPreviewToolboxToolを使用してツールボックス バージョンを作成します。 ツールボックス固有の種類は、プロンプト エージェントに Work IQ を直接追加する WorkIQPreviewToolとは異なります。

using Azure.AI.Projects;
using Azure.AI.Projects.Agents;
using Azure.Identity;

string projectEndpoint = Environment.GetEnvironmentVariable("FOUNDRY_PROJECT_ENDPOINT")
    ?? throw new InvalidOperationException("FOUNDRY_PROJECT_ENDPOINT is not set.");
string workIQConnectionName = Environment.GetEnvironmentVariable("WORKIQ_CONNECTION_NAME")
    ?? throw new InvalidOperationException("WORKIQ_CONNECTION_NAME is not set.");

DefaultAzureCredential credential = new();
AIProjectClient projectClient = new(endpoint: new Uri(projectEndpoint), tokenProvider: credential);
AIProjectConnection workIQConnection = projectClient.Connections.GetConnection(workIQConnectionName);
ToolboxVersion toolboxVersion = projectClient.AgentAdministrationClient
    .GetAgentToolboxes().CreateVersion(
        name: "work-iq-toolbox",
        tools: [new WorkIQPreviewToolboxTool(workIQConnection.Id)],
        description: "Toolbox with the Work IQ tool");

Console.WriteLine(
    $"Created toolbox: {toolboxVersion.Name}, version: {toolboxVersion.Version}");

このサンプルでは、新しいツールボックス バージョンが返されます。

Created toolbox: work-iq-toolbox, version: <version>

に、ツールボックスをホストされたエージェントに接続します。 Work IQ ツールボックス ツールを Agent Framework に登録する完全な C# 実装については、 Teams アクティビティのサンプルを参照してください。


const { DefaultAzureCredential } = require("@azure/identity");
const { AIProjectClient } = require("@azure/ai-projects");

const projectEndpoint = process.env["FOUNDRY_PROJECT_ENDPOINT"];
const workIqProjectConnectionId = process.env["WORKIQ_CONNECTION_ID"];

async function main() {
  const project = new AIProjectClient(projectEndpoint, new DefaultAzureCredential());
  const openai = project.getOpenAIClient();

  console.log("Creating a toolbox with the Work IQ tool...");

  // 1. Add the Work IQ tool to a toolbox. Using a toolbox is the recommended
  //    way to give agents tools. See /azure/foundry/agents/concepts/toolbox-overview
  const toolbox = await project.toolboxes.createVersion(
    "work-iq-toolbox",
    [
      {
        type: "work_iq_preview",
        project_connection_id: workIqProjectConnectionId,
      },
    ],
    { description: "Toolbox with the Work IQ tool" },
  );

  // 2. The toolbox exposes an MCP-compatible endpoint.
  const toolboxMcpUrl =
    `${projectEndpoint}/toolboxes/${toolbox.name}` +
    `/versions/${toolbox.version}/mcp?api-version=v1`;

  // 3. Create a remote-tool project connection that points at the toolbox endpoint.
  //    Use a user Entra token so the caller's identity is passed through
  //    (audience https://ai.azure.com). Create the connection once, for example
  //    with the Azure Developer CLI:
  //
  //    azd ai connection create work-iq-toolbox-conn \
  //      --kind remote-tool \
  //      --target "<toolboxMcpUrl>" \
  //      --auth-type user-entra-token \
  //      --audience https://ai.azure.com
  const toolboxConnectionName = "work-iq-toolbox-conn";

  // 4. Attach the toolbox to a prompt agent as an MCP tool.
  const agent = await project.agents.createVersion("MyWorkIQAgent", {
    kind: "prompt",
    model: "gpt-5-mini",
    instructions: "Use the available Work IQ tools to answer questions and perform tasks.",
    tools: [
      {
        type: "mcp",
        server_label: "toolbox",
        server_url: toolboxMcpUrl,
        require_approval: "never",
        project_connection_id: toolboxConnectionName,
      },
    ],
  });
  console.log(`Agent created (id: ${agent.id}, name: ${agent.name}, version: ${agent.version})`);

  const userInput = "What meetings do I have scheduled today?";
  const response = await openai.responses.create(
    { input: userInput },
    { body: { agent_reference: { name: agent.name, version: agent.version, type: "agent_reference" } } },
  );
  console.log(`Agent response: ${response.output_text}`);

  // Clean up the agent version so unused versions don't accumulate in the project.
  await project.agents.deleteVersion(agent.name, agent.version);
}

main().catch((err) => {
  console.error("The sample encountered an error:", err);
});

Azure Developer CLI を使用してツールボックスに Work IQ を追加する

Azure Developer CLI を使用して Work IQ A2A プロジェクト接続を作成し、最小限のツールボックス YAML から参照します。

# Step 1. Create the Work IQ connection
azd ai connection create my-workiq-conn \
  --kind remote-a2a \
  --target https://workiq.svc.cloud.microsoft/a2a/ \
  --auth-type oauth2 \
  --authorization-url https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/authorize \
  --token-url https://login.microsoftonline.com/<tenant-id>/oauth2/v2.0/token \
  --client-id <oauth-client-id> \
  --client-secret <oauth-client-secret> \
  --scopes "api://workiq.svc.cloud.microsoft/WorkIQAgent.Ask offline_access"

Note

この記事では、Work IQ A2A エンドポイント https://workiq.svc.cloud.microsoft/a2a/を使用します。 前のツールボックス カタログは、azd ワークフローに https://agent365.svc.cloud.microsoft/agents/agents/workiq 使用しました。Work IQ 接続で別の A2A または MCP ターゲットが使用されている場合は、エンドポイントを確認します。

# Step 2. Define the toolbox (my-toolbox.yaml)
description: Work IQ toolbox
tools:
  - type: work_iq_preview
    project_connection_id: my-workiq-conn
# Step 3. Create the toolbox
azd ai toolbox create my-toolbox --from-file my-toolbox.yaml

ホストされているエージェントで Work IQ を使用する

work-iq-toolboxを作成したら、「ホストされたエージェントと共にツールボックスを使用する」に従ってエージェント フレームワークに接続し、ローカルで実行し、Foundry Agent Service にデプロイします。 ホストされた統合では、サインインしている各ユーザーの代わりに Work IQ が動作する必要がある要求ごとのコンテキストが保持されます。

エンド ツー エンドの実装の場合は、保守されている Python Teams アクティビティ サンプルまたは .NET Teams アクティビティ サンプルを使用します。

認証とセキュリティ

Work IQ では、委任された認証Microsoft Entra ID使用されます。 すべての要求は、サインインしているユーザーのコンテキストで実行されます。 アプリケーション専用 (アプリ専用) 認証はサポートされていません。 Microsoft 365アクセス許可が自動的に適用されます。 職場の IQ エージェントは、サインインしているユーザーがまだ表示を許可されていないデータにアクセスすることはできません。

Work IQ への接続では、ご自身の Entra アプリ (代理認証) のみがサポートされています。 これにより、Entra 管理者は、Work IQ を使用してMicrosoft 365データを取得できるアプリケーションを明示的に制御できます。管理者は、登録されているアプリ専用の WorkIQAgent.Ask アクセス許可を確認して付与します。

Entra アプリを設定する (組織ごとに 1 回限り)

Entra 管理者は、Foundry で Work IQ 接続を作成する前に、次の 1 回限りのテナント操作を完了する必要があります。 グローバル管理者ロールが必要な手順の場合は、Microsoft Entra PIM を使用して時間内にロールをアクティブ化し、セットアップが完了したら非アクティブ化します。 日常の作業 IQ ユーザーには、このロールは必要ありません。

Work IQ サービス プリンシパルを設定する(初回のみ)

アプリの登録を作成する前に、グローバル管理者は、この 1 回限りのテナント操作の一環として Work IQ サービス プリンシパルをプロビジョニングする必要があります。 この手順をスキップした場合、API のアクセス許可を検索するときに [Work IQ ]\(作業 IQ\) オプションは表示されません。

Work IQ API クイックスタートの手順 1: Work IQ サービス プリンシパルを作成に従ってください。 Graph Explorer からの 201 Created 応答が成功を確認します。 競合エラーは、プリンシパルが既に存在していることを意味するため、次の手順に進んでください。

アプリの登録を作成する

  1. Microsoft Entra 管理センター に移動します。 左側のナビゲーションで、Entra ID>アプリの登録 を選択します。

  2. 新規登録を選択します。 アプリにわかりやすい名前を付け、 サポートされているアカウントの種類この組織のディレクトリ内のアカウントのみに設定します登録を選択します。

  3. アプリケーション (クライアント) ID をコピーします。 Foundry 接続を作成するときは、この値が必要です。

  4. [API のアクセス許可]>[アクセス許可の追加]>[所属する組織で使用している API] を選択します。 Work IQ (アプリケーション ID fdcc1f02-fc51-4226-8753-f668596af7f7) を検索し、[委任されたアクセス許可] を選択し、[WorkIQAgent.Ask] を選択してから、[アクセス許可の追加] を選択します。

  5. [お使いのテナント] に管理者の同意を付与する を選択します。 確認ダイアログを確認し、[ はい] を選択します。

    Important

テナント全体の管理者の同意を付与することは、Microsoft Entra IDのグローバル管理者ロールを必要とする 1 回限りのテナント操作です。 MICROSOFT ENTRA PIM を通じてロールをジャスト イン タイムでアクティブ化し、同意を与えてから非アクティブ化します。 日常の作業 IQ ユーザーには、このロールは必要ありません。 このロールがない場合は、組織のグローバル管理者にこの手順を完了するよう依頼してください。

  1. [証明書およびシークレット]>[新しいクライアント シークレット] の順に選択します。 説明と有効期限を追加します。 [ 追加] を選択し、シークレット の値 をすぐにコピーします。これは 1 回だけ表示されます。 シークレットをAzure Key Vaultまたは別の承認済みシークレット ストアに格納します。 シークレットをソース管理にコミットしたり、印刷したりログに記録したりしないでください。 有効期限が切れる前にシークレットをローテーションします。
  2. [Microsoft Entra IDの概要] ページからディレクトリ (テナント) ID をコピーします。

Foundry 接続の値を入力します

Microsoft Foundry では、 プロジェクトを開き、Settings>Connections>New connection>Work IQ に移動します。 以下のフィールドに記入してください。

フィールド 価値
クライアント ID 手順 3 のアプリケーション (クライアント) ID
クライアント シークレット 手順 6 のクライアント シークレット値
承認 URL https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/authorize
トークン URL https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token
URL の更新 https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token
スコープ api://workiq.svc.cloud.microsoft/WorkIQAgent.Ask,offline_access

手順 7 で {tenant-id} をディレクトリ (テナント) ID に置き換えます。 [保存] を選択して接続を作成します。

Work IQ 接続の認証設定を示す Foundry ポータルのスクリーンショット。

Important

作成後に接続フィールドを編集することはできません。 正しくない値を入力した場合は、接続を削除して新しい接続を作成します。

アプリ登録にリダイレクト URI を追加する

Foundry によって接続が作成されると、OAuth リダイレクト URL が表示されます。 次の URL をアプリ登録に追加します。

  1. Microsoft Entra 管理センターで、Entra ID>アプリの登録 に移動し、アプリを選択します。
  2. 認証>プラットフォームの追加>Web を選択します。
  3. [ リダイレクト URI] の下に、Foundry の OAuth リダイレクト URL を貼り付けます。
  4. 設定を選択します。

REST API を使用して接続を作成する

Foundry ポータルの代わりに、Azure Resource Manager API を使用してプログラムで Work IQ 接続を作成します。

手順 1: トークンを取得する

ARM_TOKEN=$(az account get-access-token \
  --resource https://management.azure.com \
  --query accessToken -o tsv)

手順 2: 接続を作成する

SUBSCRIPTION_ID=<your-subscription-id>
RESOURCE_GROUP=<your-resource-group>
ACCOUNT_NAME=<your-foundry-account-name>
PROJECT_NAME=<your-project-name>
CONNECTION_NAME=<name-for-this-connection>
TENANT_ID=<your-tenant-id>
CLIENT_ID=<your-client-id>
CLIENT_SECRET=<your-client-secret>

curl --request PUT \
  --url "https://management.azure.com/subscriptions/$SUBSCRIPTION_ID/resourceGroups/$RESOURCE_GROUP/providers/Microsoft.CognitiveServices/accounts/$ACCOUNT_NAME/projects/$PROJECT_NAME/connections/$CONNECTION_NAME?api-version=2025-04-01-preview" \
  --header "Authorization: Bearer $ARM_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
    "tags": null,
    "location": null,
    "name": "'"$CONNECTION_NAME"'",
    "type": "Microsoft.MachineLearningServices/workspaces/connections",
    "properties": {
      "authType": "OAuth2",
      "group": "ServicesAndApps",
      "category": "RemoteA2A",
      "expiryTime": null,
      "target": "https://workiq.svc.cloud.microsoft/a2a/",
      "isSharedToAll": true,
      "sharedUserList": [],
      "TokenUrl": "https://login.microsoftonline.com/'"$TENANT_ID"'/oauth2/v2.0/token",
      "AuthorizationUrl": "https://login.microsoftonline.com/'"$TENANT_ID"'/oauth2/v2.0/authorize",
      "RefreshUrl": "https://login.microsoftonline.com/'"$TENANT_ID"'/oauth2/v2.0/token",
      "Scopes": [
        "api://workiq.svc.cloud.microsoft/WorkIQAgent.Ask",
        "offline_access"
      ],
      "Credentials": {
        "ClientId": "'"$CLIENT_ID"'",
        "ClientSecret": "'"$CLIENT_SECRET"'"
      },
      "metadata": {
        "ApiType": "Azure"
      }
    }
  }'

応答が成功すると、HTTP 200 または 201 が返されます。 応答本文には、 properties.oauthRedirectUrl フィールドが含まれています。Entra アプリの登録で、その値をリダイレクト URI として使用します (「 アプリの登録にリダイレクト URI を追加する」を参照してください)。

データ ガバナンスとコンプライアンス

Microsoft 365に対する作業 IQ アクセス許可の取得。 Foundry ワークフローでは、ダウンストリームのCopilotおよび Foundry 処理にプロンプトと取得した結果を送信することもできます。そのため、要求パス内のすべてのサービスの境界とリージョン構成を確認します。

データの保存場所

Microsoft 365取得は、テナントのアクセス許可と所在地の構成に従います。 エンド ツー エンドの処理は、Copilotの課金構成と Foundry プロジェクトリージョンによっても異なります。 詳細については、Microsoft 365 Copilotプライバシーとデータ処理ポリシーを参照してください。

プライバシーとデータの処理

Microsoft 365 Copilotプライバシーとデータ処理ポリシーと、デプロイに適用される Foundry データ処理の要件を確認します。 プライバシーチームとコンプライアンス チームに完全な要求パスを確認します。

アクセス制御とアクセス許可

サインインしているユーザーのMicrosoft 365アクセス許可を取得で使用するように接続を設計します。 デプロイ前に、代表的なユーザーと制限されたコンテンツを使用してアクセス許可のトリミングをテストします。

  • Microsoft 365で定義されているロールベースのアクセス制御、秘密度ラベル、および情報バリアが尊重されます。

コンプライアンス レビュー

組織のMicrosoftコンプライアンス リソースを使用して、完全な Work IQ と Foundry の展開に適用される認定と制御を確認します。

管理者の管理

Entra 管理者は、テナント内のどのアプリケーションがユーザーの代わりに Work IQ データにアクセスできるかを制御します。 次のセクションでは、使用できるキー コントロールについて説明します。

組織内のユーザーがアプリを通じて認証するには、 WorkIQAgent.Ask に対する管理者の同意が必要です。 同意はいつでも管理できます。

  • 同意を付与: Microsoft Entra 管理センターで、Entra ID>アプリの登録>に移動し、アプリを選択して>API のアクセス許可を選択します。 [お使いのテナント] に管理者の同意を付与する を選択します。
  • 同意の取り消し: 同じ API アクセス許可 ページで、 WorkIQAgent.Ask アクセス許可を選択し、[ 管理者の同意の取り消し] を選択します。 既存のトークンは有効期限が切れるまで有効なままです。失効後に新しいトークンを発行することはできません。

Troubleshooting

症状: 考えられる原因 Resolution
403 Forbidden Work IQ API に対して課金が有効になっていないか、コネクタ固有のライセンスがありません。 Work IQ API 呼び出しCopilotクレジットの課金を有効にします。 コネクタでサポートされるツールの場合は、呼び出し元のユーザーがそのコネクタのライセンス要件を満たしていることを確認します。
401 Unauthorized トークンの対象ユーザーの不一致 トークンが別のリソースではなく、 api://workiq.svc.cloud.microsoftに対して発行されていることを確認します。
403 ForbiddenRequired scopes = [...] WorkIQAgent.Ask に対する管理者の同意は付与されていません 管理者は、アプリの登録に同意する必要があります。
エージェントが応答または空の結果を取得しない Microsoft 365コンテンツは、サインインしているユーザーが使用できないか、インデックスが作成されていません。 ユーザーのソースアクセス許可を確認し、インデックス作成の完了後に再試行します。
Principal does not have access to API/Operation エージェント ID には、プロジェクト スコープでの Foundry ユーザー ロールがありません アカウント スコープとプロジェクト スコープの両方で Foundry ユーザー を割り当てます。