두 번째 PowerShell 홉의 프록시 자격 증명
원격 로그인이 위임된다고 가정하지 말고 원격 서버에서 실행되는 Invoke-WebRequest에 의도한 프록시 계정을 제공하세요.
서버 B에서 대화형으로 작동하는 웹 요청도 동일한 명령을 PowerShell 원격을 통해 그곳에서 실행하면 407을 받을 수 있습니다. A에서 B로 로그인한다고 해서 B의 다음 인증 교환에 해당 ID가 자동으로 위임되지는 않습니다.
A → remoting session on B → HTTP proxy → website
지원되는 설계 중 하나는 아웃바운드 요청에 프록시 계정을 명시적으로 제공하는 것입니다. 기존 PSSession과 적절하게 획득한 PSCredential 개체를 사용합니다.
Invoke-Command -Session $session -ArgumentList $proxyCredential -ScriptBlock {
param([pscredential]$outboundProxyCredential)
$requestOptions = @{
Uri = 'https://api.example/'
Proxy = 'http://proxy.example:8080'
ProxyCredential = $outboundProxyCredential
}
Invoke-WebRequest @requestOptions
}
자격 증명 개체는 프록시의 의도한 계정을 위한 것입니다. 세션은 여전히 일반 원격 인증을 사용하며, 웹 사이트 로그인은 해당 사이트 요청의 일부로 남습니다.
이렇게 하면 첫 로그인의 자동 위임에 의존하지 않게 됩니다. 다만 원격 호스트가 제공된 계정 자료를 의도한 관리 설계의 일부로 처리해야 합니다. 관리되는 RunAs 엔드포인트나 제한된 서비스 액세스 같은 다른 아키텍처에는 자체 구성 요구 사항이 있습니다.
기본 프록시 자격 증명이 잘못된 가정이었다면 원격 명령이 실행되는 계정과 프록시가 요구하는 인증을 기록하세요. 웹 요청 제한 시간을 늘려도 누락된 자격 증명을 제공할 수는 없습니다.
New-PSSessionOption의 프록시 옵션은 원격 연결 자체에 관한 것입니다. B의 외부 웹 연결에 프록시가 필요한 경우 원격 스크립트 블록 내에서 Invoke-WebRequest를 구성하세요.