「誰が何を見られるか」問題:AIで作ったアプリに権限を追加する

AIで作ったアプリのほとんどは、ユーザー1人 — あなた — から始まります。2人目を加えた日、権限が必要になります — そして、ほとんどの人がこれを間違えます。セキュリティの専門家にならずに考える方法を解説します。

AIで作ったアプリが自分だけのものでなくなる瞬間こそ、権限が本物の問題になる瞬間です。それまでは、どのページも全部を表示します。どのリストも全行を表示します。どのボタンも誰に対しても動きます。マルチプレイヤーのふりをしたシングルプレイヤーのアプリです。

そして最初のチームメイト、最初の顧客、最初のベータテスターを加える — すると彼らは、見るべきでないものを目にします。チームメイトの給料かもしれない。準備の整っていない下書きかもしれない。うっかり露出した管理者設定かもしれない。

これが 「誰が何を見られるか」 問題であり、非エンジニアのビルダーがAIアプリビルダーのプロジェクトをリリースするときに最もよく間違える、単一で最大のことです。良い知らせ:これを解くのにセキュリティの専門家になる必要はありません。AIビルダーにそれを伝えるための、はっきりした方法を知っていればいいだけです。

AIで作ったアプリが、なぜ最初は何でも見せてしまうのか

AIビルダーにアプリを説明するとき — 「クライアントとメモを追加できるCRMがほしい」 — ビルダーは一つのことに最適化します。それを説明している本人のために動くようにすることです。デフォルトのアプリは「ログインしている人は全員、全部を見られる」です。これは個人用ツールには問題ありません。2人目のユーザーが現れた瞬間に、それは大惨事になります。

これはAIアプリビルダーのバグではありません。誰が何を見ていいかをあなたが伝えなかった、その自然な結果です。ビルダーには、あなたのクライアント一覧が機密だとか、「メモ」にクライアントに見せたくないものが入っているかもしれないとか、知る由もありません。あなたが言わなければならないのです。

2人目を加える前に問うべき3つの問い

誰かを招待する前に、3つのことを自問しましょう。答えを書き留めておくこと — 次のステップでAIビルダーに渡します。

1. ロール(役割)は何か?

人ではなく — カテゴリです。ほとんどのアプリは、2つから4つの間のどこかです。フリーランサー向けポータルなら「自分」と「クライアント」。社内ツールなら「管理者」「マネージャー」「チームメンバー」。コミュニティアプリなら「モデレーター」「メンバー」「ゲスト」。早い段階で4つを超えたくなる衝動は抑えましょう。ロールが1つ増えるたびに、管理すべきルールが2倍になります。

2. 各ロールは、何を見られるか?

アプリのすべてのページを、頭の中で一つずつ通っていきましょう。それぞれについて問います。クライアントはこのページをそもそも見るべきか?そこにあるデータを全部見るべきか、それとも自分のものだけか?ページは見えるけれど一部のフィールドは隠すべきか?

いちばんシンプルなパターン:オーナーは全部を見られる。それ以外の全員は、明示的にアクセス権を与えられたものだけを見られる。これで、たいしてカスタマイズせずに80%のアプリに対応できます。

3. 各ロールは、何ができるか?

同じ作業を、今度はボタンとアクションについて。メンバーはプロジェクトを削除できるか?クライアントは自分のプロフィールを編集できるけれどプランは変えられないか?マネージャーは新しい人を招待できるか?ほとんどの非エンジニアのビルダーはこのステップをまるごと忘れ、ログインしているユーザーなら誰でもボタン1つでデータベース全体を削除できるアプリができあがります。

AIビルダーに権限について伝える

答えがそろえば、AIビルダーへのプロンプトはおのずと書けます。こんな具合です。

このアプリを、2つのロールに対応させて:オーナー と クライアント。

オーナーは、すべてのクライアント、すべてのプロジェクト、すべての請求書を見られる。オーナーは何でも作成・編集・削除できる。

クライアントは、自分のプロジェクトと自分の請求書だけを見られる。クライアント一覧、チームページ、設定ページは見られない。自分のプロジェクトは閲覧できるが編集はできない。自分の請求書は閲覧・支払いができる。

クライアントがログインしているときは、設定とチームへのナビゲーションリンクを隠して。クライアントがURLでそれらのページを訪れようとしたら、ダッシュボードにリダイレクトして。

