ニフクラ mobile backendは3月末で終了します。
ニフクラ mobile backendからの移行先として、お勧めしているのがParse Serverです。設計思想が近く、変更するコード量が少なく済むのではないかと思います。
アプリのデータをセキュアに、安全に扱うために欠かせないのがACL(アクセスコントロール)です。ACLもParse ServerとNCMBは似ていますが、幾つの違いがあります。本記事では、その相違点を紹介します。
ACLは全部で3段階
NCMBと同じく、Parse ServerのACLは3つの情報で管理します。
項目 | 意味 |
---|---|
Public | 未ログインユーザーを含め、誰でも |
User | 認証済みユーザー |
Role | グループ |
そして、各項目に読み取り・書き込み権限が指定できます。読み取りは read
、書き込みは write
です。
権限 | 可能な操作 |
---|---|
read | 読み込み |
write | 編集・削除 |
各項目の指定方法
Publicは *
、 UserはユーザーのobjectId、Roleは role:(ロール名)
として、JSONで指定します。以下の場合、データの読み込みは誰でも可能で、ユーザーIDが ABCDEF
と 012345
のユーザーと admin
ロールに属するユーザーは編集可能という意味になります。
{
"*": {
"read": true
}
"ABCDEF": {
"write": true
},
"012345": {
"write": true
},
"role:admin": {
"write": true
}
}
クラスレベルの権限
NCMBとParse Serverの両方にクラスレベルの権限が付与できます。これはNCMBとParse Serverで多少異なります。
NCMB
NCMBのクラス権限は以下のようになっています。
項目 | 意味 |
---|---|
Public | 未ログインユーザーを含め、誰でも |
User | 認証済みユーザー |
Role | グループ |
それぞれに対して指定できる権限は以下の通りです。
- 読み込み
- 検索
- 更新
- 作成
- フィールド追加
Parse Server
Parse Serverのクラス権限は以下のようになっています。
項目 | 意味 |
---|---|
Public | 未ログインユーザーを含め、誰でも |
Authenticated | ログインユーザー |
User | 特定のユーザー |
Role | グループ |
それぞれに対して指定できる権限は以下の通りです。
- 簡易
- 読み込み
- 編集
- フィールド追加
- 詳細
- 読み込み
- GET
- Find
- Count
- 書き込み
- Create
- Update
- Delete
- フィールド追加
- 読み込み
フィールドのプロテクト
これはParse Server独自の機能です。
- 全員に公開するフィールド
- 特定のユーザーに公開するフィールド
- 特定のロールに公開するフィールド
フィールドのプロテクトは、 自分だけが見られるといった指定はできない ので注意してください。
フィールド名が違う
NCMBはaclですが、Parse ServerはACLなので注意してください(大文字、小文字の違い)。
まとめ
Parse Serverでは、NCMBよりも細かくACLを設定できるようです。この点においてはNCMBの機能は網羅しているようなので、移行する際に機能を削らずに済みそうです。
また、Parse Serverでは返却するフィールドを絞り込むこともでき、データ受信量を削減できます。自分でサーバーを立てる必要があるという点は懸念点ですが、移行先として検討してください。