2017-09-08 3 views
1

私は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)} 
    
  • 答えて

    1

    トークン新しいアクセス権を作成し、PowerShellを経由REST APIを呼び出すために、このコードを参照してください。

    $user = "[anything]" 
    $accessToken="[access token]" 
    $base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$accessToken))) 
    ... 
    Invoke-RestMethod -Uri $uri -Method Post -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Body $bodyJson 
    

    セキュリティの強化に関しては、同様の問題があります:

    Enhanced Security Error while Visual Studio Team Services Rest API

    関連する問題