このプロンプトで大事なのは3つです。

  • ページとアクションで具体的に。 「クライアントは自分のプロジェクトを見られる」は曖昧です。「クライアントは /projects ページで自分のプロジェクトを閲覧できるが編集はできない」なら、AIビルダーが実際に実装できるものです。
  • ナビゲーションがどうなるかを言う。 リンクを隠すことは、ページをブロックすることと同じではありません。両方がほしいのです。
  • URLを直打ちするケースを押さえる。 さもないと、好奇心旺盛なユーザーがブラウザのアドレスバーに /admin を貼り付けて、堂々と入ってきてしまいます。

私が毎週見かける4つの間違い

たくさんのビルダーが初めてのマルチユーザーアプリをリリースするのを見てきて、同じ間違いが繰り返し現れます。

ボタンを隠すことは、データを隠すことではない。 AIビルダーに「クライアントには削除ボタンを隠して」と言えば、ボタンは画面から消えます。でも、誰かがそれを呼び出す方法を見つければ、裏側の削除操作はまだ動きます。直し方:ビルダーに「バックエンドで、オーナー以外のアカウントからの削除リクエストを拒否して」とも伝えること。ビルダーがあなたのアプリで「バックエンド」が何を指すか分からなければ、「ボタンを隠すだけでなく、サーバー側でそのアクションをブロックして」と頼みましょう。

1つのロールで2つの仕事。 人は「お金を払う人」と「アプリを使う人」を混同します。あなたに仕事の代金を払うクライアントと、そのクライアントのために作ったダッシュボードを使うクライアントの従業員は、同じロールではありません。混ぜると、その後一ヶ月、場当たり的なルールにつぎはぎする羽目になります。2つのロール。必ず。

初日からユーザーにユーザーを招待させる。 すぐに「チームメイトを招待」を足したくなります。やめましょう。最初の10人は、あなた自身が、あなただけが見える管理画面から、手作業で招待しましょう。セルフサービスの招待は、まるまる1カテゴリの権限ルールです(誰が誰を招待できる?招待された人はどのロールになる?その人はさらに他人を招待できる?)。本当に必要になるまで待ちましょう。

AIビルダーの言うことを確認せずに信じる。 AIビルダーは、自信たっぷりに、権限は設定済みだと言ってきます。本当かもしれない。そうでないかもしれない。必ずテストしましょう。オーナーでないユーザーとしてログインし、悪いことを試みること。削除ボタンをクリックする、管理者URLを貼り付ける、編集できるはずのないフィールドを編集する。できるはずのないことができてしまったら、ビルダーにそれを名指しで直してもらいましょう。

誰かを招待する前のクイックチェックリスト

2人目のユーザーへの最初の招待を送る前に、これを通しましょう。

  • アプリのロールを片手で数え上げられる。
  • 各ロールについて、見せるべきページと見せるべきでないページがわかっている。
  • オーナーでないユーザーとしてログインし、見せるべきでないページが隠れていることを確認した。
  • オーナーでないユーザーとしてブラウザに管理者URLを貼り付けてみて、ブロックされた。
  • 立ち入り禁止であるべき削除や編集のボタンをクリックしてみて、ブロックされた。
  • 何か問題が起きたら、ユーザーのアクセスを素早く取り消す手段がある。

このうち1つでも通らないなら、それが — 招待を送る前の、送ったあとではなく — AIビルダーとの次の会話です。

助けになる、たった一つの心構えの転換

マルチユーザーアプリの権限を作るのは、ほとんどが 少しだけ詮索好きな、あなたの最も行儀の悪いユーザーになりきって想像すること です。悪意はなく — ただ好奇心旺盛なだけ。彼らはいろいろクリックします。URLを貼り付けます。あなたのスクリーンショットで見かけた「設定」ページに何があるか確かめようとします。

あなたの仕事 — そしてAIビルダーの仕事 — は、彼らが見ようとしたとき、答えが一貫しているようにすることです。自分のデータだから見える、さもなければ自分のものでないから見えない、のどちらかです。中途半端なところはなし。うっかり露出した管理者ページもなし。「そのページがあること忘れてた」もなし。

ほとんどのビルダーは、何か恥ずかしいことが起きるまで権限について考えません。良い知らせ:リリース前にロールについて20分考えておくことが、あとで直す20時間と、見るべきでないものを見てしまった顧客に書きたくないメールを、あなたから省いてくれます。


マルチユーザーの側面のある何かを作っていますか?次にAIアプリビルダーに向かうときは、アプリのロールを声に出して列挙することからセッションを始めましょう。身につけるのにいちばん簡単な5分の習慣で、最悪の間違いのほとんどを、起きる前に捕まえてくれます。