Autenticação da API de gestão de serviços Azure com a pasta activa Azure Oauth

Eu gostaria de autenticar a API de gestão de serviços Azure usando Azure AD através de curl.

I Configure uma aplicação dentro da minha pasta predefinida. Neste ensaio gratuito, é o único directório que tenho.

Quando viso o objectivo do token token endpoint, recebo um JWT.

curl --data "grant_type=client_credentials&client_id=<my_client_id>&client_secret=<my_encoded_secret>&resource=https%3A%2F%2Fmanagement.core.windows.net" https://login.windows.net/<my_tenant_id>/oauth2/token

Mas quando uso esse símbolo para listar os meus detalhes de assinatura, recebo um erro:

curl -H "x-ms-version: 2014-06-01" \
     -H "Authorization: Bearer <my_token>" \
     https://management.core.windows.net/<my_subscription_id>/

    <Error xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
      <Code>ForbiddenError</Code>
      <Message>The server failed to authenticate the request. Verify that the certificate is valid and is associated with this subscription.</Message>
    </Error>

concedi permissões à API de gestão de serviços para a application as "Delegated permissions", because "Application permissions" are not available.

enter image description here

O que me está a escapar?

Author: Matt Everson, 2014-09-24

1 answers

Isto não é possível devido às Permissões da aplicação : 0 configuração para a API de gestão de Serviços. O client_credentials grant type usa credenciais da aplicação (client_id e client_secret), e dado que a aplicação não tem permissões para esta API, a chamada falha.

Uma vez que a API de gestão de serviços não permite permissões de aplicações de qualquer tipo, temos de usar o tipo de subvenção do autorization_code ou algum outro método para obter um símbolo do utilizador.

 1
Author: Matt Everson, 2014-09-28 05:21:45