OneCLI: オープンソースのAIエージェント向け認証情報ゲートウェイ
OneCLI: オープンソースのAIエージェント向け認証情報ゲートウェイ
OneCLIは、AIエージェントからAPIキーを分離するために設計されたオープンソースの認証情報ゲートウェイです。エージェントとターゲットサービスの間のプロキシとして機能することで、OneCLIはエージェントがプレースホルダーキーを使用しながら、ゲートウェイがアウトバウンドリクエストに実際の認証情報を注入し、LLMやエージェントの環境にシークレットが露出することを防ぎます。
コアアーキテクチャとメカニズム
OneCLIは「クレデンシャルブローカー」パターンを利用してHTTPリクエストをインターセプトし、偽の認証情報を実際のものと交換します。システムは3つの主要コンポーネントから構成されます:
- Rust Gateway: 高性能なHTTPゲートウェイで、アウトバウンドリクエストをインターセプトします。
Proxy-Authorizationヘッダーを使用してエージェントを認証し、HTTPSトラフィックに対してMITM(Man-in-the-Middle)インターセプトを実行します。 - Web Dashboard: エージェント、シークレット、権限を管理するNext.jsアプリケーションです。ゲートウェイがリクエストに基づいてどの認証情報を注入するかを解決するために使用するAPIを提供します。
- Secret Store: AES-256-GCM暗号化を使用するストレージシステムです。シークレットは保存時に暗号化され、リクエストの瞬間にのみ復号化され、ヘッダーまたはURLクエリパラメータとして注入されます。
エージェントが呼び出しを行うと、FAKE_KEYなどのプレースホルダーを使用します。ゲートウェイはホストとパスのパターンに基づいてリクエストを正しい認証情報にマッチさせ、実際のキーを復号化し、プレースホルダーを置換してから、最終的な宛先にリクエストを送達します。
主な機能
OneCLIは、AIエージェントの認証のための一元管理レイヤーを提供します:
- Transparent Injection: エージェントは複雑な認証ロジックを処理する必要なく、標準的なHTTP呼び出しを行います。
- Scoped Permissions: 各エージェントには特定の権限を持つ独自のアクセストークンが割り当てられ、どのエージェントがどのシークレットを使用できるかをきめ細かく制御できます。
- Vault Integration: システムはBitwardenなどの外部パスワードマネージャーに接続し、OneCLIサーバー自体にシークレットを保存することなく、オンデマンドで認証情報を注入できます。
- Flexible Deployment: ローカルシングルユーザーモード(ログイン不要)と、チーム環境向けのGoogle OAuthを利用したマルチユーザーモードをサポートします。
技術的実装とセットアップ
OneCLIは、ゲートウェイにRust、ダッシュボードにNext.js、データベースにPrisma ORMとPostgreSQLを含む最新スタックで構築されています。
To deploy OneCLI locally, users can use a one-line installation script:
`curl -fsSL https://onecli.sh/install | sh`
Alternatively, it can be deployed via Docker Compose:
`docker compose -f docker/docker-compose.yml up -d --wait`
コミュニティの洞察と反論
パターンの検証
いくつかのユーザーは、このアプローチがデータベース世界での実証済みの設計を反映していると指摘しました。そこではクライアントが基礎となるストレージから分離され、認証情報を所有するサーバーを経由してリクエストがルーティングされます。
セキュリティのトレードオフ
批判者は、このシステムが essentially 一つのシークレットを別のシークレットと交換していると主張します。なぜなら、エージェントはゲートウェイとの認証にトークンがまだ必要だからです。あるユーザーは次のように述べています:
あなたはただ一つの鍵を別の鍵と交換しているだけです。信じる抽象化を選んだとしても、最終的に認証情報はその時々のLLMに渡されます。
提案される機能強化
コミュニティのメンバーは、OneCLIゲートウェイの有用性を高めるためにいくつかの機能改善を提案しました:
- OAuth Client Credentials Support: ゲートウェイ内で