認証とトークン
Multica には 3 種類のトークンがあります — ブラウザ、CLI、デーモンにそれぞれ 1 つずつ。どの場面でどれを使うかを解説します。
Multica には 3 種類のトークンがあり、それぞれが 1 つのコンテキストに対応します。ブラウザの Web UI、コマンドラインとスクリプト、そしてデーモンです。3 つとも同じあなたを表しますが、スコープと有効期間が異なります。
3 つのトークン
| トークン | 形式 | 使われる場所 | 有効期間 |
|---|---|---|---|
| JWT クッキー | multica_auth クッキー (HttpOnly) | Web ブラウザ | 30 日 |
| 個人アクセストークン (PAT) | mul_ プレフィックス | CLI、スクリプト、直接の API 呼び出し | デフォルトでは期限なし。API で作成する際に expires_in_days を渡せます |
| デーモントークン | mdt_ プレフィックス | デーモンとサーバー間の通信 | デーモン自体が管理 |
日常的な利用では、最初の 2 つだけを直接扱うことになります。デーモントークンは multica daemon login が自動的に作成・更新するため、気にする必要はありません。
各トークンがアクセスできるもの
| API ルート | JWT クッキー | PAT | デーモントークン |
|---|---|---|---|
/api/user/* (ユーザーレベルの操作) | ✓ | ✓ | ✗ |
/api/workspaces/:id/* (ワークスペースレベル) | ✓ | ✓ | ✗ |
/api/daemon/* (デーモン専用) | ✗ | ✓ | ✓ |
WebSocket /ws (リアルタイムプッシュ) | ✓ (クッキー) | ✓ (最初のメッセージで認証) | ✗ |
PAT はほぼすべてにアクセスできます — これは「完全なあなた」を表します。デーモントークンはデーモンに必要なこと、つまりタスクを取得して結果を報告することしかできません。
どちらも /api/daemon/* にアクセスできますが、スコープが異なります。 PAT はユーザー全体を表し、一度認証されると、あなたが所属するすべてのワークスペースを見ることができます。デーモントークンは作成時点で単一のワークスペースに固定され、そのワークスペースのリソースにしかアクセスできません。本番環境では、デーモンはデーモントークンで実行してください。手軽さのために PAT を使う近道を選ばないでください。そうしないと、デーモンに必要な以上にはるかに大きな権限を与えてしまいます。
ログイン
メール + 認証コード
- メールアドレスを入力すると、サーバーが 6 桁のコードを送信します。
- コードを入力すると、サーバーが JWT クッキーを発行(ブラウザ)するか、PAT に交換(CLI)します。
セルフホストの運用者は注意してください: 公開デプロイでは MULTICA_DEV_VERIFICATION_CODE を空のままにしておいてください。固定のローカルテストコードを有効にすると、APP_ENV が production 以外の間は、コードをリクエストできる人なら誰でもその値でサインインできてしまいます。セルフホスト認証の構成を参照してください。
Google OAuth
Sign in with Google をクリックして、標準の OAuth コールバックを通過してください。セルフホストには GOOGLE_CLIENT_ID、GOOGLE_CLIENT_SECRET、そしてリダイレクト URI を構成する必要があります — セルフホスト認証の構成を参照してください。
PAT の作成、表示、失効
PAT の作成は 2 つの方法で行えます。
- Web UI: 設定 → 個人アクセストークン → 新しいトークン
- CLI:
multica loginは、まだローカル PAT がない場合に自動的に 1 つ作成します
完全な PAT は作成時に正確に 1 回だけ表示されます。 更新したりダイアログを閉じたりした後は、二度と見ることができません。
Multica はデータベースに PAT のハッシュだけを保存します — サーバーでさえ元の値を取得できません。すぐにコピーして保存してください。紛失した場合の唯一の手段は、失効させて新しく作り直すことです。
既存の PAT の表示(名前、作成時刻、最終使用時刻 — 完全なトークンは含みません)は、設定 → 個人アクセストークンにあります。
PAT の失効: 一覧で Revoke をクリックしてください。失効はすぐに反映されます — その PAT で送られる次のリクエストは 401 で拒否されます。
ログアウトはローカルトークンを削除するだけ
multica auth logout を実行するか、Web UI でログアウトをクリックすると、
- ローカルトークンが消去されます — CLI は
~/.multica/config.jsonから PAT を削除し、ブラウザはクッキーを削除します。 - PAT はサーバー上では依然として有効です — ログアウトする前に誰かがあなたの PAT を入手していた場合(たとえば別のマシンにコピーしていた場合)、その人は依然としてそれを使用できます。
PAT が漏洩したと疑われる場合は、単にログアウトするだけにしないでください。 設定 → 個人アクセストークンに進み、そのトークンを失効させてください。失効だけが、漏洩したトークンを即座に無効化します。
次のステップ
- CLI コマンドリファレンス — すべての CLI コマンドの認証は自動です
- セルフホスト認証の構成 — セルフホスト時にメール、OAuth、サインアップ許可リストを構成する方法
- デーモンとランタイム — デーモントークンがどこから来るのか