SaaSにパスキーとログイン機能を、認証サービスなしで
最終更新:
Seedは、パスキー、メールのログインリンク、Google、GitHubでのログインに対応し、その検証はサーバー上の自前のAPIが行います。外部の認証サービスは使いません。パスワード、パスキー、ログインリンクはデプロイした時点で使え、ユーザー単位の料金はかかりません。GoogleとGitHubは、それぞれenvファイルに2つのキーが必要です。
- パスワードはWeb CryptoのPBKDF2-SHA-256でハッシュ化(デフォルトで60万回)
- 署名付きのセッションCookieと、すべてのログインイベントの監査ログ
- 個人用APIトークンは鍵付きハッシュとしてのみ保存
- パスキー:保存するのは公開鍵だけで、ログインのチャレンジは1回限り有効
- マジックリンク:1つのリンクでログインも登録もでき、1回限り・15分間有効で、ハッシュとしてのみ保存
- ゲストアカウント(匿名ログイン):訪問者はログイン方法なしでワンクリックで始め、あとから同じアカウントにメールアドレスとパスワード、Google、GitHub、パスキーを追加できます
- パスワードの誤入力は、ネットワークアドレスをまたいでログイン名ごとに数え、上限を超えると短時間ロック
APIがすべてのログインを自ら検証し、署名付きのセッションCookieを返します。パスキーはブラウザ標準のWebAuthnを使い、サーバーが保存するのは公開鍵だけで、ログインのチャレンジは1回限り有効です。ログインリンクはログインにも登録にも使え、1回限り・15分間有効で、ハッシュとしてのみ保存されます。
認証アプリを使えば2段階認証を追加できます。プロフィールには、アカウントに入るすべての方法とログイン中のすべてのデバイスが一覧表示され、ログイン方法を変更するときは本人確認を求めてメールで通知します。訪問者はゲストアカウントで始めて、あとからログイン方法を追加することもできます。

認証サービスは必要ですか?
いいえ。パスワード、パスキー、ログインリンク、そしてGoogleとGitHubからの応答は、Seed自身のAPIがサーバー上で検証するので、ユーザー単位の料金は一切かかりません。
Seedはパスキーに対応していますか?
はい。ユーザーはプロフィールでパスキーを追加し、それでログインできます。サーバーが保存するのは公開鍵だけで、ログインのチャレンジは1回限り有効です。
Seedに2段階認証はありますか?
はい。認証アプリのワンタイムコードをログイン時に求めます。GoogleやGitHubでログインした場合も同様です。
GoogleやGitHubでのログインを使わないこともできますか?
はい。どちらも、envファイルに2つの変数を両方設定するまではオフなので、設定しなければオフのままです。
SeedはNodeやBunで動きますか?
まだです。Seedは現在Denoで動いており、Deno・Node・Bunのどれでも動くようにする作業を進めています(#623)。機能ページのランタイム計画をご覧ください。