mcpField
O
omni-auth

omni-auth

github.com/cheaper-inferenceセキュリティ82.3k1.1k 回インストール今日更新
リポジトリ

omni-auth について

omni-auth は、OmniRoute API のリクエスト認証とダッシュボードセッションを扱うスキルです。Bearer 認証情報、パスワードログイン、セッション Cookie、主体チェックを伴う任意の OIDC フローを説明します。

主な機能

  1. 01Bearer トークンによる API 認証
  2. 02パスワード式ダッシュボードセッション
  3. 03OIDC ログインとコールバック
  4. 04CSRF と認証状態のエンドポイント

活用シーン

  1. 01キーで API リクエストを認証
  2. 02パスワードでダッシュボードにログイン
  3. 03OIDC によるダッシュボードログインの設定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cheaper-inference/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" が設定されています。

機能別スキル

機能Raw URL
チャット/コード生成https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omni-inference/SKILL.md
画像生成https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omni-inference/SKILL.md
テキスト読み上げhttps://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omni-inference/SKILL.md
音声認識https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omni-inference/SKILL.md
エンベディングhttps://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omni-inference/SKILL.md
ウェブ検索https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omni-inference/SKILL.md
ウェブ取得https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omni-inference/SKILL.md
MCP サーバー(110 個のツール)https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omni-mcp/SKILL.md
A2A プロトコルhttps://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omni-agents-a2a/SKILL.md
ルーティングとコンボhttps://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omni-combos-routing/SKILL.md
トークン圧縮https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omni-compression/SKILL.md
モニタリングとヘルスhttps://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/omni-resilience/SKILL.md

CLI スキル(omniroute binary)

機能Raw URL
CLI エントリーポイントhttps://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/cli-serve/SKILL.md
CLI の管理とライフサイクルhttps://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/cli-serve/SKILL.md
CLI のプロバイダーとキーhttps://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/cli-providers/SKILL.md
CLI クラウドエージェント(omniroute cloud …)https://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/cli-backup-sync/SKILL.md
CLI の評価とベンチマークhttps://raw.githubusercontent.com/diegosouzapw/OmniRoute/main/skills/cli-eval/SKILL.md

エラー

  • 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 のマスキング、プロンプトインジェクションの検出、ビジョンポリシーに対応します

コメント