認証・認可 概要
Speakeasy の認証・認可は Proof サービスが担当し、better-auth をベースに構築されています。
| 方式 | 対象 | 説明 |
|---|---|---|
| メール + パスワード | 全ユーザー | better-auth 標準の Credential 認証 |
| Google OAuth | 管理者 | ドメイン制限付き(@k-1.ne.jp) |
| パスキー (WebAuthn) | 全ユーザー | FIDO2 準拠、Conditional UI 対応 |
| Bearer トークン | 外部 API | better-auth Bearer プラグイン |
| 匿名サインイン | 顧客 | purelovers 経由の初回アクセス |
アーキテクチャ
Section titled “アーキテクチャ”セッション管理
Section titled “セッション管理”| 項目 | 設定 |
|---|---|
| セッション有効期限 | 7日 |
| 自動更新間隔 | 24時間 |
| Cookie キャッシュ | 5分 |
| Cookie 属性 | Secure, HttpOnly, SameSite=None |
| セカンダリストレージ | Cloudflare KV |
Cookie 設計
Section titled “Cookie 設計”better-auth が発行する Cookie はクロスサブドメインで共有可能に設定されています。
Set-Cookie: better-auth.session_token={token}; Path=/; HttpOnly; Secure; SameSite=None; Domain=.plfumg.com- Counter (
counter.plfumg.com) と Door (door.plfumg.com) 間で Cookie を共有 - localhost 環境ではドメイン制限なし
KV キャッシュ
Section titled “KV キャッシュ”セッション検証のパフォーマンスを向上させるため、Cloudflare KV をセカンダリストレージとして利用します。
getSession(cookie)が呼ばれる- KV から
session:{token}キーで検索 - ヒット → KV のデータを返却
- ミス → Vault DB から取得し、KV に書き込み
better-auth プラグイン構成
Section titled “better-auth プラグイン構成”| プラグイン | 用途 |
|---|---|
| admin | 管理者ロール、ユーザーBAN、代理認証 |
| organization | マルチ組織、メンバー管理、ロール |
| passkey | WebAuthn パスキー登録・認証 |
| bearer | Bearer トークン発行・検証 |
| anonymous | 匿名ユーザー作成 |
- ログインフロー - 各認証方式のシーケンス図
- 組織管理 - グループ・店舗の階層構造
- RBAC - ロールベースアクセス制御
- Proof RPC メソッド - 全 RPC メソッド仕様
- Vault DB - 認証データベーススキーマ