ログイン無料で始める

認証

Nolto は 2 つの認証方式 を提供しています。用途に応じて使い分けてください。

Personal API TokenOAuth 2.1 + PKCE
対象REST API (/api/*)MCP Server (/mcp)
用途curl / スクリプト / CI/CDClaude Code / Codex / Claude Desktop
トークン形式nolto_user_*mcp_at_* (access) / mcp_rt_* (refresh)
有効期限任意(または無期限)access: 1時間 / refresh: 30日
取得方法Web UI で発行ブラウザの OAuth フローで自動取得
ℹ️

/mcp エンドポイントは OAuth トークン (mcp_at_*) のみ受け付けます。 Personal API Token (nolto_user_*) を渡しても 401 Unauthorized になります。


Personal API Token

REST API (/api/*) を curl やスクリプトから呼び出すための認証方式です。

トークンの発行

  1. Nolto にログインし、設定 > API トークン ページを開きます。
  2. 「新規発行」 をクリックし、名前と有効期限(任意)を設定します。
  3. 表示されたトークンをコピーします(作成時に一度だけ表示されます)。

利用方法

Authorization ヘッダーに Bearer トークンとして渡します:

curl -H "Authorization: Bearer nolto_user_xxxxxx" \
  https://nolto.app/api/projects

セキュリティ

  • トークンは安全にハッシュ化して保存されます(平文は保存されません)。
  • 有効期限を設定した場合、期限切れ後は自動的に認証が拒否されます。
  • いつでも失効(revoke)できます。

トークン管理 API

トークンの一覧取得・作成・失効は API からも操作できます(Cookie セッションが必要)。

# トークン一覧
GET /api/tokens

# トークン作成
POST /api/tokens
Content-Type: application/json
{"name": "CI用トークン", "expiresAt": "2026-12-31T23:59:59Z"}

# トークン失効
POST /api/tokens/{tokenId}/revoke

OAuth 2.1 + PKCE(MCP 用)

MCP クライアント(Claude Code、Codex、Claude Desktop など)が /mcp エンドポイントにアクセスするための認証方式です。

通常、MCP クライアントがこのフローを 自動で 処理するため、開発者が手動で実装する必要はありません。claude mcp addcodex mcp login を実行すると、ブラウザで認可画面が開き、承認するだけで完了します。

フローの概要

  1. MCP クライアントが /mcp に接続を試みる401 + WWW-Authenticate ヘッダー
  2. メタデータを取得
    • GET /.well-known/oauth-authorization-server (RFC 8414)
    • GET /.well-known/oauth-protected-resource/mcp (RFC 9728)
  3. クライアント登録POST /oauth/register (RFC 7591 Dynamic Client Registration)
    • client_id が発行される
    • Public client のため client secret は不要
  4. 認可リクエスト — ブラウザで GET /oauth/authorize
    • PKCE S256 が 必須(plain は非対応)
    • resource パラメータ必須({issuer}/mcp
  5. ユーザーが承認 → 認可コードが発行される(有効期限: 60秒、1回のみ使用可能)
  6. トークン交換POST /oauth/token で access token + refresh token を取得
  7. API アクセスAuthorization: Bearer <access_token>/mcp を呼び出し

スコープ

スコープ権限
mcp:readプロジェクト・プランの一覧・詳細取得
mcp:writeプロジェクト・プランの作成・更新

スコープを指定しない場合は、両方が付与されます。

トークンのライフタイム

トークン有効期間備考
Access Token1 時間
Refresh Token30 日使用するたびにローテーション(新しいペアが発行される)
認可コード60 秒1回のみ使用可能

リフレッシュトークンのローテーション

Refresh Token は使用するたびに新しい Refresh Token が発行され、古いものは無効になります(OAuth 2.1 準拠)。

同じ Refresh Token を 2回使用 すると、そのトークンチェーン全体が失効 します。これはトークン漏洩時のセキュリティ対策です。

トークン失効

POST /oauth/revoke でトークンを失効させることができます(RFC 7009 準拠):

POST /oauth/revoke
Content-Type: application/x-www-form-urlencoded

token=<access_token>&token_type_hint=access_token&client_id=<client_id>
  • Access Token を失効すると、そのトークンのみが無効化されます。
  • Refresh Token を失効すると、関連する全 Access Token も失効 します。

Resource Indicators(RFC 8707)

すべてのトークンには resource クレーム({issuer}/mcp)が紐づきます。/mcp エンドポイントは、トークンの resource が自身の URI と一致するか検証します。異なる protected resource 向けに発行されたトークンは拒否されます。


OAuth エンドポイント一覧

パス説明
/.well-known/oauth-authorization-serverAuthorization Server メタデータ (RFC 8414)
/.well-known/oauth-protected-resource/mcpProtected Resource メタデータ (RFC 9728)
POST /oauth/registerDynamic Client Registration (RFC 7591)
GET /oauth/authorize認可エンドポイント
POST /oauth/tokenトークンエンドポイント
POST /oauth/revokeトークン失効 (RFC 7009)