Del via


Godkendelse

Denne artikel indeholder en oversigt over Microsoft Entra-konfigurationen til kald af Power Platform API. Hvis du vil have adgang til ressourcer, der er tilgængelige via Power Platform-API'en, skal du hente et ihændehavertoken fra Microsoft Entra og sende det som en header sammen med hver anmodning. Afhængigt af den identitetstype, du understøtter (bruger vs. tjenesteprincipal), er der forskellige flow til at hente dette ihændehavertoken, som beskrevet i denne artikel.

Hvis du vil have et ihændehavertoken med de korrekte tilladelser, skal du udføre følgende trin:

  1. Opret en programregistrering i din Microsoft Entra-lejer
  2. Konfigurer API-tilladelser
  3. Konfigurer URI for platform og omdirigering
  4. (Valgfrit) Konfigurer certifikater og hemmeligheder
  5. Anmod om et adgangstoken

Trin 1. Oprette en programregistrering i din Microsoft Entra-lejer

  1. Gå til Azure-portalen.
  2. Vælg Microsoft Entra-id øverst på siden. Vælg derefter + Tilføj>appregistrering.
  3. Udfyld siden Registrer et program :
    1. Navn – Giv programmet et genkendeligt navn, f.eks . Power Platform Admin SDK.
    2. Understøttede kontotyper – vælg kun enkelt lejer – <dit firmanavn>.
    3. Omdirigerings-URI – spring dette over indtil videre. Du konfigurerer den i trin 3.
  4. Vælg Registrer for at oprette programmet. Når registreringen er fuldført, skal du notere program-id'et (klient) og mappe-id'et (lejer) fra oversigtssiden – du skal bruge begge værdier senere.

Du kan også oprette registreringen ved hjælp af Kommandolinjegrænsefladen i Azure:

az login

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

Kommandoen returnerer et JSON-objekt. Bemærk værdien appId – denne værdi er dit klient-id.

Trin 2. Konfigurere API-tilladelser

I din nye appregistrering skal du gå til fanen Administrer – API-tilladelser . Under afsnittet Konfigurer tilladelser skal du vælge Tilføj en tilladelse. I dialogboksen skal du vælge fanen API'er, som min organisation bruger , og derefter søge efter Power Platform API. Du kan muligvis se flere poster med et navn, der ligner dette, så sørg for at bruge det med GUID 8578e004-a5c6-46e7-913e-12f58912df43.

Hvis Power Platform-API'en ikke vises på listen, når du søger efter GUID, har du muligvis stadig adgang til den, men synligheden opdateres ikke. Kør følgende script for at gennemtvinge en opdatering:

#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"

Herfra skal du vælge de tilladelser, du har brug for. Disse tilladelser er grupperet efter Navneområder. I et navneområde kan du se ressourcetyper og handlinger, f.eks. AppManagement.ApplicationPackages.Read, som giver læsetilladelser til programpakker. Du kan få flere oplysninger i artiklen Tilladelsesreference .

Bemærk

Power Platform API bruger kun delegerede tilladelser på nuværende tidspunkt. For programmer, der kører med en brugerkontekst, skal du anmode om delegerede tilladelser ved hjælp af områdeparameteren . Disse tilladelser uddelegerer rettighederne for den bruger, der er logget på, til dit program, så det kan fungere som brugeren, når der kaldes Power Platform API-slutpunkter.

Brug ikke programtilladelser til tjenesteprincipalens identiteter. Når du har oprettet din appregistrering, skal du i stedet tildele den en RBAC-rolle for at tildele tilladelser, der er begrænset (f.eks . Bidragyder eller Læser). Du kan få flere oplysninger under Selvstudium: Tildel RBAC-roller til tjenesteprincipaler.

Når du har føjet de nødvendige tilladelser til programmet, skal du vælge Giv administratorsamtykke for at fuldføre konfigurationen. Ved at give administratorsamtykke godkender du tilladelserne for alle brugere i lejeren, så de ikke bliver bedt om det med en interaktiv samtykkedialogboks, første gang de bruger din app. Hvis du foretrækker interaktivt samtykke pr. bruger, skal du følge Microsofts identitetsplatform og OAuth 2.0-godkendelseskodeflow.

