設計情報

投稿者: SPIRERS ナレッジ向上チーム 2022年5月31日 (火)

APIメソッドごとの権限設定方法まとめ Record / Record (bulk)

SPIRAL ver.2 ではグループやアプリロールを設定することで、APIエージェントに権限を付与することができます。
そしてAPIエージェントに付与された権限によって、APIを実行する場合には細かい制御ができるようになっています。
これらは SPIRAL ver.2 の1つの大きな特徴とも言えるものですが、権限をしっかり設定していないとAPIを
実行した際にエラーが発生してしまうため、初めて触った時に難しく感じる部分でもあります。

この記事では Record / Record (bulk) のメソッドごとに、どのように権限設定をすれば良いのかまとめました。
SPIRAL ver.2 でAPIを使用する時の参考になればと思います。

はじめに

権限は必要最低限で設定することで、セキュアにAPIを使用することができます。
そのためこちらの記事ではAPI実行に必要な最低限のグループ権限設定方法や、
メソッドごとのアプリロール設定をまとめています。

グループ権限設定に関して

権限を最低限にする観点からグループはAPIエージェント専用のものを作成してください。
また、 Record / Record (bulk) のAPIメソッドに関しては「利用アプリ」権限のみを設定すれば実行することが可能です。

以下の画像のように作成したグループに、API操作したいDBがあるアプリを「利用アプリ」に追加してください。

アプリロール設定に関して

アプリロールで設定できる権限は全部で6つあり、それぞれの説明を表にまとめました。
DB権限 アプリ内でAPI実行を許可するDBにだけ「あり」を設定してください。
「なし」を設定したDBに対しては一切のAPI実行ができません。
レコード作成権限 APIでレコード登録する場合には「あり」に設定する必要があります。
レコード操作権限 レコードに対して「閲覧」「変更」「削除」の権限を設定することができます。
条件を設定することで特定のレコードのみの操作権限を設定することも可能です。
フィールド権限 DB内で特定のフィールドに「閲覧」「作成」「変更」の権限を設定することができます。
権限を設定していないフィードに対してはAPI実行ができません。
一括操作権限 APIでレコードの一括操作を実行したい場合に設定する必要があります。
メール操作権限 メール関連の権限になりますので、レコード操作系のAPIでは設定する必要がありません。
以下では、メソッドごとに権限をどのように設定すべきかまとめております。
使用するメソッドに合わせて、アプリロールを設定してください。

レコード一覧取得メソッド

レコード一覧取得を実行したい場合には下記のようにアプリロールを設定してください。
DB権限 あり
レコード作成権限 なし
レコード操作権限 すべてのレコードもしくは条件を絞ったレコードの「閲覧」にチェックを付けてください。
フィールド権限 必要なフィードにのみ「閲覧」のチェックを付けてください。
一括操作権限 設定不要
メール操作権限 設定不要
▼ 実際の設定画面
APIリファレンス
補足
API実行の際にフィールドを指定してレコード取得をした場合、
アプリロールで指定したフィールドにチェックを付けていないとエラーとなります。
逆にフィールド指定せずにレコード取得した場合、
アプリロールでチェックが付いているフィールドのみ取得可能です。

レコード登録メソッド

レコード登録を実行したい場合には下記のようにアプリロールを設定してください。
DB権限 あり
レコード作成権限 あり
レコード操作権限 設定不要
フィールド権限 必要なフィードにのみ「作成」のチェックを付けてください。
※仕様上「閲覧」にもチェックを付ける必要があります。
一括操作権限 設定不要
メール操作権限 設定不要
▼ 実際の設定画面
APIリファレンス
補足
登録したいフィールドには、アプリロールのフィールド設定でチェックを付けてください。
チェックを付けていない場合はエラーとなります。

レコード取得メソッド

レコード取得を実行したい場合には下記のようにアプリロールを設定してください。
DB権限 あり
レコード作成権限 なし
レコード操作権限 すべてのレコードもしくは条件を絞ったレコードの「閲覧」にチェックを付けてください。
フィールド権限 必要なフィードにのみ「閲覧」のチェックを付けてください。
一括操作権限 設定不要
メール操作権限 設定不要
▼ 実際の設定画面
APIリファレンス
補足
このメソッドだとフィールドを指定してレコード取得ができませんが、
アプリロールでフィールド権限を設定すればチェックがついているフィールドのみ取得可能です。
またレコード操作権限で条件を付けることで、例えばフラグが立っているレコードのみ
取得可能にするなどアプリロール側で様々な制御が可能になっています。

