1
votes

I've been trying to use the Azure Service Management API in order to list the Hosted Services with no success.

In the first place, I was able to set up the authentication using PowerShell as the Microsoft documentation states here: https://msdn.microsoft.com/en-us/library/azure/dn790557.aspx

My first step was to request an access token using OAuth2 making a POST request to this URL:

https://login.windows.net/<MY_TENANT_ID>/oauth2/token

and passing these parameters:

grant_type: client_credentials
client_id: <THE_CLIENT_ID_OF_THE_APP_REGISTERED_THROUGH_POWERSHELL>
client_secret: <THE_PASSWORD_OF_APP_REGISTERED_THROUGH_POWERSHELL>
resource: https://management.core.windows.net

so, I receive a valid response and an access_token included in the response. So far so good.

Then, I want to make a simple call to the Management API; I would like to list my Hosted Services (Cloud Services), so I make a GET request to this URL:

https://management.core.windows.net/<MY_SUBSCRIPTION_ID>/services/hostedservices

Including the following headers:

Authorization: Bearer <THE_ACCESS_TOKEN_RECEIVED_IN_THE_PREVIOUS_STEP>
x-ms-version: 2014-10-01 (I've also tested with different versions)

but, what I get is a 401 Unauthorized error, with the following message:

The JWT token does not contain expected audience uri 'https://management.core.windows.net/'

I also tried with a Native Application registered directly in the Azure Portal (with Permissions set to use the Service Management API) and requesting a token using the grant_type = authorization_code. I get the access_token correctly and a refresh_token, but when I try to make a request to the above URL, I get the same error message.

On a side note, I am able to use the Azure Insights API successfully; the issue above is with the Azure Service Management API.

Anyone knows what I am missing?

1
Same issue here, can't seem to figure out why I keep obtaining Unauthorized. - wvdhouten
I am able to access the following end points through AAD based tokens: i. graph.windows.net ii. management.azure.com But management.core.windows.net could be accessed only through management certificate, looks like a known limitation even with the latest API versions. - Arunkumar Kumaresan

1 Answers

2
votes

I faced the same problem today. Complete the resource url with '/' https://management.core.windows.net

See the mismatch between the url in your resource and the one in the error message 'https://management.core.windows.net/'