メインコンテンツへスキップ
ローカルモデルの実行環境は複数ユーザー向けの認証機能を備えていない。Ollamaには全くAPIキーの仕組みが存在しない — 開発者側はnginxやCaddyといったリバースプロキシを利用するよう推奨している。vLLM、llama.cpp、LM Studioではせいぜい 1 静的なオプションキーしか提供されない。Tokiosでは登録済みの各モデルに対し、個人やサービスごとに実際に使用可能なスコープ付きの sk-tok- キーが付与され、リバースプロキシやTLS証明書、ファイアウォール設定の管理も不要だ。

OllamaのAPIキーについて — 要点まとめ

OllamaにはAPIキーが存在しない。ollama serve を実行すると、http://localhost:11434 のAPIは該当ポートにアクセス可能な誰からのリクエストも受け付ける。Ollama自体には --api-key フラグも Authorization ヘッダー検証機能もなく、ユーザーごとのスコープ設定も存在しない。 Ollamaモデルへのアクセス制御が必要な場合、利用可能な手段は 2 通りだ:
  1. リバースプロキシ (nginxやCaddy) — Ollamaの前段にHTTPベーシック認証やトークン検証機能を追加する。プロキシ設定やTLS証明書、キーの更新作業は全て自身で行う必要がある。
  2. Tokiosコネクター — Ollamaの隣にコネクターを配置し、デプロイを登録した上でダッシュボードからスコープ付きの sk-tok-… キーを作成する。プロキシ設定やTLS、外部向けポートの開放も不要だ。詳細は下記の Tokiosによるキー付与の仕組み を参照のこと。

各実行環境が現在提供している機能

これらは欠陥ではない — 各実行環境はモデル提供用に設計されており、マルチテナント向けのアクセス制御機能は備えていない。その部分を補うのがTokiosの役割だ。各プロジェクトの公式ドキュメントを参照のこと: これらの機能では個人用のキー発行や特定モデルへのスコープ設定、あるいは他の利用者に影響を与えずに特定の呼び出し元の認証を無効化する手段が提供されません。この点こそが Tokios が補うべき部分です。

Tokios でキーを追加する手順

Tokios はクライアントとローカルランタイムの間に位置します。コネクターのペアリングおよびモデルのデプロイ登録が完了すると、すべてのリクエストは Ollama、vLLM、llama.cpp、LM Studio が発行するものではなく Tokios の APIキーで認証されます。
1

モデルの登録方法

Pair a connector and give your model a public name (the deployment) in the Models tab. See Register Model if you haven’t done this yet.
2

キータブで新規キーを作成

Open the Keys tab and click Create key. Give it a display name, and optionally scope it with model patterns — comma-separated globs like gemma*, gpt-4* — so the key only reaches the deployments it needs. Leave it as * to allow all your models.
3

生成されたキーのコピー

キーは sk-tok-... という形式で一度だけ表示されるため、直ちにコピーしてパスワードマネージャーやシークレット管理システムに保存してください。最大で 50個の有効なキーを登録でき、後から編集やローテーション、無効化、削除も可能です。
4

リクエストの認証処理

Send the key as a Bearer token in the Authorization header:
APIキーの作成・更新・無効化の詳細な仕組みについては、APIキーをご覧ください。

チームメンバーやサービスごとにそれぞれ別のキーを用意しましょう。

共通の静的キー(あるいはキーが存在しない状態)では呼び出し元を区別できないため、Tokiosのキーも複数人に渡す際の認証情報と同様に扱う必要があります。
  • 人物や環境ごとに別々のキーを発行する。 チームメンバーやCIジョブ、サービスごとに個別のキーを発行してください。退職者が出たりノートパソコンが紛失したりした場合でも、Keysタブから該当キーだけを無効化すれば他の全員は引き続き利用可能です。
  • 必要なモデルのみにキーのアクセス範囲を限定する。 キーごとに利用可能なモデルのパターンを設定できます。gemma*に限定されたキーは、たとえ同じコネクター経由で運用されていてもgpt-4*デプロイにはアクセスできません。
  • 流出したキーでも他のテナントには影響しない。 キーはご自身のアカウントおよび任意で特定のデプロイに限定されるため、万が一流出しても本来許可されていないモデルへアクセスすることは不可能です。
範囲限定されたキーを誰かに渡す最も簡単な方法は、KeysタブのShare Key機能を利用することです。これにより専用のキーが生成され、そのモデル範囲や任意のパスフレーズ・有効期限、ワンクリックでの無効化機能を備えた一回限りの参照リンクが該当者にメール送信されます(キー自体はメール本文には記載されません)。詳細はメールでキーを共有するをご覧ください。
キーがアクセス許可されていないデプロイへ呼び出しを試みた場合、Tokiosは HTTP 403 でリクエストを拒否します。
A 403 means the key isn’t allowed to use that model (or the account is suspended); a 404 means the deployment name doesn’t exist. See API endpoints for the full list.
他の認証情報と同様にキーの更新も行ってください。新しいキーを作成し利用側に設定を更新した後、通信が切り替わった時点で古いキーを無効化します。

次は何をすべきでしょうか?

You cannot generate an API key from Ollama itself — it has no key mechanism. To add auth in front of Ollama, use Tokios: create a key on the Keys tab, copy the sk-tok-… value, and send it as Authorization: Bearer sk-tok-YOUR_KEY in your API requests. Tokios handles auth, scoping, and revocation.
vLLMではサーバー起動時に1静的な--api-keyフラグを指定できます(例:vllm serve model --api-key my-key)。これは全ユーザー共通のキーであり、vLLMのセキュリティガイドラインでも単独での利用は推奨されていません。ユーザーごとのキーが必要な場合はTokiosを導入してください。
llama.cppサーバーでは任意で--api-keyフラグを設定可能ですが、これは全ユーザー共通のキーで個別のスコープ管理ができません。Tokiosを利用すれば各ユーザーやサービスごとに専用のsk-tok-…キーを割り当て、特定のモデルに限定して利用できます。

APIキーについて

キーの作成・スコープ設定・更新・無効化の全手順を説明します。

クイックスタート

コネクターをペアリングし、モデルを登録した上で認証付きリクエストを実行するまでの流れを紹介します。

モデル登録

ローカルに保存したモデルに、クライアント側から呼び出すための公開名を付与します。

Ollamaのリモートアクセス機能

受信用ポートを開放することなく、別のマシンからOllamaインスタンスに接続できる。