Autentizace

Tento článek obsahuje přehled nastavení Microsoft Entra pro volání rozhraní API Power Platform. Pokud chcete získat přístup k prostředkům dostupným prostřednictvím rozhraní API Power Platform, musíte získat nosný token od Microsoft Entra a odeslat ho jako hlavičku spolu s jednotlivými požadavky. V závislosti na typu identity, který podporujete (uživatel nebo instanční objekt), existují různé toky pro získání tohoto nosné tokenu, jak je popsáno v tomto článku.

Pokud chcete získat nosný token se správnými oprávněními, proveďte následující kroky:

  1. Vytvoření registrace aplikace v tenantovi Microsoft Entra
  2. Konfigurace oprávnění rozhraní API
  3. Konfigurace identifikátoru URI platformy a přesměrování
  4. (Volitelné) Konfigurace certifikátů a tajných kódů
  5. Vyžádání přístupového tokenu

Krok 1. Vytvoření registrace aplikace v tenantovi Microsoft Entra

  1. Přejděte na Azure Portal.
  2. V horní části stránky vyberte ID Microsoft Entra . Pak vyberte + Přidat>registraci aplikace.
  3. Vyplňte stránku Registrace aplikace :
    1. Název – Dejte aplikaci rozpoznatelný název, například Sadu SDK pro správu Power Platform.
    2. Podporované typy účtů – Vyberte jenom jednoho tenanta – <název> vaší společnosti.
    3. Identifikátor URI přesměrování – prozatím ho přeskočte. Nakonfigurujete ho v kroku 3.
  4. Vyberte Zaregistrovat a vytvořte aplikaci. Po dokončení registrace si poznamenejte ID aplikace (klienta) a ID adresáře (tenanta) na stránce přehledu – budete potřebovat obě hodnoty později.

Registraci můžete vytvořit také pomocí Azure CLI:

az login

az ad app create --display-name "Power Platform Admin SDK" --sign-in-audience AzureADMyOrg

Příkaz vrátí objekt JSON. appId Všimněte si hodnoty – tato hodnota je ID vašeho klienta.

Krok 2. Konfigurace oprávnění API

V nové registraci aplikace přejděte na kartu Spravovat – Oprávnění rozhraní API . V části Konfigurovat oprávnění vyberte Přidat oprávnění. V dialogovém okně vyberte rozhraní API, která moje organizace používá , kartu a vyhledejte rozhraní API Power Platform. Může se zobrazit několik položek s podobným názvem, proto se ujistěte, že používáte identifikátor GUID 8578e004-a5c6-46e7-913e-12f58912df43.

Pokud se při vyhledávání podle identifikátoru GUID v seznamu nezobrazuje rozhraní API power platformy, možná k němu máte přístup, ale viditelnost se neaktualizuje. Pokud chcete vynutit aktualizaci, spusťte následující skript:

#Install the Microsoft Graph PowerShell SDK module
Install-Module Microsoft.Graph -Scope CurrentUser -Repository PSGallery -Force

Connect-MgGraph
New-MgServicePrincipal -AppId 8578e004-a5c6-46e7-913e-12f58912df43 -DisplayName "Power Platform API"

Tady vyberte potřebná oprávnění. Tato oprávnění jsou seskupována podle oborů názvů. V rámci oboru názvů uvidíte typy a akce prostředků, jako je AppManagement.ApplicationPackages.Read, které poskytují oprávnění ke čtení pro balíčky aplikací. Další informace najdete v článku s referenčními informacemi o oprávněních .

Note

Rozhraní API služby Power Platform používá delegovaná oprávnění pouze v tuto chvíli. Pro aplikace, které běží s kontextem uživatele, požádejte delegovaná oprávnění pomocí parametru oboru . Tato oprávnění delegují oprávnění přihlášeného uživatele do vaší aplikace, aby při volání koncových bodů rozhraní API power platform fungovala jako uživatel.

Pro identity instančního objektu nepoužívejte oprávnění aplikace. Místo toho ji po vytvoření registrace aplikace přiřaďte roli RBAC, která udělí vymezená oprávnění (například Přispěvatel nebo Čtenář). Další informace najdete v tématu Kurz: Přiřazení rolí RBAC instančním objektům.