Du kan også give administratorsamtykke ved hjælp af Kommandolinjegrænsefladen i Azure:

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

Trin 3. Konfigurer URI for platform og omdirigering

SDK'er, PowerShell-scripts og skrivebordsprogrammer, der godkendes på vegne af en bruger, kræver en omdirigerings-URI, så Microsoft Entra kan returnere tokens til dit program efter godkendelse.

  1. I din appregistrering skal du gå til Administrer – Godkendelse.

  2. Vælg Tilføj en omdirigerings-URI, og vælg derefter Mobil- og skrivebordsprogrammer.

  3. Vælg følgende indbyggede omdirigerings-URI:

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

  4. Vælg Konfigurer for at gemme.

Du kan også tilføje omdirigerings-URI'en ved hjælp af Kommandolinjegrænsefladen i Azure:

# 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

Indstilling for offentlig klient

Under afsnittet Avancerede indstillinger under den samme godkendelsesfane er der til/fra-knappen Tillad offentlige klientflow . Angiv kun denne til/fra-knap til Ja , hvis du planlægger at bruge FLOW'en (Resource Owner Password Credentials), som sender et brugernavn og en adgangskode direkte i brødteksten for tokenanmodningen.

Dette flow fungerer ikke for konti, hvor multifaktorgodkendelse er aktiveret. I forbindelse med interaktive browser- eller enhedskodeflows behøver du ikke at aktivere denne indstilling.

Trin 4. (Valgfrit) Konfigurer certifikater og hemmeligheder

Hvis din app kræver læse- og skriveressourcer som sig selv, også kaldet en tjenesteprincipal, er der to måder at godkende på. Hvis du vil bruge certifikater, skal du gå til Administrer – certifikater og hemmeligheder. Under afsnittet Certifikater skal du uploade et x509-certifikat, som du kan bruge til at godkende.

Den anden måde er at bruge sektionen Hemmeligheder til at oprette en klienthemmelighed. Gem hemmeligheden et sikkert sted, så du kan bruge den sammen med dine automatiseringsbehov. Med indstillingerne for certifikat eller hemmelighed kan du godkende med Microsoft Entra og modtage et token for denne klient, som du sender til enten REST API'er eller PowerShell-cmdlet'er.

Trin 5. Anmode om adgangstoken

Du kan få et adgangs-ihændehavertoken på to måder: én måde er for brugernavn og adgangskode, og den anden måde er for tjenesteprincipaler.

Flow med brugernavn og adgangskode

Sørg for at læse afsnittet om offentlig klient. Send derefter en POST-anmodning via HTTP til Microsoft Entra ID med data for brugernavn og adgangskode.

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

Det foregående eksempel indeholder pladsholdere, som du kan hente fra dit klientprogram i Microsoft Entra ID. Du modtager et svar, som du kan bruge til at foretage efterfølgende kald til 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..."
}

Brug værdien access_token i efterfølgende kald til Power Platform-API'en ved hjælp af HTTP-headeren Godkendelse.

Flow med tjenesteprincipal

Sørg for at læse afsnittet Konfigurer certifikater og hemmeligheder . Send derefter en POST-anmodning via HTTP til Microsoft Entra ID med data for klienthemmelighed. Denne godkendelsesmetode kaldes ofte godkendelse af tjenesteprincipal.

Vigtigt

Før du bruger godkendelse af tjenesteprincipal, skal du fuldføre trin 1-4 tidligere i denne artikel for at oprette og konfigurere din appregistrering med et certifikat eller en klienthemmelighed. Tildel derefter tjenesteprincipalen en RBAC-rolle for at styre dets adgangsniveau. Du kan få mere at vide under Selvstudium: Tildel RBAC-roller til tjenesteprincipaler.

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

Det foregående eksempel indeholder pladsholdere, som du kan hente fra dit klientprogram i Microsoft Entra ID. Du modtager et svar, som du kan bruge til at foretage efterfølgende kald til Power Platform API.

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

