将SecureString与WebRequest一起使用

时间:2016-09-19 08:17:51

标签: c# powershell azure httpwebrequest securestring

我尝试使用PowerShell从Azure获取访问令牌。我需要它,我已经工作了。但是我担心我的客户端秘密在很长一段时间内都存储并处理为字符串。

这是我目前运行的代码 -

$body = "&grant_type=client_credentials&client_id=" + $Config.ClientId
$body += "&resource=" + [uri]::EscapeDataString("https://vault.azure.net") 
$body += "&client_secret=" + $Config.client_secret      

$uri = 'https://login.microsoftonline.com/' + $Config.TenantId.tenantId + '/oauth2/token?'

$Response = Invoke-WebRequest -Method Post -Uri $uri -Body $body 

$Config.client_secret被保存为SecureString,我必须将其转换为普通字符串以发送到Invoke-WebRequest这似乎非常不安全。

我意识到这在PowerShell中很可能是不可能的,所以我一直试图在C#中找到替代品,但到目前为止我还没有找到任何东西。

有没有办法在上面的Post请求中传递SecureString? (我不是专门寻找代码,只是指示它是否可行 - 一旦我知道我在寻找什么,我就能把代码弄清楚!)

0 个答案:

没有答案