Po přidání požadovaných oprávnění do aplikace vyberte Udělit správci souhlas , abyste dokončili nastavení. Udělením souhlasu správce autorizujete oprávnění pro všechny uživatele v tenantovi, aby se jim při prvním použití vaší aplikace nezobrazeno dialogové okno s interaktivním souhlasem. Pokud dáváte přednost interaktivnímu souhlasu pro jednotlivé uživatele, postupujte podle platformy Microsoft Identity Platform a toku autorizačního kódu OAuth 2.0.

Souhlas správce můžete udělit také pomocí Azure CLI:

# Replace <app-id> with your application (client) ID
az ad app permission admin-consent --id <app-id>

Krok 3. Konfigurace identifikátoru URI platformy a přesměrování

Sady SDK, skripty PowerShellu a desktopové aplikace, které se ověřují jménem uživatele, vyžadují identifikátor URI přesměrování, aby microsoft Entra mohl po ověření vracet tokeny zpět do vaší aplikace.

  1. V rámci registrace aplikace přejděte na Spravovat – Ověřování.

  2. Vyberte Přidat identifikátor URI přesměrování a pak zvolte Mobilní a desktopové aplikace.

  3. Vyberte následující předdefinovaný identifikátor URI přesměrování:

    https://login.microsoftonline.com/common/oauth2/nativeclient

  4. Vyberte Konfigurovat , chcete-li uložit.

Identifikátor URI přesměrování můžete přidat také pomocí Azure CLI:

# Replace <app-id> with your application (client) ID
az ad app update --id <app-id> --public-client-redirect-uris https://login.microsoftonline.com/common/oauth2/nativeclient

Nastavení veřejného klienta

V části Upřesnit nastavení na stejné kartě Ověřování je přepínač Povolit toky veřejného klienta . Tento přepínač nastavte na Ano jenom v případě, že plánujete použít tok ROPC (Resource Owner Password Credentials), který odešle uživatelské jméno a heslo přímo v textu žádosti o token.

Tento tok nefunguje u účtů s povoleným vícefaktorovým ověřováním. Pro interaktivní toky kódu prohlížeče nebo zařízení nemusíte toto nastavení povolovat.

Krok 4. (Volitelné) Konfigurace certifikátů a tajných kódů

Pokud vaše aplikace vyžaduje čtení a zápis prostředků jako samotného, označovaného také jako instanční objekt, existují dva způsoby ověření. Pokud chcete používat certifikáty, přejděte na Spravovat – Certifikáty a tajné kódy. V části Certifikáty nahrajte certifikát x509, který můžete použít k ověření.

Dalším způsobem je použití části Tajné klíče pro vygenerování tajného klíče klienta. Uložte tajný kód na bezpečném místě, abyste jej mohli použít při automatizaci. Možnosti certifikátu nebo tajného kódu umožňují ověřování pomocí microsoft Entra a získání tokenu pro tohoto klienta, který předáváte rozhraním REST API nebo rutinám PowerShellu.

Krok 5. Vyžádání přístupového tokenu

Přístupový nosný token můžete získat dvěma způsoby: jedním ze způsobů je uživatelské jméno a heslo a druhý způsob je pro instanční objekty.

Tok uživatelského jména a hesla

Nezapomeňte si přečíst část veřejného klienta. Poté odešlete požadavek POST přes HTTP na Microsoft Entra ID s uživatelským jménem a heslem.

Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&username={USER_EMAIL_ADDRESS}&password={PASSWORD}&grant_type=password

Předchozí příklad obsahuje zástupné symboly, které můžete načíst z klientské aplikace v Microsoft Entra ID. Obdržíte odpověď, kterou můžete použít k následným voláním rozhraní API Power Platform.

{
  "token_type": "Bearer",
  "scope": "https://api.powerplatform.com/AppManagement.ApplicationPackages.Install https://api.powerplatform.com/AppManagement.ApplicationPackages.Read https://api.powerplatform.com/.default",
  "expires_in": 4747,
  "ext_expires_in": 4747,
  "access_token": "eyJ0eXAiOiJKV1QiLCJu..."
}

