FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

データストアではロールを使ったパーミッションを設定しましょう

データストアではACLを使ってアクセス制御ができます。特にACLを設定せずに保存するとパブリック(全体)に対して読み書き権限が付与されます。この状態ですと、誰でもデータの変更や削除ができてしまうのでよくありません。

そこでACLでは特定のユーザやロールに対して読み書きの権限が付与できるのですが、お勧めなのはロール(グループ)に対する書き込み権限です。例えばAdministratorというロールを作成し、データに必ず読み書き権限を付与するようにします。

そうすることで次の利点が生まれます。

SDK/Web APIからデータの参照、変更、削除が可能に

管理画面ではACLによらず、すべてのデータが閲覧/変更できます。しかしSDK経由ではできません。認証したとしても、その権限の範囲内でしかデータの操作はできません。管理画面では200件あっても、SDK経由では100件ということがあります。

そこで管理者グループを作成しておくことで、その管理者に所属しているユーザであれば常に全データが参照できるようにしておくと担当者専用の管理画面なども作りやすくなります。

組織変更への対応

会社内においては組織変更が行われることは多々あります。そうした時は管理者グループの情報をメンテナンスするだけですぐに対応できます。ユーザとしての管理者に対して権限を付与していると、その引き継ぎが面倒になるでしょう。

また、現状のmBaaSではパスワード変更機能がなく、管理者を引き継ぐ際のパスワード変更ができません。しかしロールを使っている場合はユーザをロールから外したり、削除してパスワードを作り直すことも可能です。

担当者の追加

アプリが成長していく中で、データ管理の担当者が追加されることもあるでしょう。管理者ユーザを使っている場合、パスワードを共有しなければなりませんが、ロールであれば担当者を追加するだけで済みます。

手間は大して変わりませんが、ユーザではなくロールを使うことでフレキシブルな対応ができるようになるでしょう。


これはすべてのデータに対して共通して行うのが理想です。データストアだけでなく、ファイルストアや会員管理、Installationにも適用しておきましょう。管理者ロールと個別会員(データを登録したユーザ自身)に書き込み権限をつけ、パブリックは読み込みのみと言うのが基本になるでしょう。