Ένα αίτημα web που λειτουργεί διαδραστικά στον διακομιστή B μπορεί να λάβει 407 όταν η ίδια εντολή εκτελείται εκεί μέσω PowerShell remoting. Η σύνδεση από το A στο B δεν εκχωρεί αυτόματα αυτή την ταυτότητα για την επόμενη ανταλλαγή ελέγχου ταυτότητας του B.

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
}

Το αντικείμενο διαπιστευτηρίων αφορά τον προβλεπόμενο λογαριασμό του διαμεσολαβητή. Η περίοδος λειτουργίας εξακολουθεί να χρησιμοποιεί τον κανονικό έλεγχο ταυτότητας remoting και οποιαδήποτε σύνδεση σε ιστότοπο παραμένει μέρος του αιτήματος προς αυτόν τον ιστότοπο.

Αυτό αποφεύγει την εξάρτηση από την αυτόματη εκχώρηση της πρώτης σύνδεσης. Απαιτεί όμως ο απομακρυσμένος κεντρικός υπολογιστής να χειρίζεται το παρεχόμενο υλικό λογαριασμού ως μέρος της προβλεπόμενης σχεδίασης διαχείρισης. Άλλες αρχιτεκτονικές, όπως ένα διαχειριζόμενο τελικό σημείο RunAs ή περιορισμένη πρόσβαση υπηρεσίας, έχουν τις δικές τους απαιτήσεις ρύθμισης.

Αν τα προεπιλεγμένα διαπιστευτήρια διαμεσολαβητή ήταν η εσφαλμένη υπόθεση, καταγράψτε τον λογαριασμό υπό τον οποίο εκτελείται η απομακρυσμένη εντολή και τον έλεγχο ταυτότητας που ζητά ο διαμεσολαβητής. Ένα μεγαλύτερο χρονικό όριο αιτήματος web δεν μπορεί να παράσχει διαπιστευτήρια που λείπουν.

Οι επιλογές διαμεσολαβητή στο New-PSSessionOption αφορούν την ίδια τη σύνδεση remoting. Ρυθμίστε το Invoke-WebRequest μέσα στο απομακρυσμένο script block όταν η εξερχόμενη σύνδεση web του B είναι αυτή που χρειάζεται τον διαμεσολαβητή.

Σχετικά άρθρα