NIFCLOUD-mbaas / UserCommunity

ニフクラ mobile backend ユーザーコミュニティ
https://mbaas.nifcloud.com/
81 stars 18 forks source link

【過去質問】mBaaSを用いたアプリのプッシュ通知利用のセキュリティ設定について #1177

Open ncmbsupport opened 3 years ago

ncmbsupport commented 3 years ago

mBaaSを用いたアプリのセキュリティに関して、以下ご教示いただけないでしょうか。

前提としまして、

(1) データストアのinstallationクラスのパーミッション(ACL)の設定について、 仮にAPIキーが漏洩した場合に、情報流出を防ぐ上で推奨される設定等 教えていただけないでしょうか。

(クライアントキーの隠蔽に関する記事については承知しております。 https://blog.mbaas.nifcloud.com/entry/2018/10/01/115907 )

(2) mBaaSのアプリを作成する際、管理画面の設定等で、セキュリティ上検討すべき 項目のリストや記事等、まとまった情報がありましたら、教えていただけないでしょうか。

(3) 管理画面の「アプリ設定」>「プッシュ通知」>「プッシュクラス パーミッション」 >「SDKからの操作」について、具体的にはどの範囲の操作に対する設定となるのでしょうか?

REST APIリファレンス(https://mbaas.nifcloud.com/doc/current/rest/common/format.html)に 当てはめた場合に、以下のAPIに対する操作という意味でしょうか?

以上、どうぞよろしくお願いいたします。

ncmbsupport commented 3 years ago

お問い合わせいただきありがとうございます。

--------------------------------------
(1) データストアのinstallationクラスのパーミッション(ACL)の設定について、
仮にAPIキーが漏洩した場合に、情報流出を防ぐ上で推奨される設定等
教えていただけないでしょうか。
--------------------------------------

monaca push pluginの設定も変更せずとも 以下のようにinstallationクラスパーミッションを設定することで、 エラーなくデバイス登録・更新が実施できることを確認しました。

例: installation_class_permission

なお、こちらの設定により、 SDKやAPIからのinstallationの情報は検索不可能のため、 情報漏れなどは心配する必要がございません。 また、対象を「全員」としたうえで「検索」権限を設定しない場合でも、 プッシュ通知機能に問題は生じません。

--------------------------------------
(2) mBaaSのアプリを作成する際、管理画面の設定等で、セキュリティ上検討すべき
項目のリストや記事等、まとまった情報がありましたら、教えていただけないでしょうか。
--------------------------------------

開発ガイドラインをご用意しておりますため、ご参照ください。

▼開発ガイドライン https://mbaas.nifcloud.com/doc/current/common/dev_guide.html

なお、アプリ開発における権限設定などのセキュリティ項目は、 各ドキュメントに記載がございます。 お客様のアプリの実装状況に応じてご確認いただければ幸いです。

▼ドキュメント:開発者向けドキュメント https://mbaas.nifcloud.com/doc/current/index.html

--------------------------------------
(3) 管理画面の「アプリ設定」>「プッシュ通知」>「プッシュクラス パーミッション」
「SDKからの操作」について、具体的にはどの範囲の操作に対する設定となるのでしょうか?
REST APIリファレンス(https://mbaas.nifcloud.com/doc/current/rest/common/format.html)に
当てはめた場合に、以下のAPIに対する操作という意味でしょうか?
・プッシュ通知登録
・プッシュ通知取得
・プッシュ通知更新
・プッシュ通知削除
・プッシュ通知検索
・プッシュ通知開封登録(こちらはクライアントからの操作想定のため対象外でしょうか)
--------------------------------------

管理画面の該当設定を「SDKからの操作:許可しない」と設定した場合、 get(取得)処理は可能ですが、その他の処理はできなくなります。  ※push クラスのACLは {"acl":{"*":{"get":true}}} と設定されます。  ※クラス関連のACLについては以下のドキュメントをご参照ください ◇REST API リファレンス:共通フォーマット >「パーミッション(ACL)について」>「クラスのACL」 https://mbaas.nifcloud.com/doc/current/rest/common/format.html#%E3%83%91%E3%83%BC%E3%83%9F%E3%83%83%E3%82%B7%E3%83%A7%E3%83%B3%EF%BC%88ACL%EF%BC%89%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

▼SDKからの操作:許可しないの場合

したがいまして、操作範囲は以下となります。

以上、よろしくお願いいたします。