私はWindows 10を実行しており、VSTSビルドを処理/開始するスクリプトを作成しています。ローカルで実行されているVSTSビルド - エラー:Microsoft Internet Explorer。セキュリティ設定の強化
サンプル・コール(テストのためのプロパティをオーバーライド):
$env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI = "https://mytenancy.visualstudio.com/"
$env:SYSTEM_TEAMPROJECTID = "Project1"
$env:SYSTEM_DEFINITIONID = 5
#$env:SYSTEM_ACCESSTOKEN = "mytoken" - uncomment when running locally
$url = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$env:SYSTEM_TEAMPROJECTID/_apis/build/definitions/$($env:SYSTEM_DEFINITIONID)?api-version=2.0"
Write-Host "URL: $url"
$definition = Invoke-RestMethod -Uri $url -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
Write-Host "Definition = $($definition | ConvertTo-Json -Depth 100)"
"Authenticated"
このスクリプトは、サーバー上で正常に動作しますが、私は$env:SYSTEM_ACCESSTOKEN
のコメントを解除し、ローカルで実行する場合、私は次のエラーを取得する:
Microsoft Internet Explorer\u0026#39;s Enhanced Security Configuration is currently enabled on your environment. Th is enhanced level of security prevents our web integration experiences from displaying or performing correctly. To continue with your operation please disable this configuration or contact yo ur administrator.
私は私を含む多くのこと、試してみた
のWindows 10を実行している:
を- インターネットオプションでできるだけ多くのセキュリティをオフにします。
- 新鮮なトークン
- 私はローカルにしてください認証することができますどのようにthis post
への回答で説明するようにbase64文字列に変換するセキュリティで保護された文字列
EDIT
受け入れ答えは、問題を解決しました。
- この方法(ローカル)で実行しているとき
Base64
- が
Bearer
からBasic
に認証を変更への変換で正しいエンコーディング:私はここで二つの重要なポイントだったと思います。
決勝コード:
$user = "[username]"
$accessToken="[token]"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$accessToken)))
$env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI = "https://mytenancy.visualstudio.com/"
$env:SYSTEM_TEAMPROJECTID = "Project1"
$checkBuildUrl = "$($env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI)$($env:SYSTEM_TEAMPROJECTID)/_apis/build/builds/$($requestedBuildId)?api-version=2.0"
$buildStatus = Invoke-RestMethod -Uri $checkBuildUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}