本文へスキップ
Sursa Developers

キーのスコープ

スコープは、キーで呼び出せるAPIの範囲を示します。APIリファレンスの各エンドポイントには、必要なスコープが1つ記載されています。そのスコープを持たないキーでのリクエストは、何かを読み込んだり変更したりする前に、コードapi_keys.scopeとともに403で拒否されます。

スコープが決めるのは、キーで呼び出せる操作です。それらの操作でどのオブジェクトにアクセスできるかは、引き続きキーのロール、データプロファイル、コレクションで決まります。cards:writeとviewerロールを持つキーではカードを変更できず、1つのコレクションに限定されたキーでは他のコレクションにアクセスできません。

スコープ

スコープ許可される操作
cards:readカード、コレクション、フォルダーの読み込み。
cards:writeカード、コレクション、フォルダーの作成・変更・削除。
searchナレッジベースの検索(POST /v1/search)。
askアシスタントへの質問(POST /v1/ask、POST /v1/chat)。
import:write組織のカスタムソースへの書き込み(同期、バッチ、削除)と、その状態の読み取り。ソースとそのキーの作成にはadminが必要です。
webhooks:manageWebhookの管理と、イベントフィード(GET /v1/webhook-events)の読み取り。どちらにもadminロールも必要です。
users:readユーザーとグループの読み込み。
users:writeユーザーとグループの変更。
analytics:read分析データの読み込み。
audit:read監査ログの読み込み。
finance:read財務レポート、請求書、支払いの読み込み。
catalog:readサービスカタログの読み込み。
files:readエクスポートされた回答など、生成されたファイルの読み込み。
files:write生成されたファイルの変更と削除。
permissions:manageオブジェクトに対する権限の付与と取り消し。
admin組織の設定とそのAPIキー。adminを持つキーは、他のすべてのスコープも持ちます。

検索と質問は、性質上は読み取りの操作です。読み取りだけを許可されたキーでも、検索と質問ができます。

スコープの選び方

連携システムが使うスコープだけを付与し、それ以外は付与しないでください。

連携システムスコープ
チャットツールのQ&Aボットsearch、ask
自社の文書管理システムからのインポートcards:write(カードのAPI)またはimport:write(カスタムソース)
データウェアハウスへのエクスポートcards:read、users:read、イベントフィードのためのwebhooks:manage
人事システムからのユーザーのプロビジョニングusers:write

キーを作成するときにリストを渡します。

curl -X POST https://api.sursa.com/v1/api-keys \
  -H "Authorization: Bearer $SURSA_ADMIN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "Support bot", "role": "viewer", "scopes": ["search", "ask"]}'

以前のスコープ

スコープが細分化される前に作成されたキーは、引き続き使えます。それらのスコープread、write、adminは、次のスコープの集まりを表します。

以前のスコープ意味
readcards:read、search、ask、users:read、analytics:read、finance:read、catalog:read、files:read
writereadのすべてに加えて、cards:write、files:write、users:write、permissions:manage
adminすべてのスコープ

スコープを明示せずに作成したキーは、ロールからスコープを得ます:adminはadmin、editorとverifierはwrite、viewerはreadを得ます。

キーのスコープの確認

GET /v1/meは、どのスコープを持つキーであっても、リクエストを送信したキーのスコープを返します。スコープを明示せずに作成したキーでは、readやwriteのような、そのロールの以前のスコープが返ります。それぞれが何を表すかは上の表のとおりです。操作がapi_keys.scopeで失敗したときは、error.messageに不足しているスコープの名前が示されます。