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 jepassword
hodnota .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 jehttp
nebohttps
. - 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říkladgraph.microsoft.com
neboadminmanagement.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.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro