Wykonywanie żądań interfejsu API do Azure Stack HubMake API requests to Azure Stack Hub

Za pomocą interfejsów API REST centrum Azure Stack można zautomatyzować operacje, takie jak dodawanie maszyny wirtualnej do chmury Azure Stack Hub.You can use the Azure Stack Hub REST APIs to automate operations such as adding a virtual machine (VM) to your Azure Stack Hub cloud.

Interfejsy API wymagają uwierzytelnienia klienta w punkcie końcowym logowania Microsoft Azure.The APIs require your client to authenticate to the Microsoft Azure sign-in endpoint. Punkt końcowy zwraca token do użycia w nagłówku każdego żądania wysyłanego do interfejsów API centrum Azure Stack.The endpoint returns a token to use in the header of every request sent to the Azure Stack Hub APIs. Microsoft Azure używa protokołu OAuth 2,0.Microsoft Azure uses Oauth 2.0.

W tym artykule przedstawiono przykłady użycia narzędzia zwinięcie do tworzenia żądań centrum Azure Stack.This article provides examples that use the cURL utility to create Azure Stack Hub requests. Zwinięcie jest narzędziem wiersza polecenia z biblioteką służącą do transferowania danych.cURL is a command-line tool with a library for transferring data. W tych przykładach opisano proces pobierania tokenu w celu uzyskania dostępu do interfejsów API Azure Stack Hub.These examples describe the process of retrieving a token to access the Azure Stack Hub APIs. Większość języków programowania udostępnia biblioteki OAuth 2,0, które mają niezawodne zarządzanie tokenami i obsługują zadania, takie jak odświeżanie tokenu.Most programming languages provide Oauth 2.0 libraries, which have robust token management and handle tasks such as refreshing the token.

Zapoznaj się z całym procesem przy użyciu interfejsów API REST usługi Azure Stack Hub z ogólnym klientem REST, takim jak zwinięcie, aby ułatwić zrozumienie podstawowych żądań i to, czego można oczekiwać w ładunku odpowiedzi.Review the entire process of using the Azure Stack Hub REST APIs with a generic REST client, such as cURL, to help you understand the underlying requests and what you can expect in a response payload.

W tym artykule nie są dostępne wszystkie opcje pobierania tokenów, takie jak logowanie interaktywne lub tworzenie dedykowanych identyfikatorów aplikacji.This article does not explore all the options available for retrieving tokens, such as interactive sign-in or creating dedicated app IDs. Aby uzyskać informacje o tych tematach, zobacz Dokumentacja interfejsu API REST platformy Azure.For information about these topics, see the Azure REST API reference.

Uzyskiwanie tokenu z platformy AzureGet a token from Azure

Utwórz treść żądania sformatowaną przy użyciu typu zawartości, x-www-form-urlencoded Aby uzyskać token dostępu.Create a request body formatted using the content type x-www-form-urlencoded to obtain an access token. Opublikuj żądanie w usłudze Azure REST uwierzytelnianie i punkt końcowy logowania.POST your request to the Azure REST authentication and login endpoint.

URIURI

POST https://login.microsoftonline.com/{tenant id}/oauth2/token

Identyfikator dzierżawy to:Tenant ID is either:

  • Twoja domena dzierżawy, taka jak fabrikam.onmicrosoft.comYour tenant domain, such as fabrikam.onmicrosoft.com
  • Identyfikator dzierżawy, taki jak 8eaed023-2b34-4da1-9baa-8bc8c9d6a491Your tenant ID, such as 8eaed023-2b34-4da1-9baa-8bc8c9d6a491
  • Wartość domyślna dla kluczy niezależnych od dzierżawcy: commonDefault value for tenant-independent keys: common

Opublikuj treśćPost Body

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

Dla każdej wartości:For each value:

  • grant_type:grant_type:
    Typ schematu uwierzytelniania, który będzie używany.The type of authentication scheme you'll use. W tym przykładzie wartość jest password .In this example, the value is password.

  • zasób:resource:
    Zasób, do którego uzyskuje dostęp token.The resource the token accesses. Zasób można znaleźć, badając punkt końcowy metadanych zarządzania centrum Azure Stack.You can find the resource by querying the Azure Stack Hub management metadata endpoint. Zapoznaj się z sekcją odbiorców .Look at the audiences section.

  • Punkt końcowy zarządzania centrum Azure Stack:Azure Stack Hub management endpoint:

    https://management.{region}.{Azure Stack Hub domain}/metadata/endpoints?api-version=2015-01-01
    

    Uwaga

    Jeśli jesteś administratorem próbującym uzyskać dostęp do interfejsu API dzierżawy, upewnij się, że korzystasz z punktu końcowego dzierżawcy; na przykład https://adminmanagement.{region}.{Azure Stack Hub domain}/metadata/endpoints?api-version=2015-01-011 .If you are an admin trying to access the tenant API, make sure to use the tenant endpoint; for example, https://adminmanagement.{region}.{Azure Stack Hub domain}/metadata/endpoints?api-version=2015-01-011.

    Na przykład przy użyciu Azure Stack Development Kit jako punktu końcowego:For example, with the Azure Stack Development Kit as an endpoint:

    curl 'https://management.local.azurestack.external/metadata/endpoints?api-version=2015-01-01'
    

    Odpowiedź:Response:

    {
    "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"]
       }
    }
    

PrzykładExample

https://contoso.onmicrosoft.com/4de154de-f8a8-4017-af41-df619da68155
  • client_idclient_id

    Ta wartość jest stałe do wartości domyślnej:This value is hardcoded to a default value:

    1950a258-227b-4e31-a9cf-717495945fc2
    

    Alternatywne opcje są dostępne dla konkretnych scenariuszy:Alternative options are available for specific scenarios:

    AplikacjaApplication ApplicationIDApplicationID
    LegacyPowerShellLegacyPowerShell 0a7bdc5c-7b57-40be-9939-d4c5fc7cd4170a7bdc5c-7b57-40be-9939-d4c5fc7cd417
    PowerShellPowerShell 1950a258-227b-4e31-a9cf-717495945fc21950a258-227b-4e31-a9cf-717495945fc2
    WindowsAzureActiveDirectoryWindowsAzureActiveDirectory 00000002-0000-0000-c000-00000000000000000002-0000-0000-c000-000000000000
    VisualStudioVisualStudio 872cd9fa-d31f-45e0-9eab-6e460a02d1f1872cd9fa-d31f-45e0-9eab-6e460a02d1f1
    AzureCLIAzureCLI 04b07795-8ddb-461a-bbee-02f9e1bf7b4604b07795-8ddb-461a-bbee-02f9e1bf7b46
  • username

    Na przykład konto usługi Azure AD centrum Azure Stack:For example, the Azure Stack Hub Azure AD account:

    azurestackadmin@fabrikam.onmicrosoft.com
    
  • hasłopassword

    Hasło administratora usługi Azure AD Azure Stack Hub.The Azure Stack Hub Azure AD admin password.

PrzykładExample

Żądanie:Request:

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"

Odpowiedź:Response:

{
  "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..."
}

Zapytania interfejsu APIAPI queries

Po uzyskaniu tokenu dostępu Dodaj go jako nagłówek do każdego żądania interfejsu API.Once you get the access token, add it as a header to each of your API requests. Aby dodać go jako nagłówek, Utwórz nagłówek autoryzacji z wartością: Bearer <access token> .To add it as a header, create an authorization header with the value: Bearer <access token>. Na przykład:For example:

Żądanie:Request:

curl -H "Authorization: Bearer eyJ0eXAiOi...truncated for readability..." 'https://adminmanagement.local.azurestack.external/subscriptions?api-version=2016-05-01'

Odpowiedź:Response:

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}

Struktura adresu URL i Składnia zapytaniaURL structure and query syntax

Ogólny identyfikator URI żądania składa się z: {URI-scheme} :// {URI-host} / {resource-path} ? {query-string}Generic request URI, consists of: {URI-scheme} :// {URI-host} / {resource-path} ? {query-string}

  • Schemat identyfikatora URI:URI scheme:
    Identyfikator URI wskazuje protokół używany do wysyłania żądania.The URI indicates the protocol used to send the request. Na przykład: http lub https.For example, http or https.
  • Host URI:URI host:
    Host określa nazwę domeny lub adres IP serwera, na którym znajduje się punkt końcowy usługi REST, na przykład graph.microsoft.com lub adminmanagement.local.azurestack.external .The host specifies the domain name or IP address of the server where the REST service endpoint is hosted, such as graph.microsoft.com or adminmanagement.local.azurestack.external.
  • Ścieżka zasobu:Resource path:
    Ścieżka Określa zasób lub kolekcję zasobów, która może obejmować wiele segmentów używanych przez usługę w celu określenia wyboru tych zasobów.The path specifies the resource or resource collection, which may include multiple segments used by the service in determining the selection of those resources. Na przykład: beta/applications/00003f25-7e1f-4278-9488-efc7bac53c4a/owners może służyć do wysyłania zapytań do listy właścicieli określonych aplikacji w kolekcji aplikacji.For example: beta/applications/00003f25-7e1f-4278-9488-efc7bac53c4a/owners can be used to query the list a specific application's owners within the applications collection.
  • Ciąg zapytania:Query string:
    Ten ciąg zawiera dodatkowe proste parametry, takie jak wersja interfejsu API lub kryteria wyboru zasobów.The string provides additional simple parameters, such as the API version or resource selection criteria.

Konstrukcja identyfikatora URI żądania centrum Azure StackAzure Stack Hub request URI construct

{URI-scheme} :// {URI-host} / {subscription id} / {resource group} / {provider} / {resource-path} ? {OPTIONAL: filter-expression} {MANDATORY: api-version}

Składnia identyfikatora URIURI syntax

https://adminmanagement.local.azurestack.external/{subscription id}/resourcegroups/{resource group}/providers/{provider}/{resource-path}?{api-version}

Przykład identyfikatora URI zapytaniaQuery URI example

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"

Następne krokiNext steps

Aby uzyskać więcej informacji o korzystaniu z punktów końcowych REST platformy Azure, zobacz Dokumentacja interfejsu API REST platformy Azure.For more information about using the Azure REST endpoints, see the Azure REST API Reference.