2017-03-04 2 views
0

저는 "https://management.azure.com/subscriptions?api-version=2016-06-01"과 같이 Azure가 공개 한 REST API에 액세스하려고 시도했지만 아무리 힘든 시도를해도 항상 "인증되지 않은"응답을받습니다. 나는이 같은 호에 대한 brearer 토큰을 aquire :Azure Resource Management REST API에 액세스하는 방법은 무엇입니까?

AuthenticationContext authenticationContext = new AuthenticationContext(string.Format("https://login.windows.net/{0}", azureADTenantId), false); 
ClientCredential clientCred = new ClientCredential(azureADAppClientId, azureADAppClientSecret); 
AuthenticationResult authResult = authenticationContext.AcquireTokenAsync("https://management.azure.com", clientCred).Result; 
return authResult; 

이 MS에서 ADAL NuGet 패키지를 사용합니다.

httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authResult.AccessTokenType, authResult.AccessToken); 

이 후 내가 401 응답 뒤에 위의 URL로 전화를 걸 HttpClient를 말했다 사용 : 나는이 같은 통과 토큰을 얻는다. 뭐가 문제 야? 참고로 연결을 위해 사용하는 응용 프로그램을 설정하기 위해 다음 안내를 따라했습니다. https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-create-service-principal-portal

+0

액세스 토큰 앞에 '무기명'을 가장하십시오. "Bearer"라는 단어와 액세스 토큰 사이에는 공백이 있어야합니다. –

+0

@GauravMantri 헤더가 새로운 AuthenticationHeaderValue 클래스로 작성되었지만 정확합니다. – IvanL

+0

아 ... 나는 그것을 몰랐다. 알려 줘서 고마워. 시도 할 수있는 또 하나의 방법은 "https://management.azure.com"에 "/"을 추가하는 것입니다. 도움이되지 않으면 웹 예외의 응답 텍스트를 읽고 오류에 대한 자세한 내용을 확인해야합니다. –

답변

0

문제가 발견되었습니다. Azure의 "독자"역할이 도청되어 액세스 권한을 부여하지 않습니다. 최소한 필요한 액세스 레벨은 REST 서비스에서 읽을 수있는 "참여자"입니다.

관련 문제