Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln innehåller en översikt över Microsoft Entra-konfigurationen för att anropa Power Platform API. För att få åtkomst till resurser som är tillgängliga via Power Platform-API:et måste du hämta en ägartoken från Microsoft Entra och skicka den som en rubrik tillsammans med varje begäran. Beroende på vilken identitetstyp du stöder (användaren kontra tjänstens huvudnamn) finns det olika flöden för att hämta den här ägartoken enligt beskrivningen i den här artikeln.
Utför följande steg för att hämta en ägartoken med rätt behörigheter:
- Skapa en programregistrering i din Microsoft Entra-klientorganisation
- Konfigurera API-behörigheter
- Konfigurera plattforms- och omdirigerings-URI
- (Valfritt) Konfigurera certifikat och hemligheter
- Begära en åtkomsttoken
Steg 1. Skapa en programregistrering i din Microsoft Entra klientorganisation
- Gå till Azure-portalen.
- Välj Microsoft Entra-ID överst på sidan. Välj sedan + Lägg till>appregistrering.
- Fyll i sidan Registrera ett program :
- Namn – Ge programmet ett igenkännbart namn, till exempel Power Platform Admin SDK.
- Kontotyper som stöds – Välj endast enskild klientorganisation – <företagets namn>.
- Omdirigerings-URI – Hoppa över detta för tillfället. Du konfigurerar den i steg 3.
- Välj Registrera för att skapa programmet. När registreringen har slutförts bör du notera program-ID:t (klient- och katalog-ID:t) från översiktssidan – du behöver båda värdena senare.
Du kan också skapa registreringen med hjälp av Azure CLI:
az login
az ad app create --display-name "Power Platform Admin SDK" --sign-in-audience AzureADMyOrg
Kommandot returnerar ett JSON-objekt. Observera värdet appId – det här värdet är ditt klient-ID.
Steg 2. Konfigurera API-behörigheter
I din nya appregistrering går du till fliken Hantera - API-behörigheter . Under avsnittet Konfigurera behörigheter väljer du Lägg till en behörighet. I dialogrutan väljer du de API:er som min organisation använder fliken och söker sedan efter Power Platform API. Du kan se flera poster med ett namn som liknar det här, så se till att du använder den med GUID 8578e004-a5c6-46e7-913e-12f58912df43.
Om du inte ser Power Platform-API:et som visas i listan när du söker efter GUID kanske du fortfarande har åtkomst till det, men synligheten uppdateras inte. Kör följande skript för att framtvinga en uppdatering:
#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"
Härifrån väljer du de behörigheter du behöver. Dessa behörigheter grupperas efter namnområden. I ett namnområde visas resurstyper och åtgärder, till exempel AppManagement.ApplicationPackages.Read, som ger läsbehörighet för programpaket. Mer information finns i artikeln Behörighetsreferens .
Kommentar
Power Platform API använder endast delegerade behörigheter för tillfället. För program som körs med en användarkontext begär du delegerade behörigheter med hjälp av omfångsparametern. Dessa behörigheter delegerar behörigheterna för den inloggade användaren till ditt program, så att den kan fungera som användare när power platform-API-slutpunkter anropas.
Använd inte programbehörigheter för tjänsthuvudnamnsidentiteter. När du har skapat din appregistrering tilldelar du den i stället en RBAC-roll för att bevilja begränsade behörigheter (till exempel deltagare eller läsare). Mer information finns i Självstudie: Tilldela RBAC-roller till tjänstens huvudnamn.
När du har lagt till nödvändiga behörigheter i programmet väljer du Bevilja administratörsmedgivande för att slutföra installationen. Genom att bevilja administratörsmedgivande godkänner du behörigheterna för alla användare i klientorganisationen så att de inte uppmanas med en dialogruta med interaktivt medgivande första gången de använder din app. Om du föredrar interaktivt medgivande per användare följer du microsofts identitetsplattform och OAuth 2.0-auktoriseringskodflöde.
Du kan också bevilja administratörsmedgivande med hjälp av Azure CLI:
# Replace <app-id> with your application (client) ID
az ad app permission admin-consent --id <app-id>
Steg 3. Konfigurera plattforms- och omdirigerings-URI
SDK:er, PowerShell-skript och skrivbordsprogram som autentiseras åt en användare kräver en omdirigerings-URI så att Microsoft Entra kan returnera token tillbaka till ditt program efter autentiseringen.
I din appregistrering går du till Hantera – autentisering.
Välj Lägg till en omdirigerings-URI och välj sedan Mobil- och skrivbordsprogram.
Välj följande inbyggda omdirigerings-URI:
https://login.microsoftonline.com/common/oauth2/nativeclientVälj Konfigurera för att spara.
Du kan också lägga till omdirigerings-URI:n med hjälp av 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
Inställning för offentlig klient
Under avsnittet Avancerade inställningar på samma autentiseringsflik finns en växlingsknapp för Tillåt offentliga klientflöden . Ställ in den här växlingsknappen på Ja endast om du planerar att använda ropc-flödet (Resource Owner Password Credentials), som skickar ett användarnamn och lösenord direkt i begärandetexten för token.
Det här flödet fungerar inte för konton som har multifaktorautentisering aktiverat. För interaktiva webbläsar- eller enhetskodflöden behöver du inte aktivera den här inställningen.
Steg 4. (Valfritt) Konfigurera certifikat och hemligheter
Om din app kräver läs- och skrivresurser som sig själv, även kallat tjänstens huvudnamn, finns det två sätt att autentisera. Om du vill använda certifikat går du till Hantera – certifikat och hemligheter. Under avsnittet Certifikat laddar du upp ett x509-certifikat som du kan använda för att autentisera.
Det andra sättet är att använda avsnittet Hemligheter för att skapa en klienthemlighet. Spara sekreten på en säker plats som kan användas med dina automatiseringsbehov. Med alternativen för certifikat eller hemlighet kan du autentisera med Microsoft Entra och ta emot en token för den här klienten, som du skickar vidare till antingen REST-API:er eller PowerShell-cmdletar.
Steg 5. Begära en åtkomsttoken
Du kan hämta en åtkomst ägartoken på två sätt: ett sätt är för användarnamn och lösenord, och det andra sättet är för tjänstens huvudnamn.
Användarnamn och lösenordsflöde
Läs avsnittet offentlig klient. Skicka sedan en POST-förfrågan via HTTP till Microsoft Entra ID med ett användarnamn och en nyttolast för lösenord.
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
Föregående exempel innehåller platshållare som du kan hämta från klientprogrammet i Microsoft Entra-ID. Du får ett svar som du kan använda för att göra efterföljande anrop till Power Platform API.
{
"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..."
}
Använd värdet access_token i efterföljande anrop till Power Platform API med Auktorisering HTTP-rubrik.
Flöde för huvudkonto för tjänsten
Läs avsnittet Konfigurera certifikat och hemligheter . Skicka sedan en POST-förfrågan via HTTP till Microsoft Entra ID med nyttolast för lösenord. Den här autentiseringsmetoden kallas ofta för autentisering med tjänstens huvudnamn.
Viktigt!
Innan du använder autentisering med tjänstens huvudnamn slutför du steg 1–4 tidigare i den här artikeln för att skapa och konfigurera din appregistrering med ett certifikat eller en klienthemlighet. Tilldela sedan tjänstens huvudnamn en RBAC-roll för att styra dess åtkomstnivå. Mer information finns i Självstudie: Tilldela RBAC-roller till tjänstens huvudnamn.
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
Föregående exempel innehåller platshållare som du kan hämta från klientprogrammet i Microsoft Entra-ID. Du får ett svar som du kan använda för att göra efterföljande anrop till Power Platform API.
{
"token_type": "Bearer",
"expires_in": 3599,
"ext_expires_in": 3599,
"access_token": "eyJ0eXAiOiJKV1..."
}
Använd värdet access_token i efterföljande anrop till Power Platform API med Auktorisering HTTP-rubrik. Tjänstens huvudnamns gällande behörigheter bestäms av den RBAC-roll som tilldelats den. Information om hur du tilldelar en roll finns i Självstudie: Tilldela RBAC-roller till tjänstens huvudnamn.
Snabbstart med Azure CLI
Följande skript skapar en appregistrering från slutpunkt till slutpunkt. Kör varje kommando i ordning och ersätt platshållarvärden med dina egna.
# 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
När du har kört dessa kommandon kan du använda din appregistrering med SDK:er, PowerShell eller direkta REST-anrop. Information om hur du söker efter behörighets-ID:t för parametern --api-permissions finns i behörighetsreferensen.
Felsökning av vanliga problem
"Medgivande krävs" eller "behöver administratörsgodkännande" fel
Det här felet uppstår när administratören inte har samtyckt till API-behörigheterna för din appregistrering. Gå till Appregistreringar> dina app-API-behörigheter> och välj Bevilja administratörsmedgivande.
Du kan också köra:
az ad app permission admin-consent --id <app-id>
Felen "Användaren är inte tilldelad till en roll för programmet"
Det här felet innebär att det företagsprogram som är associerat med din appregistrering har Användartilldelning obligatoriskt inställt på Ja. När den här inställningen är aktiverad kan endast användare eller grupper som uttryckligen tilldelats till programmet logga in. Åtgärda det här felet genom att utföra någon av följande åtgärder:
- Gå till Microsoft Entra ID>Enterprise-program> som appen >Egenskaper och ange Tilldelning som krävs till Nej.
- Lägg till relevanta användare eller säkerhetsgrupper under Användare och grupper.
Principer för villkorlig åtkomst som blockerar åtkomst
Om din organisation tillämpar principer för villkorlig åtkomst kan de blockera tokenförvärv för din appregistrering. Vanliga orsaker är krav på enhetsefterlevnad, platsbegränsningar eller riskbaserade principer. Samarbeta med Microsoft Entra-administratören för att antingen exkludera din appregistrering från principen eller se till att klienterna uppfyller principkraven.
"Power Platform API" hittades inte i API-väljaren
Om sökning efter Power Platform-API efter namn eller GUID i dialogrutan API-behörigheter inte returnerar några resultat skapas inte tjänstens huvudnamn i klientorganisationen. Följ stegen för framtvingad uppdatering i steg 2 för att skapa den.
Autentisera med Power Platform SDK:er och PowerShell
I följande exempel visas hur du autentiserar och gör ett API-exempelanrop med hjälp av varje SDK och PowerShell. Innan du kör de här exemplen slutför du steg 1–3 tidigare i den här artikeln för att skapa och konfigurera din appregistrering.
Interaktiv autentisering (delegerad användare)
Interaktiv autentisering öppnar ett webbläsarfönster där användaren kan logga in. Det här flödet fungerar bäst för utvecklarskript, administratörsverktyg och alla scenarier där en användare finns.
# 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
Konfidentiell klient (tjänstens huvudnamn)
Konfidentiell klientautentisering använder en klienthemlighet eller ett certifikat och kräver inte användarinteraktion. Det här autentiseringsflödet passar bäst för bakgrundstjänster, pipelines och automatisering.
Viktigt!
Innan du använder autentisering med tjänstens huvudnamn slutför du steg 1–4 ovan för att skapa och konfigurera din appregistrering med ett certifikat eller en klienthemlighet. Tilldela sedan tjänstens huvudnamn en RBAC-roll för att styra dess åtkomstnivå. Mer information finns i Självstudie: Tilldela RBAC-roller till tjänstens huvudnamn.
$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
Relaterat innehåll
Självstudie: Tilldela RBAC-roller till tjänstens huvudnamn
Rollbaserad åtkomstkontroll för Administrationscenter för Power Platform
Behörighetsreferens