セキュリティ

【セキュリティ最重要】BubbleのPrivacyルール・設定方法 事例を紹介&丁寧に解説

Bubble プライバシールール 設定方法

さるくん
さるくん
Privacyルールって何だか難しそう…
りすくん
りすくん
Bubbleのセキュリティ対策で最重要項目です。図を多めに解説するよ!

Bubbleのプライバシールール設定は、必須!マストです!

ここまで強調するのは理由があり、この設定をしていない場合=全データが丸見えだからです。
(*Userデータだけは、デフォルトでPrivacyルールが適用されるようになりました。が…)

Bubbleは初心者でも、比較的短時間でアプリ作成〜ボタン一つで公開が可能なツールです。
そこに特化しているため、セキュリティなど細かな部分は「自分で設定」するように作られています。

Privacyルールを設定していない場合にどのように情報が見えてしまうか?はこちらをご覧ください。
This element is visible のチェックを外しても「データ」は見えます」の項目に記載しています。

重要性は知っていても、設定は後からでいいと思いがちですが

はじめからPrivacyルールの設定を想定した上でデータベースの設計をする 必要があります。

つまり、Data typesを組む際に、Privacyルールを前提に組んでいるか、いないかで

のちの「手戻り」や「追加」の工数が変わります。

当然、Privacyルールのことを考えずにDataを組むと、後からデータベースの変更を余儀なくされます。

Bubbleセキュリティ対策には必須かつ、データベース作成前に知っておきたい内容です。
ぜひ理解するようにしてください。

Privacy ルールの設定例も紹介しながら解説をしていきます。

Privacy ルール、どこから設定をする? 画面解説

Privacyルールを設定する場所は

Dataタブ > Privacyタブ > Data typeを選択 > Define a new ruleボタン

Define a new ruleのボタンを押し、定義する任意の名前をつけ、「CREATE」ボタンを押します。
例)ユーザー自身という意味で、user own と付けました。

つけた定義名に対し、設定する項目は2箇所。

詳細は次のチャプターで解説をします。
今は、図の①と②を確認しておいてください↓

  • Privacy ルールの設定はDataタブから行う
  • 定義名ごとに、When(~~~の時に)、データにチェックを入れてルール設定を行います

Privacy ルールの定義をすることで、アクセスできる情報に制限をかけることができます

例えばリピーティンググループに表示させるデータを以下のように制限をしたい場合

・自分のデータは表示させる
・それ以外の人のデータは非表示に

うさぎのぴょん太でログインをしています。

Privacy ルールを何も設定していない場合は↓
(自分以外のデータも表示されています)

しかし、Privacy ルールを以下のように設定すると

①When 現在のユーザーがログインをしている時(ログイン本人は)
View all fieldsFind this in searches にチェックを入れる
(Repeating group等の Do a search の際に表示させるため、Find this in searchesはチェックを入れます)

Everyone else(それ以外の人は)、全てにチェックを入れていない
→ データにアクセス不可(表示させない)

この設定で、App data タブで、ユーザーをRun asさせます

<Run as とは?>

ログイン画面からログインせずに、任意のユーザーでログイン状態にさせることができます。
ユーザー権限毎に確認をする際、そのユーザーの行にある「Run as→」をクリックすることで状態を作ることができます。

この例では、「うさぎのぴょん太」でログイン中としてプレビュー画面の確認が可能です。

「うさぎのぴょん太」でRun asをすると、表示はこのようになります↓
(うさぎのぴょん太、でログインをしている状態)

Current Userが「うさぎのぴょん太」なので、うさぎのぴょん太のデータのみ表示されるようになりました。

*うさぎのぴょん太以外でも、 Run asすると、そのRun as したユーザーのデータだけが表示されます。

Privacyルールの設定は
①Whenで条件を
②チェックボックスにチェックを入れたデータにアクセスが可能(表示可能)

Whenの条件ごとに複数のルールを作成することができます。

例1:Privacyルールを、ユーザー権限毎に定義する

ここからはPrivacyルールの設定例とともに解説をしていきます。

例)ユーザー権限が3パターンあり、それぞれにアクセスできるデータを制限する場合。

例)
・管理者
・編集者
・その他(権限を設定していない人)

管理者と編集者の権限指定用に、Option setsを作成します。