Hodnotu access_token použijte v následných voláních rozhraní Power Platform API prostřednictvím záhlaví HTTP Ověřování.

Tok s instančním objektem

Nezapomeňte si přečíst část Konfigurace certifikátů a tajných kódů . Poté odešlete požadavek POST přes HTTP na Microsoft Entra ID s datovou části s tajným klíčem klienta. Tato metoda ověřování se často označuje jako ověřování instančního objektu.

Important

Před použitím ověřování instančního objektu dokončete kroky 1 až 4 výše v tomto článku a vytvořte a nakonfigurujte registraci aplikace pomocí certifikátu nebo tajného klíče klienta. Potom přiřaďte instančnímu objektu roli RBAC, která řídí jeho úroveň přístupu. Další informace najdete v tématu Kurz: Přiřazení rolí RBAC k instančním objektům.

Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Accept: application/json
POST https://login.microsoftonline.com/YOUR_TENANT.COM/oauth2/v2.0/token
BODY:
client_id={CLIENT_ID_FROM_AZURE_CLIENT_APP}&scope=https://api.powerplatform.com/.default&client_secret={SECRET_FROM_AZURE_CLIENT_APP}&grant_type=client_credentials

Předchozí příklad obsahuje zástupné symboly, které můžete načíst z klientské aplikace v Microsoft Entra ID. Obdržíte odpověď, kterou můžete použít k následným voláním rozhraní API Power Platform.

{
  "token_type": "Bearer",
  "expires_in": 3599,
  "ext_expires_in": 3599,
  "access_token": "eyJ0eXAiOiJKV1..."
}

Hodnotu access_token použijte v následných voláních rozhraní Power Platform API prostřednictvím záhlaví HTTP Ověřování. Efektivní oprávnění instančního objektu jsou určena rolí RBAC přiřazenou k němu. Informace o přiřazování role najdete v tématu Kurz: Přiřazení rolí RBAC instančním objektům.

Rychlý start s Azure CLI

Následující skript vytvoří kompletní registraci aplikace. Spusťte každý příkaz v pořadí a nahraďte zástupné hodnoty vlastními.

# Sign in to Azure CLI
az login

# Create the app registration (single tenant)
az ad app create --display-name "Power Platform Admin SDK" --sign-in-audience AzureADMyOrg

# Save the app ID from the output, then create a service principal for it
az ad sp create --id <app-id>

# Add a delegated permission (example: AppManagement.ApplicationPackages.Read)
# The --api value is the Power Platform API app ID.
# The --api-permissions value is the permission ID and type (Scope = delegated).
# Repeat this command for each permission you need. See the Permission reference for IDs.
az ad app permission add --id <app-id> \
  --api 8578e004-a5c6-46e7-913e-12f58912df43 \
  --api-permissions <permission-id>=Scope

# Grant admin consent so users aren't prompted individually
az ad app permission admin-consent --id <app-id>

# Add the native client redirect URI for interactive auth
az ad app update --id <app-id> \
  --public-client-redirect-uris https://login.microsoftonline.com/common/oauth2/nativeclient

Po spuštění těchto příkazů můžete registraci aplikace použít se sadami SDK, PowerShellem nebo přímými voláními REST. Pokud chcete vyhledat ID oprávnění pro --api-permissions parametr, přečtěte si referenční informace o oprávněních.

Řešení běžných problémů

K této chybě dochází v případě, že správce nepřidělil souhlas s oprávněními rozhraní API k registraci vaší aplikace. Přejděte do části Registrace> aplikací> aplikace, a vyberte Udělit souhlas správce.

Případně spusťte:

az ad app permission admin-consent --id <app-id>

Chyby typu Uživatel není přiřazen k roli pro aplikaci

