メインコンテンツへスキップ
レッスン一覧に戻る

atom.nocode-builder.design-access-control

権限管理を設計する

権限管理を設計する レストランを想像してみてください。店長はすべての部屋の鍵を持っていますが、ホールスタッフは厨房には入れません。アルバイトは売上データを見ることもできません。このように「誰が、どこまでアクセスでき...

design-access-control-matrixdesign-access-control-matrix「design access control matrix」に関するスキルがこのレッスンで身につきます。
想定時間未設定公開状態: draft
学習メモ

成果物成果物このレッスンが終わったとき、あなたの手元に残る具体的な成果物です(例: 公開済みの Web ページ、動作するフォームなど)。

種類: markdown_doc検証: basic_manual_check_v1

証跡証跡成果物が正しく作れたことを確認するためのチェックリストです(例: ブラウザで動作する、フォーム送信で値が保存される)。

screenshot

メディアメディアレッスン内に出てくる図や動画のスロットです。実際の画面やイメージで理解を補助します。

diagramscreen_capture

レッスン本文

権限管理を設計する

レストランを想像してみてください。店長はすべての部屋の鍵を持っていますが、ホールスタッフは厨房には入れません。アルバイトは売上データを見ることもできません。このように「誰が、どこまでアクセスできるか」を決めるのが権限管理(=アクセスコントロール)です。

あなたのアプリでも同じ仕組みが必要です。管理画面は誰でも見られるべきではありませんし、顧客データは担当者だけが編集できるようにしたいですよね。このレッスンでは、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、それ以外はダメ」← ざっくりしすぎて実装時に迷います
  • 表を作らず頭の中だけで考える ← 必ず書き出しましょう

AIツールで権限マトリックスを作成する画面

ステップ4:シナリオで検証する

設計ができたら、「もし〇〇の人が✕✕をしようとしたら?」を具体的に考えて確認します。AIにもチェックしてもらいましょう。

以下の権限マトリックスに対して、セキュリティ上の問題がないか確認してください。

[ステップ3で作った表をコピペ]

以下の観点でチェックしてください。
1. 一般利用者が他人のデータにアクセスできてしまわないか
2. ゲストに不要な権限が付いていないか
3. 管理者にしかできない操作が明確か

良い確認例:

  • 「一般利用者が他人の注文履歴を見ようとしたら → 🔒 でブロックされる ✅」
  • 「ゲストが商品一覧を見ようとしたら → 閲覧のみ許可されている ✅」

悪い確認例:

  • 「とりあえず全部見られるようにする」← セキュリティ上危険です
  • 「あとで考えよう」← 権限は後回しにすると事故のもとです

つまずきポイントに対処する

ここでは、よくあるつまずきと対処法をまとめます。

つまずき対処法
役割が多すぎて表が巨大になるまず3つに絞りましょう。「管理者」「一般」「ゲスト」が基本形です
「🔒 自分のデータのみ」を忘れる他人のデータが見えてしまうのは重大な事故につながります。個人データには必ずこの設定を検討してください
ゲストに何を許可するか迷う「見るだけ」を基本にしましょう。ゲストにデータの作成・編集・削除を許可するケースはほぼありません
AIの提案をそのまま採用してしまうAIの出力はあくまで下書きです。あなたのアプリの実情に合っているか、必ず自分の目で確認してください

ステップ5:成果物をまとめる

これまで書き出した内容を1つの設計書にまとめます。AIツールに次のプロンプトを送りましょう。

これまでの議論をもとに、権限管理の設計書をマークダウン形式で出力してください。
含める内容:
1. アプリの概要(1〜2行)
2. 役割の一覧と説明
3. 権限マトリックス(表形式)
4. 各シナリオの確認結果
5. 注意点メモ

出力されたドキュメントを確認し、スクリーンショットを撮って保存すれば、このレッスンの成果物の完成です。

完了を確認する

以下の3つすべてに「はい」と言えれば、このレッスンは完了です。

  • ユーザーの役割が3つ以上書き出されている
  • 権限マトリックス(表)が作成されていて、各セルに「✅ / ❌ / 🔒」が入っている
  • 少なくとも2つのシナリオ(「もし〇〇が✕✕をしたら」)で検証済み
成果物成果物このレッスンが終わったとき、あなたの手元に残る具体的な成果物です(例: 公開済みの Web ページ、動作するフォームなど)。

種類: markdown_doc

検証: basic_manual_check_v1

証跡とメディア

証跡証跡成果物が正しく作れたことを確認するためのチェックリストです(例: ブラウザで動作する、フォーム送信で値が保存される)。

screenshot

メディア

diagramscreen_capture
前提 atom

必須

なし

あると楽

なし

学習完了