atom.nocode-builder.design-access-control
権限管理を設計する
権限管理を設計する レストランを想像してみてください。店長はすべての部屋の鍵を持っていますが、ホールスタッフは厨房には入れません。アルバイトは売上データを見ることもできません。このように「誰が、どこまでアクセスでき...
成果物成果物このレッスンが終わったとき、あなたの手元に残る具体的な成果物です(例: 公開済みの Web ページ、動作するフォームなど)。
証跡証跡成果物が正しく作れたことを確認するためのチェックリストです(例: ブラウザで動作する、フォーム送信で値が保存される)。
メディアメディアレッスン内に出てくる図や動画のスロットです。実際の画面やイメージで理解を補助します。
レッスン本文
権限管理を設計する
レストランを想像してみてください。店長はすべての部屋の鍵を持っていますが、ホールスタッフは厨房には入れません。アルバイトは売上データを見ることもできません。このように「誰が、どこまでアクセスできるか」を決めるのが権限管理(=アクセスコントロール)です。
あなたのアプリでも同じ仕組みが必要です。管理画面は誰でも見られるべきではありませんし、顧客データは担当者だけが編集できるようにしたいですよね。このレッスンでは、AIツールの力を借りながら、あなたのアプリに合った「誰が何をできるか」の設計書を15分で仕上げます。
前提を確認する
このレッスンを始める前に、次の2つを用意してください。
- あなたのアプリで「どんな機能があるか」のざっくりしたメモ(箇条書きでOK)
- アプリを使う人の種類(例:管理者、一般ユーザー)をなんとなくイメージできている
まだ機能が固まっていなくても大丈夫です。「こんな感じのアプリを作りたい」程度のメモがあれば進められます。
ステップ1:ユーザーの役割を書き出す
まずは「このアプリを使うのは誰か」を洗い出します。それぞれの立場をロール(=役割)と呼びます。
良い例:
- 「管理者」— アプリ全体を管理する人
- 「一般利用者」— サービスを使うお客さん
- 「ゲスト」— ログインしていない人
悪い例:
- 「田中さん、佐藤さん」← 個人名ではなく「役割」で考えましょう
- 「とりあえず全員同じ」← 後で必ず困ります
AIに役割を提案してもらう
ChatGPTやClaudeに、次のプロンプト(=指示文)をコピペして送ってみましょう。
私のアプリは「[ここにアプリの説明を入れる]」です。
このアプリで考えられるユーザーの役割(ロール)を3〜5個提案してください。
それぞれの役割について、以下を教えてください。
- 役割名
- どんな人か(1行で)
- 主にやること(2〜3個)
ポイント:
[ここにアプリの説明を入れる]の部分を、あなたのアプリの説明に書き換えてから送ってください。
Cursorを使っている場合は、エディタ上で Cmd+K(Macの場合)を押して同じプロンプトを入力すれば、その場で提案が返ってきます。
ステップ2:操作とデータを整理する
次に、アプリでできる「操作」と、操作の対象になる「データ」を並べます。
操作の例(この4つを基本にするとシンプルです):
| 操作 | 意味 |
|---|---|
| 閲覧 | データを見る |
| 作成 | データを新しく追加する |
| 編集 | 既存のデータを変更する |
| 削除 | データを消す |
データの例:
- 顧客情報、注文履歴、商品マスター、設定情報 など

上の図のように、役割ごとに「どの操作を許可するか」を表にまとめたものを権限マトリックス(=許可一覧表)と呼びます。
ステップ3:AIと一緒に権限マトリックスを作る
表の形にまとめるのが一番わかりやすいです。AIツールに次のプロンプトを送りましょう。
以下の役割とデータに対して、権限マトリックスをマークダウンの表で作ってください。
役割:[ステップ1で決めた役割をカンマ区切りで]
データ:[ステップ2で決めたデータをカンマ区切りで]
各セルには以下のいずれかを入れてください。
- ✅ 可能
- ❌ 不可
- 🔒 自分のデータのみ
また、判断の理由も一言ずつ添えてください。
良い出力例:
| 顧客情報を見る | 顧客情報を編集する | 注文を削除する | |
|---|---|---|---|
| 管理者 | ✅ | ✅ | ✅ |
| 一般利用者 | 🔒 自分だけ | 🔒 自分だけ | ❌ |
| ゲスト | ❌ | ❌ | ❌ |
悪い例:
- 「管理者は全部OK、それ以外はダメ」← ざっくりしすぎて実装時に迷います
- 表を作らず頭の中だけで考える ← 必ず書き出しましょう

ステップ4:シナリオで検証する
設計ができたら、「もし〇〇の人が✕✕をしようとしたら?」を具体的に考えて確認します。AIにもチェックしてもらいましょう。
以下の権限マトリックスに対して、セキュリティ上の問題がないか確認してください。
[ステップ3で作った表をコピペ]
以下の観点でチェックしてください。
1. 一般利用者が他人のデータにアクセスできてしまわないか
2. ゲストに不要な権限が付いていないか
3. 管理者にしかできない操作が明確か
良い確認例:
- 「一般利用者が他人の注文履歴を見ようとしたら → 🔒 でブロックされる ✅」
- 「ゲストが商品一覧を見ようとしたら → 閲覧のみ許可されている ✅」
悪い確認例:
- 「とりあえず全部見られるようにする」← セキュリティ上危険です
- 「あとで考えよう」← 権限は後回しにすると事故のもとです
つまずきポイントに対処する
ここでは、よくあるつまずきと対処法をまとめます。
| つまずき | 対処法 |
|---|---|
| 役割が多すぎて表が巨大になる | まず3つに絞りましょう。「管理者」「一般」「ゲスト」が基本形です |
| 「🔒 自分のデータのみ」を忘れる | 他人のデータが見えてしまうのは重大な事故につながります。個人データには必ずこの設定を検討してください |
| ゲストに何を許可するか迷う | 「見るだけ」を基本にしましょう。ゲストにデータの作成・編集・削除を許可するケースはほぼありません |
| AIの提案をそのまま採用してしまう | AIの出力はあくまで下書きです。あなたのアプリの実情に合っているか、必ず自分の目で確認してください |
ステップ5:成果物をまとめる
これまで書き出した内容を1つの設計書にまとめます。AIツールに次のプロンプトを送りましょう。
これまでの議論をもとに、権限管理の設計書をマークダウン形式で出力してください。
含める内容:
1. アプリの概要(1〜2行)
2. 役割の一覧と説明
3. 権限マトリックス(表形式)
4. 各シナリオの確認結果
5. 注意点メモ
出力されたドキュメントを確認し、スクリーンショットを撮って保存すれば、このレッスンの成果物の完成です。
完了を確認する
以下の3つすべてに「はい」と言えれば、このレッスンは完了です。
- ユーザーの役割が3つ以上書き出されている
- 権限マトリックス(表)が作成されていて、各セルに「✅ / ❌ / 🔒」が入っている
- 少なくとも2つのシナリオ(「もし〇〇が✕✕をしたら」)で検証済み
種類: markdown_doc
検証: basic_manual_check_v1
証跡証跡成果物が正しく作れたことを確認するためのチェックリストです(例: ブラウザで動作する、フォーム送信で値が保存される)。
メディア
必須
なし
あると楽
なし