ホームブログ › AI生成アプリに認証を追加する方法

AI生成アプリに認証を追加する方法

AIアプリビルダーはログイン画面を数秒でスキャフォールドできます。しかし、ユーザーをログインさせることは簡単な半分に過ぎません。難しい、セキュリティ上重要な半分は、認証された各ユーザーが自分のデータだけにアクセスできるようにすることです。このガイドでは、AI生成アプリに認証を正しく追加する方法を説明し、生成コードが陥りがちなポイントを指摘します。

認証と認可:違いを理解する

これらの2つの言葉は似ており、コード生成ツールも含めて常に混同されています。

この記事で最も重要なパターンは次のとおりです。AIツールは認証を確実に実装しますが、認可を頻繁に失敗します。生成されたアプリはログインフォームを喜んで表示し、セッションを発行し、名前で挨拶しますが、それでもログインユーザーにフェッチさせます 誰かの URL内のIDを変更することによるデータ。その失敗モードを念頭に置いて進めよう。

認証方法を選択する

生成ツールのデフォルトではなく、ユーザーと脅威モデルに基づいて選択してください。

複数の方法を提供しても問題ありません。ただし、パスワードでサインアップした後にGoogleを使用した人が二つのアカウントを持たないように、すべてが単一の正規ユーザーレコードに解決されるようにしてください。

セッション vs トークン

IDが確認されたら、リクエスト間でそれを記憶する必要があります。2つの主流なアプローチ:

  1. サーバーセッション — サーバーはセッション状態を保存し、ブラウザに不透明なセッションIDをクッキーで渡します。失効が簡単:サーバー側のレコードを削除すればセッションは終了します。
  2. ステートレストークン(JWT) — 署名付きトークンにはクレーム(ユーザーID、有効期限)が含まれます。サーバー側には何も保存されないため、スケーラビリティは高いですが、即時失効が難しくなります。漏洩した有効期限内のトークンは期限が切れるまで有効です。

ほとんどのメーカーやSaaSアプリでは、サーバーセッションまたはリフレッシュトークンと組み合わせた短命トークンの方が安全なデフォルトです。生成されたものが何であれ、実際に以下のことが可能であることを確認してください。 ユーザーをすべての場所からログアウトさせる そして侵害された認証情報を無効化する。

セキュアクッキーフラグは必須です

セッション識別子をどのように配信する場合でも、クッキーを正しく設定してください。生成されたコードではこれらが省略されることがよくあります:

Never put a JWT or session token in localStorage if you can use an HttpOnly cookie instead; storage that scripts can read is storage an XSS bug can steal.

パスワードを適切にハッシュ化する

パスワードを受け入れる場合は、低速でソルト付きのハッシュのみを保存してください。以下のような専用のパスワードハッシュアルゴリズムを使用します: bcrypt、scrypt、またはArgon2。パスワードにMD5、SHA-256、または高速な汎用ハッシュを使用しないでください。また、平文を決して保存しないでください。

これは特に監査する価値があります。もっともらしく見える生成スニペットが静かに高速ハッシュを使用する可能性があるからです。生成された認証コードをレビューする際は、弱いハッシュをリリースブロッカーとして扱ってください。当社の AI生成アプリのセキュリティ監査ガイド では、これらのパターンを体系的にgrepする方法を解説しています。

脆弱性を作らないパスワードリセット

リセットフローは古典的な弱点です。防御的に構築しましょう:

ロールベースのアクセス制御

ほとんどのアプリは「ログインしているかどうか」だけでは不十分です。明示的なロールを定義します(例: admin, member, viewer)そして保護されたすべてのアクションに対してサーバー上でチェックします。この誠実さを保つための2つのルール:

明確なロール階層を持つもの(例: AIで構築されたCRM)を構築している場合は、エンドポイントを生成する前にロールをモデル化し、アクセスルールを後付けではなく組み込むようにしてください。

AIが通常スキップするステップ:オブジェクトレベルのアクセスをテストする

これはこの記事で最も重要なテストです。オブジェクトレベルの認可(欠けている場合はIDORと呼ばれることが多い)とは、以下をチェックすることを意味します: この ユーザーが所有またはアクセスできる この特定の レコードであり、単にログインしていることだけではありません。

直接テストする:

  1. 2つのアカウントを作成します。ユーザーAとユーザーB。
  2. ユーザーAとしてレコードを作成し、そのIDを記録します。
  3. ユーザーBとしてログインし、APIを介して、およびURLを編集して、そのIDでユーザーAのレコードを要求します。
  4. ユーザーBは403または404を受け取る必要があります。ユーザーAのデータは決して受け取らないこと。

読み取り、更新、削除の各操作をすべてのリソースタイプに対して繰り返します。生成されたコードは通常セッションをチェックしますが、クエリに所有権の条件を忘れるため、このシンプルな2アカウントテストで実際の脆弱性の多くを捕捉できます。これをあなたの AIアプリのデプロイ前チェックリストに組み込んでください.

重要なポイント

  • 認証(「あなたは誰か」)は簡単な部分です。認可(「何ができるか」)こそ、AI生成コードが最も頻繁に失敗する箇所です。
  • セッション識別子にはHttpOnly、Secure、SameSiteクッキーを推奨します。実際にセッションを取り消しできることを確認してください。
  • パスワードのハッシュ化にはbcrypt、scrypt、またはArgon2を使用してください。高速ハッシュや平文は絶対に使わないでください。
  • パスワードリセットトークンはランダム、使い捨て、短時間有効、かつ列挙不可能にしてください。
  • サーバー側でロールとオブジェクト所有権を強制し、デフォルトは拒否にしてください。
  • 出荷前に必ず2アカウントテストを実行して、オブジェクトレベルのアクセス権限の不備を検出してください。

まとめ

ビルダーにログイン画面と配線をスキャフォールディングさせましょう。それで実際に時間を節約できます。その後、リスクが集中する箇所に労力を割いてください:クッキーフラグ、パスワードハッシュ化、リセットトークンの衛生管理、ロールチェック、そして何よりもオブジェクトレベルのアクセスです。生成された出力を出荷可能かどうか検討している場合、私たちの見解は AI生成アプリが本番環境に対応しているかどうか および AIでSaaSのMVPを構築する この作業を文脈に位置づけます。

認証は、「クリックして通ると動作する」では不十分な数少ない領域の一つです。ハッピーパスだけでなく境界を検証すれば、生成された認証を自信を持って出荷できます。構築を始めますか?まずは LogicMint.

あなたのアイデアをアプリに構築する

それを平易な言葉で説明すると、60秒以内に動作するホスト型アプリが手に入ります。1日5回の無料ビルド、クレジットカード不要。

無料で構築を始める →