我有点被困在这里,我正在尝试使用PowerShell中的凭据和客户端令牌进行http调用#34; GET"到内部Web应用程序(我没有创建)。我一直从服务器收到错误500.
此应用程序需要抢先身份验证。我第一次使用它是在ReadyAPI中,当我选择了#34; Authenticate Pre-emptively"无线电,请求工作。
根据ReadyAPI的定义,单选按钮
抢占式身份验证 - 指定ReadyAPI是否会等到收到授权质询后才能发送凭据。该参数有以下选项:
使用全局首选项 - 使用HTTP设置全局首选项中定义的设置。
先发制人地进行身份验证 - 仅限此请求。不要等到收到授权质询后才能发送凭据。
我已经看到在C#中有一个抢占式身份验证设置,但是我还没有找到PowerShell的任何等效设置。
以前有没有人遇到过这个问题?有没有办法让PowerShell能够发布先发制人的身份验证?
这就是我所拥有的,但这只是基本设置......
$base64AuthInfo =
[Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f
$user, $pass)))
$headers = New-Object "System.Collections.Generic.Dictionary[[String], String]]"
$headers = @{}
$headers.Add('Authorization',('Basic {0}' -f $base64AuthInfo))
$headers.Add('X-IBM-Client-ID', $clientId )
$uri = "https://myURI/development/authorization/token"
$invoke = Invoke-RestMethod -Headers $headers -Method Post -Uri $uri
答案 0 :(得分:1)
通过剪切运气...这修复了先发制人的身份验证
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12