Option sets例)

権限分のOptionを追加

Userデータはこのように作成しました↓

各ユーザーがアクセス可能なFieldsを以下のように制限したい場合

  • 管理者・・・全てのデータにアクセス可能(access-rightも可)
  • 編集者・・・アイコン、ニックネーム、メールアドレス にアクセス可能
  • その他(権限を設定していない人)・・・ニックネーム のみ

Privacyルールの設定は↓

上記Privacy ルールで 各権限ごとにRun asした結果↓

管理者権限で表示
全データが表示されています。
編集者権限で表示
アイコン、ニックネーム、メールアドレスが表示。
その他で表示
ニックネームと自分のメールアドレスが表示

その他の表示は、B-sanでRun asを行いました。
Run as した自分のメールアドレスは設定が無くても表示されます
BubbleはCurrent User(ログインやRun asしている)を認識してくれます。

今回の例で、Whenの条件を「Current User」から始めていることがポイントです✅
ログインしているユーザーの権限ごとに、アクセスできるデータを設定しています。

例2では、Whenを「This 〇〇(Data type)」から始めていることに注目してください。

Whenの条件をどのように設定するか!がポイントです。

例2:Privacyルールを、Fields毎に定義する

もう一つ例を見てみます。

学生が自分の年齢を 「公開する or 非公開」を選べるとします。

Twitterのプロフィールに自分の誕生日を「公開/非公開」を選択できますが、それと似たようなものと考えてください。

この場合はField typeが「yes/no」のFieldsを一つ追加し、条件を作ります。

例)age-公開する 「yes/no」

Privacy ルールの設定は↓

App dataの中身は

  • うさぎのぴょん・・・公開
  • A-san・・・公開
  • B-san・・・非公開
  • C-san・・・非公開

プレビューをするとこのようになります

B-sanとC-sanの年齢が、Privacyルールを設定したことにより「非公開」になっています。

Dataの特定Fieldsを 表示 or 非表示 にする設定では、
Whenの条件を「This 〇〇」から始めていることがポイントです✅

どのように条件を分けて定義するか?
慣れるまで実際に画面を確認しながら、練習が必要です。

Privacyルールの確認方法

設定したルールが効いているか?の確認は、

Userの 「Run as→」から行います。

Userをそれぞれの条件で作成しておき、Run as で意図した表示になるか?を確認します。
全ての条件でUserを作っておきます。

例1の場合は、Userを「管理者」「編集者」「条件設定なしの人」の3パターンで登録しておきます。

Run asの方法は、チャプター2で解説しましたが、再掲します。

<Run as とは?>

ログイン画面からログインせずに、任意のユーザーでログイン状態させることができます。
ユーザー権限毎に確認をする際に、そのユーザーの行にある「Run as→」をクリックすることで状態を作ることができます。

この例では、「うさぎのぴょ太」でログイン中として、プレビュー画面の確認が可能です。

意図した表示にならない場合は、Privacyルールで定義した
・Whenの条件
・チェックボックスは正しくチェックされているか

を確認してください。

まとめ:今日からPrivacy ルール設定は必須です!

Privacyルール設定の2例を挙げました。

Option setsでパターンを作成し、そこから定義の際に利用したり、
Fields自体にyes/noを作成し、定義に利用したり。

経験上、User権限の場合はOption setsを使い、それ以外のFieldsごとに表示/非表示を設定したい場合はFieldsのyes/no項目を追加するのが、使い勝手良く設定できます。

まだPrivacyルールを使ったことが無い方は、
理解し、今日からすぐに設定するようにしてください。

みなさんのアプリが セキュリティ的に安全なものになりますように!

その他セキュリティで注意すべき点は別ブログにまとめました。

Bubble開発のご依頼も承っております

Bubble開発のご相談や代行も承っております。
お気軽にご連絡ください。

お問い合わせはこちら

ABOUT ME
おばとりっぷ
専業Bubbleエンジニア▷元webデザイナー/ディレクター▷CSSをBubbleに実装するのが得意▷日本国内のトップBubbleエンジニアとしてwebアプリ開発に携わる▷Bubble講師▷フルスクラッチ開発のアプリで起業した経験あり▷スタートアップ・起業家のBubbleアプリ開発の支援を積極的に行う。