AppSheet設計のポイント(3) アクセス権限はAdmin・Userの2つにわける

AppSheet設計のポイント3

Googleのノーコードツール『AppSheet』でアプリ開発する際に考慮すべき設計のポイント整理3回目です。1回目はデータ構造を最小限に設計すること、2回目はとりあえず使えるシンプルなアプリを目指すことがテーマでした。

前回(2回目)を簡単におさらいすると、アプリはAppSheetから自動生成できる画面(一覧・詳細・入力)と付随する機能があればよく、まずは“少人数”で使ってみることで問題点や要望の発見につなげました。

あわせて読みたい
AppSheet設計のポイント(1) 最小限のデータではじめよう ―――「ノーコードツールを使えば "誰でも簡単にアプリが作れるらしい" から、とりあえず社内のアレやコレやソレで使うアプリを作ってみて。よろしく!」 と、エライ人か...
あわせて読みたい
AppSheet設計のポイント(2) とりあえず使えるシンプルなアプリを目指す 前回から、Googleのノーコードツール『AppSheet』でアプリ開発する際に考慮すべき設計のポイントを整理しています。初回のテーマは、データ構造を最小限に設計すること...

今回は、これまで作ってきたアプリを土台として、利用者にアクセス権限を設定します。

今回のゴール:

  1. 利用者にAdminかUserのいずれかのロールを設定する
  2. テーブル単位のアクセス権限を設定する
  3. View(画面)単位にアクセス権限を設定する
目次

ありがちなトラブル

もしアクセス権限を決めずに運用してしまうと、想定外のメンバーが重要情報を編集したり、間違えてデータを消してしまったりするリスクがあります。

例えば、以下のような問題が起こるかもしれません。

(ケース1)誰でもマスタデータを編集でき、業務が混乱

一般的に、顧客や商品といった事業のベースになる情報は“マスタデータ”として管理されます。権限を明確に分けないまま運用すると、誰でもマスタデータを変更できてしまい、気づいたときには売上管理や在庫管理が混乱していた…というケースがあります。

これを防ぐには、管理者以外のメンバーは「閲覧はできるが編集はできない」など権限を制限しておくのが安全です。

(ケース2)関係のないメンバーまでデータを閲覧できてしまう

経理情報には給与明細や仕入れ金額、取引先との詳細条件などが含まれます。これらのデータが広く社内に見えてしまうと、まったく関係のない従業員にまで機密情報が漏れるリスクがあります。

まずは管理者(経理担当者)だけが経理データにアクセスできるように設定します。一般の利用者に閲覧すらさせたくない場合、当該データをアプリ上で非表示にして存在を知られない設定にしておきます。


このように、各データへのアクセス権限が曖昧だと誤操作や不正アクセスによるデータの破損や消失リスクが高まったり、最悪の場合は機密情報や個人情報の流出につながります。

アクセス権限を最低限に保つことは、アプリを運用するうえで必定に重要です。

2つのロールからはじめよう

そもそも「ロール」とは?

「ロール」は直訳すると「役割」で、アプリではユーザー(利用者)に与える権限の区分を意味します。

例えば「Admin(管理者)」と「User(一般ユーザー)」という2種類のロールを用意することで、必要な権限をまとめて設定しやすくなります。もしロールがない場合は、ユーザーごとに一つひとつ権限を設定する必要があり、どのユーザーがどれだけ操作できるのか管理するのが難しくなります。

最小のロールは2つ(AdminとUser)

AppSheet設計のポイント3-1_ロール
AdminとUser

最初に用意するロールとしては、「Admin(管理者)」と「User(一般ユーザー)」の2つで十分です。Adminはアプリの大枠を管理し、Userは現場で必要な機能だけを使うイメージです。

後から「経理担当者」や「外部スタッフ」などのロールを増やしたくなったら、運用しながら様子を見て追加すればOKです。

Admin(管理者)ロール

Adminロールは、アプリの骨格やシステム面を広範囲に管理できる役割を担います。

例えば、アプリ全体の設定を変更したり、メンテナンス作業を行ったりといった、大枠の調整をする際に必要な権限です。

具体的には、以下のような操作が可能になります。

アプリ全体の設定やメンテナンスを行う

