零弐壱蜂

[Web] Basic認証をURLに埋め込んでワンライナーでアクセスする

課題

開発環境のステージングサーバーや社内ツールなど、Basic認証が設定されたサイトにアクセスする機会は多い。

通常の方法では、curlの-uオプションやブラウザ自動化ツールの認証設定が必要になる。AIツールに作業を依頼する場合も、詳細な認証手順の説明が必要だ。ワンライナーで済ませたい作業には手間がかかる。

解決方法

Basic認証付きのURLには、認証情報を直接埋め込むことができる。

https://ユーザー名:パスワード@example.com

この方法により、curlやブラウザ自動化ツール、AIツールからのアクセスが簡単になる。

この形式は「userinfo」と呼ばれ、RFC 3986(URI仕様)で定義されている。ただし、セキュリティ上の理由からRFCでは非推奨とされている。

実装例

curl

# 従来の方法(推奨)
curl -u user:password https://example.com/api

# URL埋め込み
curl https://user:password@example.com/api

curlでは-uオプションの方が安全である。認証情報がコマンド履歴やログファイルに残りにくいためだ。

ブラウザ自動化ツール

// Playwright・Puppeteer
await page.goto('https://user:password@example.com');

AIツール

ウェブアクセス機能を持つAIツールなら、認証情報を含むURLを指定するだけで済む。GitHub CopilotなどのMCP(Model Context Protocol)対応ツールで活用できる。

https://testuser:secret123@staging.example.com/dashboard

注意点

URLに認証情報を含む方法にはリスクがある。ブラウザ履歴、ログファイル、プロキシサーバーなどに認証情報を記録される可能性があるためだ。

URLを他の人と共有する際は細心の注意が必要である。

適用場面

次のような限定的な場面での使用にとどめよう。

  • 開発・テスト環境での一時的なアクセス
  • 個人の作業環境でのローカルツール利用
  • 自動化スクリプトでの短期間の利用

本番環境では、より安全な認証方式を使用する。

まとめ

Basic認証をURLに埋め込む「userinfo」形式を使えば、AIツールやCLIでワンライナーアクセスが可能になる。開発・テスト環境での一時的な作業に活用しよう。

参考文献