Work IQ API を Azure 従量課金で有効化する手順

Microsoft 365 のメール、会議、チャット、ファイルなどを Agent から扱うため、Work IQ API を新しいテナントで有効化しました。
このテナントには Microsoft 365 Copilot ライセンスがなかったため、Azure subscription を支払先にした Copilot Credits の従量課金を利用しています。設定中には、アプリが要求するサービスがテナントで有効化またはプロビジョニングされていない場合に発生する Microsoft Entra ID の AADSTS650052 と、公式スクリプトの検証を通過しても認証できない問題にも遭遇しました。
この記事では、実際に行った設定を作業単位で整理します。Tenant ID、User Principal Name(UPN)、Azure subscription 名などの環境固有情報は、すべてプレースホルダーへ置き換えています。
目次
- 先に結論
- 構成と前提を確認する
- 必要な Microsoft Entra ロールを確認する
- PowerShell と Work IQ CLI を準備する
- Work IQ のサービスプリンシパルを作成する
- Work IQ CLI の管理者同意を付与する
- Azure 従量課金を有効化する
- Work IQ CLI で動作確認する
- つまずいたポイント
- 作業後に確認すること
- まとめ
- 公式情報源
先に結論
Microsoft 365 Copilot ライセンスがないテナントでも、Work IQ API は Copilot Credits の従量課金で利用できます。2026年8月10日時点の公式ドキュメントでは、Work IQ API の利用料は Microsoft 365 Copilot のユーザーライセンスではなく、利用量に応じた Copilot Credits として請求されます。
今回必要だった作業は、次の5つです。
- Work IQ API 用の Azure 従量課金と spending policy を有効化する
- Work IQ のサービスプリンシパルをテナントへ作成する
- Work IQ CLI と関連する Work IQ Tools をテナントへ作成する
- Work IQ CLI が要求する delegated permissions へテナント全体の管理者同意を付与する
- 利用ユーザーでサインインし、Work IQ CLI から問い合わせる
特に重要なのは、Work IQ Tools と Work IQ が別の Enterprise application であることです。2026年8月10日時点では、公式リポジトリの Enable-WorkIQToolsForTenant.ps1 は Work IQ のサービスプリンシパルを作成せず、Verify-WorkIQTenant.ps1 もその存在を検証しません。このため、検証結果が成功でも AADSTS650052 が発生する場合は、Work IQ のサービスプリンシパルを別途確認します。
構成と前提を確認する
今回の確認環境は、次の構成です。
| 項目 | 構成 |
|---|---|
| Client | macOS、PowerShell 7、Work IQ CLI |
| Identity | Microsoft Entra ID の利用ユーザーによる delegated authentication |
| Data | 利用ユーザーがアクセスできる Microsoft 365 のメール、予定表、会議、ファイルなど |
| License / billing | Microsoft 365 Copilot ライセンスなし、Copilot Credits の Azure 従量課金 |
| Cost control | Organization とユーザー単位の月次 credit limit |
Work IQ API のリクエストは、サインインしたユーザーのコンテキストで実行されます。Application-only authentication はサポートされず、Microsoft 365 の既存のアクセス許可、秘密度ラベル、compliance policy が適用されます。
ライセンスと課金経路を整理する
Work IQ と Microsoft 365 Copilot の関係は、利用するエクスペリエンスごとに分けて考える必要があります。
| 利用方法 | 主な条件 |
|---|---|
| Microsoft 365 Copilot の製品エクスペリエンス | 対象ユーザーへ Microsoft 365 Copilot ライセンスを割り当てる |
| Custom app、CLI、Agent から Work IQ API を利用 | Copilot Credits の従量課金を構成し、利用ユーザーを spending policy へ割り当てる |
Work IQ API 専用のユーザー単位 SKU を購入するのではありません。今回のように Work IQ API を CLI から使う場合は、Microsoft 365 admin center で Azure subscription と resource group を支払先として接続し、Copilot Credits の利用ポリシーを構成します。
Copilot Credits の単価、対象サービス、必要な Microsoft 365 base license は変更される可能性があります。本番導入前に Copilot Credits の公式情報 と契約条件を確認してください。
必要な Microsoft Entra ロールを確認する
今回の作業では Azure RBAC role ではなく、Microsoft Entra directory role が必要です。Azure subscription の Owner や Contributor だけでは、Microsoft Entra にサービスプリンシパルを作成したり、テナント全体の管理者同意を付与したりできません。
| 作業 | 必要なロール | 補足 |
|---|---|---|
| Work IQ API をテナントへ初回作成 | Global Administrator | Work IQ の公式有効化手順が指定する one-time setup |
| Delegated permissions へのテナント全体の管理者同意 | Privileged Role Administrator、Cloud Application Administrator、Application Administrator など | Microsoft Graph application permission を含む場合は Privileged Role Administrator が必要 |
| Azure 従量課金の接続 | Microsoft 365 admin center と対象 Azure subscription で必要な管理権限 | 組織の権限分離に合わせて課金管理者と Azure 管理者が共同で実施する |
管理ロールを常時付与する必要はありません。Microsoft Entra Privileged Identity Management(PIM)を利用している場合は、作業時間だけ必要なロールを有効化し、完了後に無効化します。
管理者同意は組織のデータへ広くアクセスできる権限をアプリへ与える操作です。画面に表示される publisher、application ID、要求される permission を確認してから承認します。
PowerShell と Work IQ CLI を準備する
macOS では、Homebrew から PowerShell をインストールしました。
brew install powershell
pwsh --version
次に、Work IQ の公式リポジトリを取得します。
git clone --depth 1 https://github.com/microsoft/work-iq.git
cd work-iq
公式スクリプトを使って、Work IQ Tools、Work IQ CLI、関連する MCP server のサービスプリンシパルと permission grant を構成します。Microsoft Graph PowerShell module が存在しない場合は、スクリプトから CurrentUser scope へインストールされます。
pwsh -NoProfile -File ./scripts/Enable-WorkIQToolsForTenant.ps1
pwsh -NoProfile -File ./scripts/Verify-WorkIQTenant.ps1
ブラウザが開いたら、設定対象テナントの管理アカウントでサインインします。複数のテナントへ参加しているアカウントでは、サインイン先が対象テナントになっていることを確認します。
Work IQ のサービスプリンシパルを作成する
Work IQ の公式有効化手順 では、次の application ID を持つ Microsoft first-party application のサービスプリンシパルを、テナントごとに一度作成します。
fdcc1f02-fc51-4226-8753-f668596af7f7
この ID は Microsoft が公開している Work IQ の application ID であり、Tenant ID や client secret ではありません。
Microsoft Graph PowerShell で作成する場合は、次のコマンドを実行します。
Connect-MgGraph `
-TenantId "<TENANT_ID>" `
-Scopes "Application.ReadWrite.All"
New-MgServicePrincipal `
-AppId "fdcc1f02-fc51-4226-8753-f668596af7f7"
作成後、application ID で検索して確認します。
Get-MgServicePrincipal `
-Filter "appId eq 'fdcc1f02-fc51-4226-8753-f668596af7f7'" |
Select-Object DisplayName, AppId, Id
Azure CLI を利用する場合は、公式手順にある次のコマンドでも作成できます。
az ad sp create --id fdcc1f02-fc51-4226-8753-f668596af7f7
Work IQ CLI の管理者同意を付与する
Work IQ CLI の application ID は、次のとおりです。
ba081686-5d24-4bc6-a0d6-d034ecffed87
公式リポジトリの PowerShell script を実行すると、Work IQ CLI が必要とする Microsoft Graph の delegated permissions と、関連する Work IQ Tools の permissions へ管理者同意を付与できます。
利用ユーザー側でも、Work IQ CLI から consent flow を実行します。今回確認した CLI version 1.0.0.28144 では、Tenant ID を指定する --tenant-id ではなく、対象テナントの UPN を --account へ指定します。
npx -y @microsoft/workiq@latest \
--account <USER_UPN> \
auth consent
ブラウザでサインインし、対象テナントと要求される permission を確認して同意します。CLI に consent 成功のメッセージが表示されたら、次の作業へ進みます。
Azure 従量課金を有効化する
2026年8月10日時点では、Work IQ API の usage-based billing は Microsoft 365 admin center の Cost management から構成します。
設定の流れは次のとおりです。
- Microsoft 365 admin center で Copilot、Cost management を開く
- Usage-based billing の configuration を開始する
- 支払先となる Azure subscription と resource group を接続する
- 対象サービスに Work IQ API を含める
- 利用するユーザーまたはグループを spending policy へ割り当てる
- Organization とユーザー単位の monthly credit limit、必要に応じて alert を設定する
- Spending policy を Activate する
今回の PoC では、Organization の月次上限を 200 Copilot Credits、1ユーザーの月次上限を 100 Copilot Credits としました。この値は構成例であり、推奨値ではありません。利用人数、問い合わせ頻度、許容予算に合わせて決めます。
ここで設定する単位は米ドルではなく Copilot Credits です。Cost management dashboard では、全体の消費量、残りの capacity、ユーザーやサービス別の利用状況を確認できます。
Policy を作成しただけでなく、状態が active になっていることを確認します。Policy が未有効化のままだと、CLI は The caller is not entitled to use this tool. や license 不足に見える message を返すことがあります。
Work IQ CLI で動作確認する
利用ユーザーの UPN を指定し、予定表に関する簡単な質問を実行します。
npx -y @microsoft/workiq@latest \
--account <USER_UPN> \
ask -q "今日の予定を教えて"
今回の環境では、対象日に予定がないことを説明する回答が返りました。予定の有無ではなく、Work IQ が Microsoft 365 の予定表を確認した結果を返せたことが疎通確認のポイントです。
この成功により、少なくとも次を確認できました。
- Work IQ CLI が対象テナントの利用ユーザーで認証できる
- Work IQ resource の token を取得できる
- 必要なサービスプリンシパルと delegated consent が存在する
- Work IQ API を含む spending policy が有効である
- ユーザー権限の範囲で Microsoft 365 data plane へアクセスできる
実際のメール件名、会議名、参加者名、回答全文は、公開記事や作業ログへ残さないようにします。
つまずいたポイント
AADSTS650052 が発生する
最初に Work IQ CLI の admin consent URL を開いたとき、次の趣旨のエラーが発生しました。
AADSTS650052: The app is trying to access a service
'fdcc1f02-fc51-4226-8753-f668596af7f7' (Work IQ)
that your organization lacks a service principal for.
原因は、対象テナントに Work IQ のサービスプリンシパルが存在しないことでした。Work IQ Tools が存在していても、別 application なので代わりにはなりません。
2026年8月10日時点では、公式リポジトリの Enable-WorkIQToolsForTenant.ps1 は Work IQ を作成せず、Verify-WorkIQTenant.ps1 も確認しません。この状態は microsoft/work-iq#172 で報告されています。
Verify-WorkIQTenant.ps1 が次のように成功しても、fdcc1f02-fc51-4226-8753-f668596af7f7 を application ID で別途確認します。
All checks passed. Work IQ is fully provisioned in this tenant.
License がないと表示される
サービスプリンシパルと consent を設定した後は、CLI から有効な license がないという趣旨の message が返りました。
今回の原因は Microsoft 365 Copilot ライセンスの欠如ではなく、Work IQ API を含む usage-based billing policy が active になっていなかったことです。Spending policy を有効化して対象ユーザーを割り当てた後、同じ CLI version で問い合わせに成功しました。
同様の事象は microsoft/work-iq#148 でも報告されています。設定反映に時間がかかる例もあるため、policy、ユーザー割り当て、Work IQ API の選択、active state を確認したうえで時間を置いて再試行します。
--tenant-id が認識されない
CLI version 1.0.0.28144 では、次の option は利用できませんでした。
--tenant-id
-t
代わりに、対象テナントの UPN を --account <USER_UPN> で指定します。CLI の option は version によって変わる可能性があるため、実行環境では --help も確認します。
ask command が見つからない
ask は zsh の単独 command ではなく、Work IQ CLI の subcommand です。次のように npx から始まるコマンド全体を実行します。
npx -y @microsoft/workiq@latest \
--account <USER_UPN> \
ask -q "今日の予定を教えて"
作業後に確認すること
動作確認後は、一時的に有効化した Microsoft Entra role を無効化します。また、PoC のまま全ユーザーへ公開せず、運用要件に合わせて次を見直します。
- Work IQ CLI Enterprise application で user assignment を必須にするか
- Spending policy の対象を必要なユーザーまたはグループへ限定するか
- Organization とユーザー単位の credit limit、alert が適切か
- Conditional Access で MFA や compliant device を要求するか
- Purview の監査、DLP、秘密度ラベルが期待どおり適用されるか
- Enterprise applications の consent と割り当てを定期的に棚卸しするか
Work IQ はユーザーがアクセスできるメール、会議 transcript、Teams message、SharePoint / OneDrive document などを扱います。PoC でも、本番と同じデータ境界、最小権限、コスト上限を意識して構成することが大切です。
まとめ
Microsoft 365 Copilot ライセンスがないテナントでも、Work IQ API は Copilot Credits の Azure 従量課金で利用できました。
設定の要点は、Work IQ サービスプリンシパルを one-time setup で作成し、Work IQ CLI と Work IQ Tools の delegated consent を付与し、Work IQ API を含む spending policy を active にすることです。
特に AADSTS650052 が発生した場合は、PowerShell script の成功表示だけで判断せず、エラーに表示された application ID のサービスプリンシパルが対象テナントに存在するか確認します。License 不足に見える message では、Microsoft 365 Copilot SKU の有無だけでなく、Copilot Credits の policy と対象ユーザーを確認します。
公式情報源
- Microsoft Work IQ API
- Enable your tenant for Work IQ
- Usage-Based Billing and Cost Management for Copilot Credits
- Grant tenant-wide admin consent to an application
- Microsoft Work IQ CLI repository
- Enable/Verify tenant scripts omit the Work IQ app #172
- WorkIQ CLI returns 403 Forbidden / caller not entitled #148