omni-auth について
omni-auth は、OmniRoute の API 認証とダッシュボードセッションを管理するスキルです。Bearer 認証情報、パスワードログイン、OIDC による管理者ログインを扱います。
主な機能
- 01Bearer 認証情報による API リクエスト認証
- 02パスワードログインによるダッシュボードセッション作成
- 03OIDC ログインの開始と完了
- 04認証状態と CSRF トークンの確認
活用シーン
- 01API リクエスト用認証情報の取得
- 02ダッシュボードへのサインイン
- 03ダッシュボード管理者向け OIDC ログインの設定
MCP 対応
OmniRoute には MCP サーバーが組み込まれていますが、このスキルは認証が中心で、MCP 固有の設定や操作は説明していません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ diegosouzapw/ omniroute --skill omni-authインストール後、Claude Code で/omni-authを入力して読み込まれたか確認します。
詳細
概要
API キー認証とセッショントークンを管理します。Bearer トークンによるリクエストの認証、セッション Cookie の取得、OmniRoute API のログイン要件の設定については、ここから始めてください。
認証
リモート API リクエストでは Bearer 認証情報を使用します。ダッシュボードへのログインは別の仕組みです。POST /api/auth/login は管理用パスワードを受け付け、auth_token セッション Cookie を返します。
エンドポイント
POST /api/auth/login
ユーザーを認証します
curl -X POST http://localhost:20128/api/auth/login \
-H "Content-Type: application/json" \
-c cookie.jar \
-d '{"password":"<management-password>"}'
POST /api/auth/logout
ログアウトします
CSRF_TOKEN=$(curl -s http://localhost:20128/api/auth/csrf -b cookie.jar | jq -r .token)
curl -X POST http://localhost:20128/api/auth/logout \
-b cookie.jar \
-H "x-omniroute-csrf: $CSRF_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/auth/oidc/login
ダッシュボード管理者ゲートの OIDC ログインを開始します
設定済みの OIDC 発行者/クライアントから認可 URL を構築し({issuer}/.well-known/openid-configuration から検出し、取得できない場合は {issuer}/authorize にフォールバックします)、有効期間の短い oidc_state Cookie を設定して、ブラウザーをリダイレクトします。OIDC が有効な場合も、フォールバックとしてパスワードログインを引き続き利用できます。
curl http://localhost:20128/api/auth/oidc/login \
-b cookie.jar
GET /api/auth/oidc/callback
ダッシュボード管理者ゲートの OIDC ログインを完了します
state Cookie を検証し、認可 code をトークンと交換して、発行者の JWKS に照らして ID トークンを検証し(audience = client id)、トークンの sub/email が oidcAllowedSubjects に含まれているか確認します。oidcAllowedSubjects には少なくとも 1 件のエントリーが必要です(リストが空の場合は not_configured で終了します)。成功すると、パスワードログインで使用されるものと同じ、30 日間有効なダッシュボードセッション用 JWT auth_token を発行し、/dashboard にリダイレクトします。
curl http://localhost:20128/api/auth/oidc/callback \
-b cookie.jar
GET /api/auth/csrf
GET auth › csrf
curl http://localhost:20128/api/auth/csrf \
-b cookie.jar
GET /api/auth/status
GET auth › status
curl http://localhost:20128/api/auth/status \
-b cookie.jar
ペイロード
詳細なリクエスト/レスポンススキーマについては、完全な OpenAPI 仕様を GET /api/openapi/spec または docs/openapi.yaml で確認してください。
OmniRoute
OpenAI 互換 REST を提供するローカル/リモート AI ゲートウェイです。1 つのキー、375 のプロバイダー、自動フォールバック、RTK トークンセーバー、MCP サーバー、A2A エージェントを備えています。
セットアップ
export OMNIROUTE_URL="http://localhost:20128" # or VPS / tunnel URL
export OMNIROUTE_KEY="sk-..." # from Dashboard → API Keys
すべてのリクエストで、${OMNIROUTE_URL}/v1/... と Authorization: Bearer ${OMNIROUTE_KEY} を使用します。
確認:curl $OMNIROUTE_URL/api/health → {"ok":true}
モデルを見つける
curl $OMNIROUTE_URL/v1/models # chat/LLM (default)
curl $OMNIROUTE_URL/v1/models/image # image-gen
curl $OMNIROUTE_URL/v1/models/tts # text-to-speech
curl $OMNIROUTE_URL/v1/models/embedding # embeddings
curl $OMNIROUTE_URL/v1/models/web # web search + fetch
curl $OMNIROUTE_URL/v1/models/stt # speech-to-text
data[].id をリクエストの model フィールドとして使用します。コンボモデルには owned_by:"combo" が設定されています。
機能別スキル
CLI スキル(omniroute binary)
エラー
401→OMNIROUTE_KEYを設定/更新します(Dashboard → API Keys)400 Invalid model format→/v1/models/<kind>にmodelが存在するか確認します503 Provider circuit open→ 上流のプロバイダーが停止しています。Retry-After秒後に再試行します429→ レート制限されています。Retry-Afterに従ってください
OpenAI への直接接続との違い
- 自動フォールバックの組み合わせ(19 の戦略):プロバイダーがレート制限されても、コーディングを止めずに続行できます
- RTK トークン節約機能:
tool_resultを47種類の専用フィルター(git-diff、test-jest、terraform-plan、docker-logs…)で圧縮し、トークンを20〜40%削減します - Caveman モード:簡潔なシステムプロンプトを任意で挿入します(LITE/FULL/ULTRA)。出力を15〜25%削減します
- MCP + A2A サーバーを内蔵(両方のプロトコルを公開する唯一の AI ルーターです)
- メモリ:FTS5 + Qdrant により、エージェントのコンテキストを永続化します
- ガードレール:PII のマスキング、プロンプトインジェクションの検出、ビジョンポリシーに対応します