Žiniatinklio užklausa, kuri serveriuje B veikia interaktyviai, gali gauti 407, kai ta pati komanda ten vykdoma per PowerShell remoting. Prisijungimas iš A į B automatiškai neperduoda šios tapatybės B kitam autentifikavimo mainams.

A → remoting session on B → HTTP proxy → website

Vienas palaikomas sprendimas yra aiškiai pateikti tarpinio serverio paskyrą išsiunčiamai užklausai. Su esama PSSession ir tinkamai gautu PSCredential objektu:

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
}

Kredencialų objektas skirtas numatytai tarpinio serverio paskyrai. Sesija vis dar naudoja įprastą remoting autentifikavimą, o bet koks prisijungimas prie svetainės lieka tos svetainės užklausos dalimi.

Taip išvengiama pasikliovimo automatiniu pirmojo prisijungimo delegavimu. Tačiau reikalaujama, kad nuotolinis kompiuteris apdorotų pateiktą paskyros medžiagą kaip numatyto administravimo sprendimo dalį. Kitos architektūros, pavyzdžiui, valdomas RunAs galinis taškas arba ribota prieiga prie paslaugos, turi savo konfigūracijos reikalavimus.

Jei klaidinga prielaida buvo numatytieji tarpinio serverio kredencialai, užsirašykite paskyrą, kuria vykdoma nuotolinė komanda, ir autentifikavimą, kurio reikalauja tarpinis serveris. Ilgesnis žiniatinklio užklausos laikas negali pateikti trūkstamų kredencialų.

New-PSSessionOption tarpinio serverio parinktys susijusios su pačiu remoting ryšiu. Konfigūruokite Invoke-WebRequest nuotolinio scenarijaus bloke, kai būtent B išorinis žiniatinklio ryšys reikalauja tarpinio serverio.

Susiję straipsniai