即効レスキュー・コピペ復旧!現場のAPIエラー・連携不具合を3分で直す実践ガイド

【kintone×Zapier】「CB_WA01: 権限がありません」エラー(403)を解消するAPIトークン・アクセス権設定

カテゴリー1

【kintone×Zapier】「CB_WA01: 権限がありません」エラー(403)を解消するAPIトークン・アクセス権設定

解決可否:解決可能(kintone側のアクセス権設定を見直せば確実に復旧する。障害ではなく設定不足が原因)
主な発生原因
①APIトークン発行時に「閲覧・追加・編集」などの操作権限にチェックが入っていない、
②アプリ自体のアクセス権(レコード閲覧・追加権限)がトークン発行者やAPI経由の操作に対して不足している、
③権限を変更した後に「アプリを更新」(運用環境への反映)を忘れている
修正所要時間:原因特定込みで平均10〜15分(権限チェックボックスの見落としであれば5分程度)

1. はじめに:Zapier連携時に「CB_WA01」が発生する理由

kintoneとZapierを連携し、Webhookやアクション経由でレコードを取得・追加・更新しようとした際に、Zapierのタスク履歴(Zap History)で次のようなエラーが記録され、処理が失敗することがあります。

text
[403] Forbidden
{
  "code": "CB_WA01",
  "id": "20240816-a1b2c3d4e5",
  "message": "アクセス権がありません。"
}

CB_WA01 はkintone REST APIが返す固有のエラーコードで、「認証には成功しているが、そのAPIトークン(またはユーザー)には要求された操作を行う権限がない」ことを意味します。認証情報(トークン自体)が間違っている場合は別のエラーコード(CB_AU01 など)が返るため、CB_WA01 が出た時点で「トークンは有効だが権限が足りない」と即座に切り分けられます。

kintoneのアクセス制御は二重構造になっており、①APIトークンそのものに付与された操作権限(閲覧・追加・編集・削除)と、②アプリ全体に設定されているアクセス権(どのユーザー・組織がレコードを閲覧・追加・編集できるか)の両方を満たして初めてAPI操作が許可されます。どちらか一方でも欠けているとこのエラーになります。

[画像:Zapierのタスク履歴でエラー詳細を開いた画面キャプチャ]

2. kintoneのAPIトークン生成時に忘れがちな「アクセス権限(閲覧・追加・編集)」の確認

最も多い原因は、APIトークンを発行する際に操作権限のチェックボックスを設定し忘れることです。kintoneのAPIトークンは、発行時にそのトークンで許可する操作を個別に選択する仕様になっています。

確認手順は以下の通りです。

  1. 対象アプリを開き、右上の歯車アイコンから[アプリの設定]を開く
  2. 左側メニューから[APIトークン]を選択する
  3. 該当のトークン行にある権限チェックボックス(レコード閲覧・レコード追加・レコード編集・レコード削除・アプリ管理)の状態を確認する

例えば、Zapierのアクションで「レコードを検索して更新する」処理を組んでいる場合、そのAPIトークンには最低でも「レコード閲覧」と「レコード編集」の両方にチェックが入っている必要があります。新規登録アクションであれば「レコード追加」の権限が必須です。片方だけにチェックが入っている状態が、このエラーの典型パターンです。

json
{
  "action": "add_record",
  "required_permissions": ["レコード追加"],
  "granted_permissions": ["レコード閲覧"],
  "result": "CB_WA01: アクセス権がありません"
}

チェックボックスの状態を変更した場合は、必ず画面右上の[保存]を押したうえで、後述する「アプリを更新」の反映作業まで完了させる必要があります。ここで保存だけして反映を忘れるケースが非常に多いため、章5のチェックリストで詳しく扱います。

3. アプリのアクセス権・レコード閲覧権限の落とし穴

APIトークンの権限を正しく設定していても、アプリ全体の「アクセス権」設定でAPI経由の操作が制限されていると、同じく CB_WA01 が発生します。kintoneのアクセス権は、ユーザー・組織・グループ・部門ごとに「アプリの利用可否」「レコードの閲覧・追加・編集・削除可否」を個別に設定できる仕組みで、APIトークンによる操作もこの設定の影響を受けます。

