Vytváření žádostí rozhraní API na službu Azure Stack Hub

K automatizaci operací, jako je přidání virtuálního počítače do cloudu služby Azure Stack Hub, můžete použít rozhraní REST API služby Azure Stack Hub.

Rozhraní API vyžadují, aby se váš klient ověřil ve koncovém bodu přihlášení k Microsoft Azure. Koncový bod vrátí token, který se použije v hlavičce každého požadavku odeslaného do rozhraní API služby Azure Stack Hub. Microsoft Azure používá Oauth 2.0.

Tento článek obsahuje příklady použití nástroje cURL k vytváření požadavků služby Azure Stack Hub. cURL je nástroj příkazového řádku s knihovnou pro přenos dat. Tyto příklady popisují proces načtení tokenu pro přístup k rozhraním API služby Azure Stack Hub. Většina programovacích jazyků poskytuje knihovny Oauth 2.0, které mají robustní správu tokenů a zpracovávají úlohy, jako je aktualizace tokenu.

Projděte si celý proces používání rozhraní REST API služby Azure Stack Hub s obecným klientem REST, jako je cURL, abyste lépe porozuměli podkladovým požadavkům a tomu, co můžete očekávat v datové části odpovědi.

Tento článek nezkoumá všechny dostupné možnosti pro načítání tokenů, jako je interaktivní přihlašování nebo vytváření vyhrazených ID aplikací. Informace o těchto tématech najdete v referenčních informacích k rozhraní Azure REST API.

Získání tokenu z Azure

Vytvořte text požadavku naformátovaný pomocí typu x-www-form-urlencoded obsahu pro získání přístupového tokenu. POST požadavku do koncového bodu ověřování a přihlášení Azure REST.

Identifikátor URI

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

ID tenanta je:

  • Doména vašeho tenanta, například fabrikam.onmicrosoft.com
  • ID vašeho tenanta, například 8eaed023-2b34-4da1-9baa-8bc8c9d6a491
  • Výchozí hodnota pro klíče nezávislé na tenantovi: common

Text příspěvku

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

Pro každou hodnotu:

  • grant_type:
    Typ schématu ověřování, které budete používat. V tomto příkladu je passwordhodnota .

  • prostředek:
    Prostředek, ke který token přistupuje. Prostředek můžete najít dotazem na koncový bod metadat správy služby Azure Stack Hub. Podívejte se na sekci cílové skupiny .

  • Koncový bod správy služby Azure Stack Hub:

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

    Poznámka

    Pokud jste správce, který se pokouší získat přístup k rozhraní API tenanta, nezapomeňte použít koncový bod tenanta. Například https://adminmanagement.{region}.{Azure Stack Hub domain}/metadata/endpoints?api-version=2015-01-011.

    Například s využitím sady Azure Stack Development Kit (ASDK) jako koncového bodu:

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

    Odpověď:

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

Příklad 1

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

    Tato hodnota je pevně zakódovaná na výchozí hodnotu:

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

    Pro konkrétní scénáře jsou k dispozici alternativní možnosti:

    Aplikace ApplicationID
    LegacyPowerShell 0a7bdc5c-7b57-40be-9939-d4c5fc7cd417
    PowerShell 1950a258-227b-4e31-a9cf-717495945fc2
    WindowsAzureActiveDirectory 00000002-0000-0000-c000-0000000000000
    VisualStudio 872cd9fa-d31f-45e0-9eab-6e460a02d1f1
    AzureCLI 04b07795-8ddb-461a-bbee-02f9e1bf7b46
  • Username

    Například účet služby Azure Stack Hub Microsoft Entra:

    azurestackadmin@fabrikam.onmicrosoft.com
    
  • heslo

    Heslo správce služby Azure Stack Hub Microsoft Entra.

Příklad 2

Požadavek:

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"

Odpověď:

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

Dotazy rozhraní API

Jakmile přístupový token získáte, přidejte ho jako hlavičku ke každému požadavku rozhraní API. Pokud ji chcete přidat jako hlavičku, vytvořte autorizační hlavičku s hodnotou : Bearer <access token>. Příklad:

Požadavek:

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

Odpověď:

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 adresy URL a syntaxe dotazu

Obecný identifikátor URI požadavku se skládá z: {URI-scheme} :// {URI-host} / {resource-path} ? {query-string}

  • Schéma identifikátoru URI:
    Identifikátor URI označuje protokol použitý k odeslání požadavku. Příkladem je http nebo https.
  • Hostitel identifikátoru URI:
    Hostitel určuje název domény nebo IP adresu serveru, na kterém je hostovaný koncový bod služby REST, například graph.microsoft.com nebo adminmanagement.local.azurestack.external.
  • Cesta k prostředku:
    Cesta určuje prostředek nebo kolekci prostředků, které mohou zahrnovat více segmentů používaných službou při určování výběru těchto prostředků. Příklad: beta/applications/00003f25-7e1f-4278-9488-efc7bac53c4a/owners Lze použít k dotazování seznamu vlastníků konkrétní aplikace v kolekci aplikací.
  • Řetězec dotazu:
    Řetězec poskytuje další jednoduché parametry, například verzi rozhraní API nebo kritéria výběru prostředku.

Konstruktor identifikátoru URI požadavku služby Azure Stack Hub

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

Syntaxe identifikátoru URI

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

Příklad identifikátoru URI dotazu

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"

Další kroky

Další informace o používání koncových bodů Azure REST najdete v referenčních informacích k rozhraní Azure REST API.