Brug værdien access_token i efterfølgende kald til Power Platform-API'en ved hjælp af HTTP-headeren Godkendelse. Tjenesteprincipalens gældende tilladelser bestemmes af den RBAC-rolle, der er tildelt den. Hvis du vil vide mere om, hvordan du tildeler en rolle, skal du se Selvstudium: Tildel RBAC-roller til tjenesteprincipaler.

Hurtig start med Azure CLI

Følgende script opretter en appregistrering fra ende til anden. Kør hver kommando i rækkefølge, og erstat pladsholderværdier med dine egne.

# 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 disse kommandoer, kan du bruge din appregistrering med SDK'er, PowerShell eller direkte REST-kald. Hvis du vil søge efter tilladelses-id'er for --api-permissions parameteren, skal du se Tilladelsesreference.

Fejlfinding af almindelige problemer

Denne fejl opstår, når administratoren ikke har givet samtykke til API-tilladelserne til din appregistrering. Gå til Appregistreringer> dine app-API-tilladelser>, og vælg Giv administratorsamtykke.

Du kan også køre:

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

Fejlene "Brugeren er ikke tildelt til en rolle for programmet"

Denne fejl betyder, at det virksomhedsprogram, der er knyttet til din appregistrering , har brugertildelingen angivet til Ja. Når denne indstilling er aktiveret, er det kun brugere eller grupper, der eksplicit er tildelt programmet, der kan logge på. Du kan løse denne fejl ved at udføre en af følgende handlinger:

  • Gå til Microsoft Entra ID Enterprise-programmer>>, som dine appegenskaber> er, og angiv Tildeling påkrævet til Nej.
  • Tilføj de relevante brugere eller sikkerhedsgrupper under Brugere og grupper.

Politikker for betinget adgang blokerer adgang

Hvis din organisation anvender politikker for betinget adgang, kan de blokere erhvervelse af token for din appregistrering. Almindelige årsager omfatter krav til enhedsoverholdelse, placeringsbegrænsninger eller risikobaserede politikker. Samarbejd med din Microsoft Entra-administrator om enten at udelade din appregistrering fra politikken eller sikre, at klienterne opfylder politikkravene.

"Power Platform API" blev ikke fundet i API-vælgeren

Hvis søgning efter Power Platform-API efter navn eller GUID i dialogboksen MED API-tilladelser ikke returnerer nogen resultater, oprettes tjenesteprincipalen ikke i din lejer. Følg trinnene til gennemtving opdatering i trin 2 for at oprette den.

Godkend med Power Platform SDK'er og PowerShell

I følgende eksempler kan du se, hvordan du godkender og foretager et eksempel-API-kald ved hjælp af hver SDK og PowerShell. Før du kører disse eksempler, skal du fuldføre trin 1-3 tidligere i denne artikel for at oprette og konfigurere din appregistrering.

Interaktiv godkendelse (delegeret bruger)

Interaktiv godkendelse åbner et browservindue, hvor brugeren kan logge på. Dette flow fungerer bedst til udviklerscripts, administratorværktøjer og ethvert scenarie, hvor en bruger er til stede.

# 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

Fortrolig klient (tjenesteprincipal)

Fortrolig klientgodkendelse bruger en klienthemmelighed eller et certifikat og kræver ikke brugerinteraktion. Dette godkendelsesflow er bedst til baggrundstjenester, pipelines og automatisering.

Vigtigt

Før du bruger godkendelse af tjenesteprincipal, skal du fuldføre trin 1-4 ovenfor for at oprette og konfigurere din appregistrering med et certifikat eller en klienthemmelighed. Tildel derefter tjenesteprincipalen en RBAC-rolle for at styre dets adgangsniveau. Du kan finde flere oplysninger under Selvstudium: Tildel RBAC-roller til tjenesteprincipaler.

$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

Selvstudium: Tildel RBAC-roller til tjenesteprincipaler
Rollebaseret adgangskontrol til Power Platform Administration
Tilladelsesreference