Criar pedidos da API ao Azure Stack Hub
Pode utilizar as APIs REST do Azure Stack Hub para automatizar operações, como adicionar uma máquina virtual (VM) à cloud do Azure Stack Hub.
As APIs exigem que o cliente se autentique no ponto final de início de sessão do Microsoft Azure. O ponto final devolve um token a utilizar no cabeçalho de cada pedido enviado para as APIs do Azure Stack Hub. O Microsoft Azure utiliza o Oauth 2.0.
Este artigo fornece exemplos que utilizam o utilitário cURL para criar pedidos do Azure Stack Hub. O cURL é uma ferramenta de linha de comandos com uma biblioteca para transferir dados. Estes exemplos descrevem o processo de obtenção de um token para aceder às APIs do Azure Stack Hub. A maioria das linguagens de programação fornece bibliotecas Oauth 2.0, que têm uma gestão de tokens robusta e processam tarefas como atualizar o token.
Reveja todo o processo de utilização das APIs REST do Azure Stack Hub com um cliente REST genérico, como o cURL, para o ajudar a compreender os pedidos subjacentes e o que pode esperar num payload de resposta.
Este artigo não explora todas as opções disponíveis para obter tokens, como o início de sessão interativo ou a criação de IDs de aplicações dedicados. Para obter informações sobre estes tópicos, veja Referência da API REST do Azure.
Obter um token do Azure
Crie um corpo do pedido formatado com o tipo x-www-form-urlencoded
de conteúdo para obter um token de acesso. PUBLIQUE o seu pedido para o ponto final de início de sessão e autenticação REST do Azure.
URI
POST https://login.microsoftonline.com/{tenant id}/oauth2/token
O ID do Inquilino é:
- O seu domínio de inquilino, como
fabrikam.onmicrosoft.com
- O seu ID de inquilino, como
8eaed023-2b34-4da1-9baa-8bc8c9d6a491
- Valor predefinido para chaves independentes do inquilino:
common
Corpo da publicação
grant_type=password
&client_id=1950a258-227b-4e31-a9cf-717495945fc2
&resource=https://contoso.onmicrosoft.com/4de154de-f8a8-4017-af41-df619da68155
&username=admin@fabrikam.onmicrosoft.com
&password=Password123
&scope=openid
Para cada valor:
grant_type:
O tipo de esquema de autenticação que irá utilizar. Neste exemplo, o valor épassword
.recurso:
O recurso a que o token acede. Pode encontrar o recurso ao consultar o ponto final de metadados de gestão do Azure Stack Hub. Observe a secção audiências .Ponto final de gestão do Azure Stack Hub:
https://management.{region}.{Azure Stack Hub domain}/metadata/endpoints?api-version=2015-01-01
Nota
Se for um administrador a tentar aceder à API de inquilino, certifique-se de que utiliza o ponto final do inquilino; por exemplo,
https://adminmanagement.{region}.{Azure Stack Hub domain}/metadata/endpoints?api-version=2015-01-011
.Por exemplo, com o Azure Stack Development Kit (ASDK) como um ponto final:
curl 'https://management.local.azurestack.external/metadata/endpoints?api-version=2015-01-01'
Resposta:
{ "galleryEndpoint":"https://adminportal.local.azurestack.external:30015/", "graphEndpoint":"https://graph.windows.net/", "portalEndpoint":"https://adminportal.local.azurestack.external/", "authentication":{ "loginEndpoint":"https://login.windows.net/", "audiences":["https://contoso.onmicrosoft.com/4de154de-f8a8-4017-af41-df619da68155"] } }
Exemplo 1
https://contoso.onmicrosoft.com/4de154de-f8a8-4017-af41-df619da68155
client_id
Este valor está codificado para um valor predefinido:
1950a258-227b-4e31-a9cf-717495945fc2
Estão disponíveis opções alternativas para cenários específicos:
Aplicação ApplicationID LegacyPowerShell 0a7bdc5c-7b57-40be-9939-d4c5fc7cd417 PowerShell 1950a258-227b-4e31-a9cf-717495945fc2 WindowsAzureActiveDirectory 00000002-0000-0000-c000-00000000000 VisualStudio 872cd9fa-d31f-45e0-9eab-6e460a02d1f1 AzureCLI 04b07795-8ddb-461a-bbee-02f9e1bf7b46 nome de utilizador
Por exemplo, a conta de Microsoft Entra do Azure Stack Hub:
azurestackadmin@fabrikam.onmicrosoft.com
palavra-passe
A palavra-passe de administrador Microsoft Entra do Azure Stack Hub.
Exemplo 2
Pedido:
curl -X "POST" "https://login.windows.net/fabrikam.onmicrosoft.com/oauth2/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data-urlencode "client_id=1950a258-227b-4e31-a9cf-717495945fc2" \
--data-urlencode "grant_type=password" \
--data-urlencode "username=admin@fabrikam.onmicrosoft.com" \
--data-urlencode 'password=Password12345' \
--data-urlencode "resource=https://contoso.onmicrosoft.com/4de154de-f8a8-4017-af41-df619da68155"
Resposta:
{
"token_type": "Bearer",
"scope": "user_impersonation",
"expires_in": "3599",
"ext_expires_in": "0",
"expires_on": "1512574780",
"not_before": "1512570880",
"resource": "https://contoso.onmicrosoft.com/4de154de-f8a8-4017-af41-df619da68155",
"access_token": "eyJ0eXAiOi...truncated for readability..."
}
Consultas de API
Depois de obter o token de acesso, adicione-o como um cabeçalho a cada um dos seus pedidos de API. Para adicioná-lo como um cabeçalho, crie um cabeçalho de autorização com o valor : Bearer <access token>
. Por exemplo:
Pedido:
curl -H "Authorization: Bearer eyJ0eXAiOi...truncated for readability..." 'https://adminmanagement.local.azurestack.external/subscriptions?api-version=2016-05-01'
Resposta:
offerId : /delegatedProviders/default/offers/92F30E5D-F163-4C58-8F02-F31CFE66C21B
id : /subscriptions/800c4168-3eb1-406b-a4ca-919fe7ee42e8
subscriptionId : 800c4168-3eb1-406b-a4ca-919fe7ee42e8
tenantId : 9fea4606-7c07-4518-9f3f-8de9c52ab628
displayName : Default Provider Subscription
state : Enabled
subscriptionPolicies : @{locationPlacementId=AzureStack}
Estrutura de URL e sintaxe de consulta
O URI do pedido genérico consiste em: {URI-scheme} :// {URI-host} / {resource-path} ? {query-string}
- Esquema URI:
O URI indica o protocolo utilizado para enviar o pedido. Por exemplo,http
ouhttps
. - Anfitrião de URI:
O anfitrião especifica o nome de domínio ou endereço IP do servidor onde o ponto final de serviço REST está alojado, comograph.microsoft.com
ouadminmanagement.local.azurestack.external
. - Caminho do recurso:
O caminho especifica o recurso ou a coleção de recursos, que pode incluir vários segmentos utilizados pelo serviço para determinar a seleção desses recursos. Por exemplo:beta/applications/00003f25-7e1f-4278-9488-efc7bac53c4a/owners
pode ser utilizado para consultar a lista de proprietários de uma aplicação específica na coleção de aplicações. - Cadeia de consulta:
A cadeia fornece parâmetros simples adicionais, como a versão da API ou os critérios de seleção de recursos.
Construção do URI do pedido do Azure Stack Hub
{URI-scheme} :// {URI-host} / {subscription id} / {resource group} / {provider} / {resource-path} ? {OPTIONAL: filter-expression} {MANDATORY: api-version}
Sintaxe do URI
https://adminmanagement.local.azurestack.external/{subscription id}/resourcegroups/{resource group}/providers/{provider}/{resource-path}?{api-version}
Exemplo de URI de consulta
https://adminmanagement.local.azurestack.external/subscriptions/800c4168-3eb1-406b-a4ca-919fe7ee42e8/resourcegroups/system.local/providers/microsoft.infrastructureinsights.admin/regionhealths/local/Alerts?$filter=(Properties/State eq 'Active') and (Properties/Severity eq 'Critical')&$orderby=Properties/CreatedTimestamp desc&api-version=2016-05-01"
Passos seguintes
Para obter mais informações sobre como utilizar os pontos finais REST do Azure, veja Referência da API REST do Azure.
Comentários
https://aka.ms/ContentUserFeedback.
Brevemente: Ao longo de 2024, vamos descontinuar progressivamente o GitHub Issues como mecanismo de feedback para conteúdos e substituí-lo por um novo sistema de feedback. Para obter mais informações, veja:Submeter e ver comentários