Tato chyba znamená, že podniková aplikace přidružená k vaší registraci aplikace má přiřazení uživatele nastavené na Ano. Pokud je toto nastavení povolené, můžou se přihlásit jenom uživatelé nebo skupiny, které jsou k aplikaci explicitně přiřazené. Pokud chcete tuto chybu opravit, proveďte jednu z následujících akcí:

  • Přejděte dopodnikových aplikací>Microsoft Entra ID>, nastavte > aplikace a nastavte Přiřazení požadované na Ne.
  • Přidejte příslušné uživatele nebo skupiny zabezpečení v části Uživatelé a skupiny.

Zásady podmíněného přístupu blokující přístup

Pokud vaše organizace použije zásady podmíněného přístupu, můžou zablokovat získání tokenu pro registraci vaší aplikace. Mezi běžné příčiny patří požadavky na dodržování předpisů zařízením, omezení polohy nebo zásady založené na rizicích. Obraťte se na správce Microsoft Entra a vylučte registraci aplikace ze zásad nebo se ujistěte, že klienti splňují požadavky zásad.

V nástroji pro výběr rozhraní API se nenašlo rozhraní API Power Platform.

Pokud hledání rozhraní API služby Power Platform podle názvu nebo identifikátoru GUID v dialogovém okně oprávnění rozhraní API nevrátí žádné výsledky, instanční objekt se ve vašem tenantovi nevytvořil. Postupujte podle kroků vynucené aktualizace v kroku 2 a vytvořte ho.

Ověřování pomocí sad POWER PLATFORM SDK a PowerShellu

Následující příklady ukazují, jak provést ověření a provedení ukázkového volání rozhraní API pomocí jednotlivých sad SDK a PowerShellu. Před spuštěním těchto příkladů dokončete kroky 1 až 3 výše v tomto článku a vytvořte a nakonfigurujte registraci aplikace.

Interaktivní ověřování (delegovaný uživatel)

Interaktivní ověřování otevře okno prohlížeče pro přihlášení uživatele. Tento tok funguje nejlépe pro vývojářské skripty, nástroje pro správu a jakýkoli scénář, ve kterém se nachází uživatel.

# Sign in interactively (opens a browser)
Connect-AzAccount

# Get an access token for the Power Platform API
$token = Get-AzAccessToken -ResourceUrl "https://api.powerplatform.com"

# Call the List Environments endpoint as an example
$headers = @{ Authorization = "Bearer $($token.Token)" }
$environments = Invoke-RestMethod -Uri "https://api.powerplatform.com/environmentmanagement/environments?api-version=2024-10-01" -Headers $headers
$environments.value | Format-Table name, properties.displayName

Důvěrný klient (instanční objekt)

Důvěrné ověření klienta používá tajný klíč klienta nebo certifikát a nevyžaduje interakci uživatele. Tento tok ověřování je nejvhodnější pro služby, kanály a automatizaci na pozadí.

Important

Před použitím ověřování instančního objektu dokončete kroky 1 až 4 výše a vytvořte a nakonfigurujte registraci aplikace pomocí certifikátu nebo tajného klíče klienta. Potom přiřaďte instančnímu objektu roli RBAC, která řídí jeho úroveň přístupu. Další informace najdete v tématu Kurz: Přiřazení rolí RBAC instančním objektům.

$tenantId = "YOUR_TENANT_ID"
$clientId = "YOUR_CLIENT_ID"
$clientSecret = "YOUR_CLIENT_SECRET"

# Request a token using client credentials
$body = @{
    client_id     = $clientId
    scope         = "https://api.powerplatform.com/.default"
    client_secret = $clientSecret
    grant_type    = "client_credentials"
}
$tokenResponse = Invoke-RestMethod -Method Post `
    -Uri "https://login.microsoftonline.com/$tenantId/oauth2/v2.0/token" `
    -ContentType "application/x-www-form-urlencoded" `
    -Body $body

# Call the List Environments endpoint as an example
$headers = @{ Authorization = "Bearer $($tokenResponse.access_token)" }
$environments = Invoke-RestMethod -Uri "https://api.powerplatform.com/environmentmanagement/environments?api-version=2024-10-01" -Headers $headers
$environments.value | Format-Table name, properties.displayName

Kurz: Přiřazení rolí RBAC k instančním objektům
Řízení přístupu na základě role pro Centrum pro správu Power Platform
Referenční informace o oprávněních