rest - 远程上传秘密到 Thycotic Secret Server 的 API
问题描述
我是 PowerShell、Thycotic Secret Server 和编写 API 的新手。我的任务是编写一个 API 来远程访问 Thycotic Secret Server 并将一个秘密与附件一起上传。不幸的是,我还没有离开起跑线。我在这里关注代码:
https://thycotic.force.com/support/s/article/REST-API-PowerShell-Scripts-Getting-Started
我抄下了:3 – 搜索秘密 4 – 创建秘密和
从这里获取令牌: https ://thycotic.force.com/support/s/article/Secret-Server-Trial-Using-the-API
并为每个人创建了功能。我所做的唯一更改是更改 myurl、myusername 和 mypassword。
这是我的 PowerShell 脚本:
$myUrl = "mysecretserver/Login.aspx?ReturnUrl=%2f"
$application = "https://mysecretserver/Login.aspx?ReturnUrl=%2fsecretserver"
# Ask for user name
$userName = Read-Host -Prompt "Please enter user name"
$userPassword = Read-Host -AsSecureString "Password"
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
Get-Token
Search-Secrets $userName,$userPassword
Create-Secret $userName,$userPassword
当我运行 Get-Token 时(未对下载的代码进行任何更改)
function Get-Token
{
[CmdletBinding()]
Param(
[Switch] $UseTwoFactor
)
$creds = @{
username = $userName
password = $userPassword
grant_type = "password"
};
$headers = $null
If ($UseTwoFactor) {
$headers = @{
"OTP" = (Read-Host -Prompt "Enter your OTP for 2FA (displayed in your 2FA app): ")
}
}
try
{
$response = Invoke-RestMethod "$application/oauth2/token" -Method Post -Body $creds -Headers $headers;
$token = $response.access_token;
return $token;
}
catch
{
$result = $_.Exception.Response.GetResponseStream();
$reader = New-Object System.IO.StreamReader($result);
$reader.BaseStream.Position = 0;
$reader.DiscardBufferedData();
$responseBody = $reader.ReadToEnd() | ConvertFrom-Json
Write-Host "ERROR: $($responseBody.error)"
return;
}
}
它似乎运行正常,但是当我显示 $token 时,它是空的。我不是 100% 确定这是在做什么,并且查看了很多示例,但似乎缺少读取令牌和使用它访问秘密服务器的基本步骤。任何帮助将不胜感激。
解决方案
将您的 Secret Server URL 替换为服务器的 FQDN,而不是您在浏览器中获得的 Web URL。您需要确保 Secret Server 地址是正确的,否则它不会访问 API(并且可能会优雅地失败,这就是为什么您不会从Get-Token
函数中看到任何错误的原因)。
例如,而不是:
$application = "https://mysecretserver/Login.aspx?ReturnUrl=%2fsecretserver"
它可能是这样的:
$application = "https://mysecretserver.mydomain.com"
推荐阅读
- reactjs - React 数据如何传输到对方?添加滴
- angular - Angular 6 npm 运行测试命令失败
- asp.net - .NET Framework 等效于 IApplicationBuilder.UseForwardedHeaders()
- r - R For循环逐渐变慢
- ios - Flutter In App Purchase Handle 用户在 IOS 中取消
- ffmpeg - Ubuntu 18.04 上的未知编码器“libx265”
- python - 如何使用 apache nifi 将 csv 处理为 hdfs?
- python - 为什么在 Pytorch 中需要嵌入?
- openapi - 查询中的索引数组
- kubernetes - Kubernetes 上的 Zalenium 具有 20-30 个并行测试用例和多个动态机器