レコード変更メソッド

レコード変更を実行したい場合には下記のようにアプリロールを設定してください。
DB権限 あり
レコード作成権限 なし
レコード操作権限 すべてのレコードもしくは条件を絞ったレコードの「変更」にチェックを付けてください。
※仕様上「閲覧」にもチェックを付ける必要があります。
フィールド権限 必要なフィードにのみ「変更」のチェックを付けてください。
※仕様上「閲覧」にもチェックを付ける必要があります。
一括操作権限 設定不要
メール操作権限 設定不要
▼ 実際の設定画面
APIリファレンス
補足
更新したいフィールドには、アプリロールのフィールド設定でチェックを付けてください。
チェックを付けていない場合はエラーとなります。

レコード削除メソッド

レコード削除を実行したい場合には下記のようにアプリロールを設定してください。
DB権限 あり
レコード作成権限 なし
レコード操作権限 すべてのレコードもしくは条件を絞ったレコードの「削除」にチェックを付けてください。
※仕様上「閲覧」にもチェックを付ける必要があります。
フィールド権限 設定不要
一括操作権限 設定不要
メール操作権限 設定不要
▼ 実際の設定画面
APIリファレンス
補足
削除メソッドは成功した場合のレスポンスがありませんのでご注意ください。

レコード検証メソッド

レコード検証を実行したい場合には下記のようにアプリロールを設定してください。
DB権限 あり
レコード作成権限 なし
レコード操作権限 すべてのレコードもしくは条件を絞ったレコードの「閲覧」「変更」にチェックを付けてください。
※仕様上「閲覧」にもチェックを付ける必要があります。
フィールド権限 レコードを識別する為の入力必須かつ重複不可のフィールドとパスワード型フィールドの「閲覧」にチェックを付けてください。
一括操作権限 設定不要
メール操作権限 設定不要
▼ 実際の設定画面
APIリファレンス
補足
レコード操作権限の「変更」にチェックを付けないとエラーとなります。
ただしフィールド権限で「変更」にチェックを付けなくても大丈夫ですので、
API経由でフィールド変更がされることを防ぐことはできます。

複数レコード登録メソッド

複数レコード登録を実行したい場合には下記のようにアプリロールを設定してください。
DB権限 あり
レコード作成権限 あり
レコード操作権限 設定不要
フィールド権限 必要なフィードにのみ「作成」のチェックを付けてください。
※仕様上「閲覧」にもチェックを付ける必要があります。
一括操作権限 「一括登録」にチェックを付けてください。
メール操作権限 設定不要
▼ 実際の設定画面
APIリファレンス
補足
複数登録する場合は、一括操作権限を設定していないとエラーとなります。

複数レコード更新メソッド

複数レコード更新を実行したい場合には下記のようにアプリロールを設定してください。
DB権限 あり
レコード作成権限 なし
レコード操作権限 すべてのレコードもしくは条件を絞ったレコードの「変更」にチェックを付けてください。
※仕様上「閲覧」にもチェックを付ける必要があります。
フィールド権限 必要なフィードにのみ「変更」のチェックを付けてください。
※仕様上「閲覧」にもチェックを付ける必要があります。
一括操作権限 「一括更新」にチェックを付けてください。
メール操作権限 設定不要
▼ 実際の設定画面
APIリファレンス
補足
複数更新する場合は、一括操作権限を設定していないとエラーとなります。

複数レコード削除メソッド

複数レコード削除を実行したい場合には下記のようにアプリロールを設定してください。
DB権限 あり
レコード作成権限 なし
レコード操作権限 すべてのレコードもしくは条件を絞ったレコードの「削除」にチェックを付けてください。
※仕様上「閲覧」にもチェックを付ける必要があります。
フィールド権限 設定不要
一括操作権限 「一括削除」にチェックを付けてください。
メール操作権限 設定不要
▼ 実際の設定画面
APIリファレンス
補足
複数削除する場合は、一括操作権限を設定していないとエラーとなります。
また、削除メソッドは成功した場合のレスポンスがありませんのでご注意ください。
解決しない場合はこちら コンテンツに関しての
要望はこちら