特に注意が必要なのは次の2点です。

  • アプリのアクセス権で「すべてのユーザーの権限を個別に設定」にしている場合、APIトークンの発行者(または既定のロール)にレコード追加・編集権限が与えられていないと、トークン側の権限設定に関わらず拒否される
  • レコードごとのアクセス権(条件付きアクセス権)を設定している場合、特定のステータスやレコード作成者以外は編集不可になっていることがあり、Zapierから更新しようとしたレコードがその条件に該当していると403になる

確認手順は以下の通りです。

  1. 対象アプリを開き、歯車アイコンから[アプリの設定]を開く
  2. [アプリのアクセス権]を選択する
  3. 「すべてのユーザーの権限」または個別に設定されている組織・グループの行で、レコードの閲覧・追加・編集・削除の可否を確認する
  4. 必要に応じて[レコードのアクセス権]タブでレコード単位の条件付き制限がかかっていないか確認する

APIトークンには「所属する組織」という概念がないため、アプリのアクセス権で「ログインユーザーの組織ごとに権限を分ける」設定にしていると、意図せずAPIトークンの操作が制限対象に含まれてしまうことがあります。この場合は、アクセス権の対象に「すべてのユーザー」またはAPIトークン用に用意した専用ユーザー・グループを明示的に追加し、必要な操作権限を付与してください。

4. 【復旧手順】kintoneの管理画面からAPIトークンを再発行してZapierへ更新設定するステップ

権限不足が確認できたら、APIトークンを再発行し、Zapier側の設定を更新します。

手順1:新しいAPIトークンを発行する

  1. 対象アプリの[アプリの設定]>[APIトークン]を開く
  2. [生成する]をクリックする
  3. 表示された権限チェックボックスから、Zapierのシナリオで必要な操作(レコード閲覧/レコード追加/レコード編集/レコード削除)にすべてチェックを入れる
  4. [保存]をクリックする

手順2:アプリを更新(運用環境へ反映)する

設定を保存しただけでは、実際に稼働しているアプリには反映されません。画面上部に表示される通知バーから反映作業を行います。

  1. アプリ設定画面の上部に表示される[アプリを更新]ボタンをクリックする
  2. 確認ダイアログで内容を確認し、[アプリを更新]を実行する

手順3:Zapier側の接続設定を更新する

  1. Zapierの管理画面で対象のZapを開く
  2. kintoneへの操作を行っているアクションステップ(例:Webhooks by Zapier、またはkintone連携アプリのステップ)を選択する
  3. ヘッダーまたは認証情報に設定している X-Cybozu-API-Token の値を、手順1で発行した新しいトークンに置き換える
text
Header:
X-Cybozu-API-Token: {新しく発行したAPIトークンの値}
  1. [Test step]を実行し、200番台のレスポンスが返ることを確認する
json
{
  "id": "4521",
  "revision": "3"
}

手順4:Zapを有効化して1サイクル分監視する

テストが成功したら、Zapを「ON」に戻し、次回の自動実行で同じエラーが再発しないかを最低1回分確認してください。

5. 今後の対策:アプリ更新(運用環境への反映)忘れを防ぐチェックリスト

CB_WA01 エラーは一度直しても、アプリ担当者が別の設定変更のついでにアクセス権を変更し、反映を忘れることで再発しやすいトラブルです。運用チーム内で以下のチェックリストを共有しておくことを推奨します。

  • APIトークンや権限設定を変更したら、必ず[アプリを更新]ボタンで運用環境に反映したことを確認する
  • APIトークンには、Zapier連携専用であることが分かる名称(例:「Zapier連携用」)を付け、他の担当者が誤って削除・権限変更しないようにする
  • アプリのアクセス権を変更する際は、APIトークンによる操作が「すべてのユーザー」向けの権限設定でカバーされているかを都度確認する
  • APIトークンを再発行した場合は、Zapier側のZapを one by one で確認し、更新漏れのステップがないかをチェックする
  • 定期的(月1回など)に、Zap Historyで403エラーの発生履歴がないかを棚卸しする

これらを運用ルールに組み込んでおくことで、CB_WA01 の再発をほぼ防ぐことができます。

関連記事

特集記事

TOP
目次