アプリの動作に関わる基本設定や、メニュー・ボタンの配置などを調整し、利用者にとって使いやすい環境を整えます。

データ構造(テーブルや列)の変更ができる

新しい項目を追加したり、既存のデータ型を修正したりするなど、アプリを動かすうえで重要な土台部分を編集できます。

全レコードを編集・削除できる

必要に応じて、すべてのデータを対象に編集や削除を行うことが可能です。誤って入力されたデータを修復したり、不要になった情報をまとめて整理したりといった作業がスムーズに行えます。

Adminは、会社の代表者やITに比較的慣れている方など、組織全体の方針やアプリの方向性を決められる責任者が担います。重要な操作を任せる分、管理者の人数は必要最小限に抑えておきます。

User(一般ユーザー)

Userは、主に現場で日々の業務を行う方々が対象になります。アプリ内で必要な機能を使いつつも、アプリの根幹となるシステム部分には触れないようにすることで、重要データへの誤操作や設定ミスを防ぐ役割があります。

具体的には、以下のような範囲が想定されます。

日常業務に必要な範囲の閲覧・編集が可能

例えば、営業記録の入力や、在庫数の更新など、現場業務に密接に関連する作業を行えます。ただし、組織全体に影響するような重要データの大規模な変更までは任せないことで、ミスやトラブルを抑えることができます。

データ構造の変更は行わない

テーブルや列の定義など、アプリの骨組みに関わる部分はAdminに任せる形です。これにより、ユーザー自身が誤ってデータの型を変えてしまうなどのリスクを大幅に軽減できます。

Userを適切に設定することで、利用者は自分の担当業務に集中しやすくなります。よくある(?)ITに不慣れだが何でもできてしまう状態のまま運用するリスクを避けつつ、日常的なデータ入力や検索などをスムーズに行えるのがメリットです。

必要最低限のアクセス権設計

アクセス権の全体像

はじめに「誰が」「どのデータ」「どこまで操作できるか」をざっくり整理しておくと、後々の運用がスムーズになります。

例えば管理者以外は重要データに手を入れないようにするのか、一般ユーザーでも一部だけは編集できるのか、といった大まかな方針を決めておけば、アプリを利用するメンバーの理解も深まります。

「全部門で同じデータを使っているようで、実は扱う情報が少しずつ違う」ことがあります。部署や職種ごとに業務の内容が違うため、必要な権限も変わります。すべてを一度に細かく設定しようとすると大変なので、はじめは最低限のルールで始めて徐々に追加していくと混乱しにくいです。

最低限押さえておきたいポイント

細かすぎる設定は最初は不要

「営業部」「経理部」「総務部」など、いきなりロールを細かく分けると、管理者も「どのロールが何をできるか」を把握しきれなくなることがあります。まずはAdminとUserの2ロールだけを作り、どうしても必要な権限が出てきたら別のロールを作って追加していくくらいがちょうどいいでしょう。

重要データを保護する

大事なのは「機密情報や個人情報を扱う部分だけは最初からしっかり守る」ことです。例えばお客様情報や給与、取引条件などのデータがもれると大きな問題になりかねません。これらのデータ操作を管理者のみに限定するか、閲覧自体をできないように設定するか、といった最低限の対策だけは早めに検討しておくのがオススメです。

AppSheet標準機能でのアクセス権限をコントロールする

AppSheetには、標準で「ユーザーごとのアクセス権限」を管理する機能があります。ここでは代表的な設定方法を紹介します。

ユーザー管理を有効にする

まずはアプリのセキュリティを確保するために、SecurityメニューのRequire user sign-inを有効にします。これによって、アプリにアクセスする際にユーザーのログイン(サインイン)が必須となり、ユーザーのアクセス権限が有効になります。

ユーザーロールを割り当てる

AppSheet設計のポイント3-2_ロール
ロールの設定

サインインの設定ができたら、右上のShareボタンで開いた画面でAdvancedをONにし、各ユーザーのメールアドレスに「Admin」か「User」を割り当てます。ユーザーを追加したら基本的にはUserを設定し、Adminは経営者やIT担当者のみ設定します。

テーブルやビュー(画面)ごとの権限設定

テーブル単位で「Are updates allowed?」を制御する

AppSheet設計のポイント3-3_テーブル1
AppSheet設計のポイント3-3_テーブル2
AppSheet設計のポイント3-3_テーブル2

