Qandar

Q Cockpit CMSの権限管理はどうやって設定する?

公開日:2021年8月30日

Answer

Cockpit CMSの権限管理は大きく分けて二つ

コレクション単位の管理

コレクションには、それぞれの権限管理が設定できます。

設定画面では下記のような文言です。

  1. 公開中:トークンなしで操作が可能
  2. AUTHOR:作成者のトークンなら操作が可能

初期段階ではコレクションは非公開になっています。ですので、APIトークンがあっても、中身は見れません。

同時に注意したいのは、公開中のステータスにするとAPIトークンなしでもAPIコールが可能になる点です。

編集や削除などを公開中にすると、コレクションの内容を権限を与えていない人間がAPIコールして削除したり編集したりできてしまいます。

APIトークン単位の管理

アカウント・コレクションごとに与える権限を管理したいのであれば、APIトークンの設定で使えるAPIのルールを指定します。

設定方法は「設定 > APIアクセス」ページの中の「カスタムキー」の「ルール」で、使えるようにするAPIを指定します。

例えば、「test」というコレクションの取得のみを付与するのであれば、

/api/collections/get/test2

コレクション全体の取得を付与するのであれば、

/api/collections/get

という形です。

なお、APIトークンの権限付与は、コレクションごとの権限設定よりも優先されるため、完全非公開のコレクションにもアクセスが可能になります。

実際の権限管理は二つを組み合わせる

Cockpit CMSの使用方法的には、フロントエンドのためのデータソースとして使うケースがほとんどなので、ビルド時に使うのは取得だけでしょう。

ですので、

  1. コレクションは非公開(初期設定)
  2. APIトークンには「/api/collections/get」だけを付与

というのがシンプルでセキュリティが高い設定かと思います。なお、APIトークンはSPAなどで使う際は流出しないように細心の注意が必要です。

もし、SPAのコメントフォームなどで外部ユーザーが自由に書き込みをできるようにするのであれば、「公開中」ステータスにしても良いかもしれませんが、基本的にはAPIトークンで管理した方が良いでしょう。

新着Q&A