Ruby open-uri: Basic プロキシ認証を設定する
open-uri のプロキシ認証オプションを使い、宛先の資格情報や環境の既定値と混在させないようにします。
中間アカウントには open-uri 専用の Basic プロキシオプションを使います:
require 'open-uri'
body = URI.open(
'https://example.com/',
proxy_http_basic_authentication: [
'http://203.0.113.10:8080',
ENV.fetch('PROXY_USER'),
ENV.fetch('PROXY_PASSWORD')
],
open_timeout: 5,
read_timeout: 10
) { |response| response.read }ドキュメントのエンドポイントを置き換え、アカウントの値は意図したシークレットソースから取得します。例外やサポートレポートが後で出力する可能性のある URL にパスワードを入れないでください。
| OpenRead オプション | 用途 |
|---|---|
proxy_http_basic_authentication | プロキシのアドレスとその Basic ユーザー名/パスワード. |
proxy | その複合認証オプションを使わないプロキシ選択。両方を指定すると引数エラーになります。 |
http_basic_authentication | 宛先サーバーのアカウント。 |
proxy: nil | 環境の既定値があっても、この読み取りを直接にします。 |
明示的なプロキシオプションがない場合、open-uri はスキーム固有のプロキシ環境変数を使うことがあります。認証オプションはすでにエンドポイントを含むため、2 つ目の proxy 値は不要です。
このインターフェースは Basic プロキシ認証を扱います。別の方式を必要とするサービスには、対応するクライアントか承認済みの統合が必要です。HTTPS 検証は有効のままにし、その後ステータス/内容を適切に確認します。機能するプロキシログインは、宛先が期待したリソースを返したことを証明するものではありません。