アプリの中には顧客情報テーブル、商品情報テーブルなど、いろいろなテーブルがあるかと思います。それぞれのテーブルで「編集を許可するか、閲覧だけにするか」を簡単に設定できます。

  1. Data → Tables を開く
  2. 対象のテーブルを選択し、Are updates allowed? の欄を見つける
  3. 以下を入力すると、Adminだけ編集可能、それ以外は閲覧のみになる
SWITCH(
  USERROLE(),
  "Admin", "ALL_CHANGES",
  "User", "READ_ONLY",
  "READ_ONLY"
)

これで管理者は追加・編集・削除ができるのに対し、一般ユーザーは閲覧のみ(読み取り専用)になります。

Views でロールによるメニューの表示・非表示を切り替える

AppSheet設計のポイント3-4_View1
AppSheet設計のポイント3-4_View2
AppSheet設計のポイント3-4_View2

ビュー(画面)単位で「管理者にしか見せない画面」「一般ユーザーも見られる画面」を分けることも可能です。

例えば、管理者向けの設定画面は Show if 欄に

USERROLE() = "Admin"

と書いておけば、Adminロールのユーザーにだけその画面が表示され、一般ユーザーには見えなくなります。

細かい制御が必要な場合

「この人には営業部のデータだけ編集させたい」「経理部には売上情報だけ見せたい」など、もっと複雑な条件が必要な場合にはSecurity Filtersユーザーテーブルを活用する方法があります。

例えばユーザーテーブルを作り、メールアドレスと部署名などを紐づけることで、条件式で「Userが自分の部署データだけ見られるようにする」といった設定が可能です。

ただし最初から複雑にしすぎると管理者の負担が大きいので、必要になったら少しずつ拡張していくくらいのほうが実践的です。

運用フェーズでの見直しと拡張

運用を通して必要に応じたアクセス権限を再検討

実際に運用してみると、「ここは管理者以外でも編集できたほうが良い」「逆にこの画面は閲覧だけで十分」といった声が出てきます。企業では人員の異動や組織体制の変化も多いので、その都度アクセス権限を修正して、ちょうどよいところを探るのが現実的だと思います。

ロール追加のタイミング

「営業管理者」「経理担当者」「外部スタッフ」などの新しいロールを作るタイミングとしては、次のようなケースが考えられます。

  • 新しい部署や拠点ができたとき
  • 外部スタッフやパートナー企業とアプリを共有する必要が生じたとき
  • コンプライアンスやセキュリティ面でより厳密な管理が求められるとき

このような場面でロールを追加することで、不必要にデータを見られないようにしたり、必要な人にはしっかり権限を付与したりと、バランスの取れた管理が実現できます。

まとめ:小さくシンプルに始め、必要があれば後から拡張

アクセス権限を考えるとき、「最初に完璧に作りこまないといけない」と思うとハードルが高くなりがちです。しかし、AdminとUserの2ロールでも意外と十分にやっていけることが多いです。実際にアプリを使い始めたあとで現場の声を取り入れながら、少しずつ権限設定を足したり変えたりすると、より使いやすい形に近づきます。

もしMVPの段階なのに2ロールで足りないと感じるなら、アプリの利用者が多すぎるのかもしれません。(詳しくは前回の記事を参照)

社内IT化やアプリ導入が進むなかで、セキュリティや業務効率を維持しつつ運用するためには、アクセス権限の基本設計が欠かせません。ぜひ、まずは小さなところからでも始めてみて、必要に応じて拡張していく流れを意識してみてください。結果的に、コストを抑えながらリスクを減らし、チーム全体で安心して使えるアプリへと成長させられるはずです。

というわけで、全3回のAppSheetの設計のポイント整理を終わります。

  • URLをコピーしました!

この記事を書いた人

中野 裕のアバター 中野 裕 なかの情報技術 代表

なかの情報技術代表・ITコーディネータ。2002年に上京。多数の金融機関でシステム開発を経験した後、札幌にUターンして独立。経営管理(管理会計)、受注管理、購買管理、工場等の設備管理など、独立後は広範囲の案件に携わる。「ビジネスとITをつなぐ」ために、両者のコミュニケーションギャップを解消するため走り回ることも多い。

目次