Một yêu cầu web hoạt động tương tác trên máy chủ B có thể nhận 407 khi cùng lệnh đó chạy ở đó qua PowerShell remoting. Đăng nhập từ A đến B không tự động ủy quyền danh tính đó cho lần trao đổi xác thực tiếp theo của B.

A → remoting session on B → HTTP proxy → website

Một thiết kế được hỗ trợ là cung cấp tài khoản proxy một cách rõ ràng cho yêu cầu gửi đi. Với PSSession hiện có và một đối tượng PSCredential được lấy đúng cách:

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
}

Đối tượng thông tin xác thực dành cho tài khoản dự định của proxy. Phiên vẫn dùng xác thực remoting thông thường, và mọi lần đăng nhập vào trang web vẫn là một phần của yêu cầu tới trang đó.

Điều này tránh phụ thuộc vào việc ủy quyền tự động lần đăng nhập đầu tiên. Tuy nhiên nó đòi hỏi máy chủ từ xa xử lý tài liệu tài khoản được cung cấp như một phần của thiết kế quản trị dự định. Các kiến trúc khác, như điểm cuối RunAs được quản lý hoặc truy cập dịch vụ hạn chế, có yêu cầu cấu hình riêng.

Nếu thông tin xác thực proxy mặc định là giả định sai, hãy ghi lại tài khoản mà lệnh từ xa chạy dưới đó và xác thực mà proxy yêu cầu. Thời gian chờ yêu cầu web dài hơn không thể cung cấp thông tin xác thực còn thiếu.

Các tùy chọn proxy trên New-PSSessionOption liên quan đến chính kết nối remoting. Cấu hình Invoke-WebRequest bên trong khối script từ xa khi kết nối web ra ngoài của B là thứ cần proxy.

Bài viết liên quan