中間アカウントには 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 検証は有効のままにし、その後ステータス/内容を適切に確認します。機能するプロキシログインは、宛先が期待したリソースを返したことを証明するものではありません。

関連記事