저는 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로 문자열로 변환 보안 문자열
편집
허용 대답은 문제를 해결했다. 여기 두 가지 핵심 포인트라고 생각 :
- 변환의 올바른 인코딩이 방법 (로컬)에서 실행할 때
Bearer
에서Basic
에 인증을 변경Base64
- 에.
최종 코드 :
$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)}