Provjera autentičnosti

Ovaj članak sadrži pregled postavljanja programa Microsoft Entra za pozivanje API-ja za Power Platform. Da biste pristupili resursima dostupnima putem API-ja za Power Platform, morate dobiti token nositelja od tvrtke Microsoft Entra i poslati ga kao zaglavlje zajedno sa svakim zahtjevom. Ovisno o vrsti identiteta koju podržavate (korisnik ili upravitelj servisa) postoje različiti tokovi za dobivanje tokena nositelja, kao što je opisano u ovom članku.

Da biste dobili token nositelja s ispravnim dozvolama, učinite sljedeće:

  1. Stvaranje registracije aplikacije u klijentu za Microsoft Entra
  2. Konfiguriranje dozvola ZA API
  3. Konfiguriranje platforme i preusmjeravanje URI-ja
  4. (Neobavezno) Konfiguriranje certifikata i tajni
  5. Zahtjev za pristupni token

1. korak Stvaranje registracije aplikacije u klijentu Microsoft Entra

  1. Idi na Azure portal.
  2. Odaberite Microsoftov ID sudionika pri vrhu stranice. Zatim odaberite + Dodaj registraciju>aplikacije.
  3. Ispunite stranicu Registriranje aplikacije :
    1. Naziv – aplikaciji dodijelite prepoznatljiv naziv, kao što je Power Platform Admin SDK.
    2. Podržane vrste računaodaberite Samo jedan klijent – naziv <tvrtke>.
    3. URI za preusmjeravanje – zasad preskočite ovo. Konfigurirate je u trećem koraku.
  4. Odaberite Registriraj da biste stvorili aplikaciju. Kada registracija završi, zabilježite ID aplikacije (klijenta) i ID direktorija (klijenta) sa stranice pregleda – kasnije su vam potrebne obje vrijednosti.

Registraciju možete stvoriti i pomoću Azure CLI-ja:

az login

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

Naredba vraća JSON objekt. Obratite pozornost appId na vrijednost – ta je vrijednost ID klijenta.

2. korak Konfiguracija API dozvola

U novoj registraciji aplikacije idite na karticu Upravljanje dozvolama API-ja . U odjeljku Konfiguriranje dozvola odaberite Dodaj dozvolu. U dijaloškom okviru odaberite karticu API-ji koje koristi moja tvrtka ili ustanova, a zatim potražite API za Power Platform. Možda ćete vidjeti nekoliko unosa s nazivom sličnim ovome, pa provjerite koristite li onu s GUID-8578e004-a5c6-46e7-913e-12f58912df43.

Ako ne vidite API za Power Platform prikazan na popisu prilikom pretraživanja prema GUID-u, možda ćete mu i dalje moći pristupiti, ali vidljivost nije osvježena. Da biste prisilno osvježili, pokrenite sljedeću skriptu:

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

Ovdje odaberite potrebne dozvole. Te su dozvole grupirane po prostorima naziva. U prostoru za naziv prikazuju se vrste resursa i akcije, kao što je AppManagement.ApplicationPackages.Read, što daje dozvole za čitanje za pakete aplikacija. Dodatne informacije potražite u članku Referenca za dozvole.

Napomena

API platforme Power Platform koristi delegirane dozvole samo u ovom trenutku. Za aplikacije koje se pokreću s kontekstom korisnika zatražite delegirane dozvole pomoću parametra dosega . Te dozvole delegirati ovlasti prijavljenog korisnika vašoj aplikaciji tako da može djelovati kao korisnik prilikom pozivanja krajnjih točaka API-ja za Power Platform.

Za identitete upravitelja servisa nemojte koristiti dozvole aplikacije. Umjesto toga, kada stvorite registraciju aplikacije, dodijelite mu RBAC ulogu da biste dodijelili dozvole u opsegu (kao što su suradnik ili čitač). Dodatne informacije potražite u vodiču: Dodjela RBAC uloga upraviteljima servisa.

Kada u aplikaciju dodate potrebne dozvole, odaberite Dodijeli administratoru pristanak da biste dovršili postavljanje. Ako date administratorski pristanak, autorizirate dozvole za sve korisnike na klijentu tako da se od korisnika ne zatraži interaktivni dijaloški okvir za pristanak kada prvi put koriste vašu aplikaciju. Ako preferirate interaktivni pristanak po korisniku, slijedite Microsoftovu platformu za identitete i tijek koda za autorizaciju OAuth 2.0.

Administratorski pristanak možete dodijeliti i pomoću azure CLI-ja:

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

3. korak Konfiguriranje platforme i preusmjeravanje URI-ja

SDK-ovi, skripte ljuske PowerShell i aplikacije za stolna računala koje provjeravaju autentičnost u ime korisnika zahtijevaju URI za preusmjeravanje da bi Microsoftov dodatak mogao vratiti tokene vašoj aplikaciji nakon provjere autentičnosti.

  1. Unutar registracije aplikacije idite na Upravljanje – provjera autentičnosti.

  2. Odaberite Dodaj URI za preusmjeravanje, a zatim Mobilne aplikacije i aplikacije za stolna računala.

  3. Odaberite sljedeći ugrađeni URI za preusmjeravanje:

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

  4. Odaberite Konfiguriraj za spremanje.

URI za preusmjeravanje možete dodati i pomoću azure CLI-ja:

# 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

Postavka javnog klijenta

U odjeljku Dodatne postavke na istoj kartici Provjera autentičnosti nalazi se prekidač Dopusti tijekovima javnih klijenata. Postavite ovaj preklopni gumb na Da samo ako namjeravate koristiti tijek vjerodajnica lozinke vlasnika resursa (ROPC), čime se korisničko ime i lozinka šalju izravno u tijelo zahtjeva tokena.

Taj tijek ne funkcionira za račune s omogućenom višestrukom provjerom autentičnosti. Za interaktivne tijeke koda preglednika ili uređaja ne morate omogućiti tu postavku.

4. korak (Neobavezno) Konfiguriranje certifikata i tajni

Ako je za aplikaciju potreban samo resursi za čitanje i pisanje, koji su poznati i kao upravitelj servisa , provjeru autentičnosti možete provjeriti na dva načina. Da biste koristili certifikate, idite na Upravljanje – certifikati i tajne. U odjeljku Certifikati prenesite certifikat x509 koji možete koristiti za provjeru autentičnosti.

Drugi je način korištenje odjeljka Tajne za generiranje tajne klijenta. Spremite tajnu na sigurno mjesto za upotrebu s vašim potrebama automatizacije. Mogućnosti certifikata ili tajnog certifikata omogućuju vam provjeru autentičnosti pomoću microsoftova sudionika i primanje tokena za taj klijent, koji ćete proslijediti REST API-jima ili cmdletima ljuske PowerShell.

5. korak Zahtjev za pristupni token

Token nositelja pristupa možete dobiti na dva načina: jedan je način za korisničko ime i lozinku, a drugi za upravitelje servisa.

Tijek korisničkog ima i lozinka

Obavezno pročitajte odjeljak o javnom klijentu. Zatim pošaljite POST zahtjev putem HTTP-a na Microsoft Entra ID s korisničkim imenom i lozinkom.

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

U prethodnom primjeru nalaze se rezervirana mjesta koja možete dohvatiti iz klijentske aplikacije u id-u microsoftova sudionika. Primit ćete odgovor pomoću koji možete upućivati daljnje pozive API-ju za 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..."
}

Koristite vrijednost pristupni_token u uzastopnim pozivima Power Platform API-ju koristeći HTTP zaglavlje Provjera autentičnosti.

Tijek glavnog servisa

Obavezno pročitajte odjeljak Konfiguriranje certifikata i tajni . Zatim pošaljite POST zahtjev putem HTTP-a na Microsoft Entra ID s korisnim teretom tajne klijenta. Ta se metoda provjere autentičnosti često naziva provjerom autentičnosti upravitelja servisa.

Važno

Prije korištenja provjere autentičnosti upravitelja servisa dovršite korake od 1. do 4. u prethodnom odjeljku članka da biste stvorili i konfigurirali registraciju aplikacije pomoću certifikata ili tajnog klijenta. Zatim dodijelite upravitelju servisa RBAC ulogu za kontrolu njegove razine pristupa. Dodatne informacije potražite u vodiču: Dodjela RBAC uloga upraviteljima servisa.

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

U prethodnom primjeru nalaze se rezervirana mjesta koja možete dohvatiti iz klijentske aplikacije u id-u microsoftova sudionika. Primit ćete odgovor pomoću koji možete upućivati daljnje pozive API-ju za Power Platform.

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

Koristite vrijednost pristupni_token u uzastopnim pozivima Power Platform API-ju koristeći HTTP zaglavlje Provjera autentičnosti. Učinkovite dozvole upravitelja servisa određuju uloga RBAC koja joj je dodijeljena. Da biste saznali kako dodijeliti ulogu, pogledajte praktični vodič: Dodjela RBAC uloga upraviteljima servisa.

Brzi početak rada s Azure CLI-jem

Sljedeća skripta stvara kraj-do kraja registracije aplikacije. Svaku naredbu pokrenite redoslijedom i zamijenite vrijednosti rezerviranih mjesta vlastitima.

# 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

Nakon pokretanja tih naredbi možete koristiti registraciju aplikacije s SDK-ovima, komponentom PowerShell ili izravnim POZIVIMA ZA REST. Da biste potražili ID-ove dozvola za --api-permissions parametar, pogledajte referencu dozvole.

Otklanjanje uobičajenih problema

Ta se pogreška pojavljuje kada administrator nije pribavio dozvole API-ja za registraciju aplikacije. Idite na Registracije aplikacija za>> i odaberite Dodijeli administratorski pristanak.

Alternativno, pokrenite:

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

Pogreške "Korisniku nije dodijeljena uloga za aplikaciju"

Ta pogreška znači da je enterprise aplikacija povezana s registracijom vaše aplikacije obavezna dodjela korisnika postavljena na Da. Kada je ta postavka omogućena, samo se korisnici ili grupe izričito dodijeljene aplikaciji mogu prijaviti. Da biste ispravili tu pogrešku, učinite nešto od sljedećeg:

  • Idite na Microsoft Entra ID>Enterprise aplikacije> svojstva > i postavite Dodjela potrebna na Ne.
  • Dodajte relevantne korisnike ili sigurnosne grupe u odjeljak Korisnici i grupe.

Pravila uvjetnog pristupa koja blokiraju pristup

Ako vaša tvrtka ili ustanova primjenjuje uvjetne pravilnike o pristupu, mogu blokirati dohvaćanje tokena za registraciju aplikacije. Uobičajeni uzroci obuhvaćaju zahtjeve usklađenosti uređaja, ograničenja lokacije ili pravilnike utemeljene na riziku. Suraрujte sa svojim administratorom programa Microsoft Entra kako biste isključili registraciju aplikacije iz pravilnika ili da bi klijenti zadovoljili zahtjeve pravilnika.

API za "Power Platform" nije pronađen u alatu za odabir API-ja

Ako traženje API-ja za Power Platform prema nazivu ili GUID-u u dijaloškom okviru za dozvole API-ja ne vraća rezultate, upravitelj servisa neće se stvoriti u vašem klijentu. Slijedite korake za prisilno osvježavanje u 2 . koraku da biste ga stvorili.

Provjera autentičnosti pomoću SDK-ova za Power Platform i komponente PowerShell

Sljedeći primjeri pokazuju kako provjeriti autentičnost i izvršiti ogledni poziv API-ja pomoću svakog SDK-a i ljuske PowerShell. Prije pokretanja ovih primjera dovršite korake od 1. do 3. u prethodnom članku da biste stvorili i konfigurirali registraciju aplikacije.

Interaktivna provjera autentičnosti (delegirani korisnik)

Interaktivna provjera autentičnosti otvara prozor preglednika u koji se korisnik može prijaviti. Taj tijek najbolje funkcionira za skripte za razvojne inženjere, administratorske alate i sve scenarije u kojima se korisnik nalazi.

# 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

Povjerljivi klijent (upravitelj servisa)

Povjerljiva provjera autentičnosti klijenta koristi klijentsku tajnu ili certifikat i ne zahtijeva interakciju s korisnikom. Ovaj tijek provjere autentičnosti najbolji je za pozadinske servise, kanale i automatizaciju.

Važno

Prije korištenja provjere autentičnosti upravitelja servisa dovršite gore navedene korake da biste stvorili i konfigurirali registraciju aplikacije pomoću certifikata ili tajnog klijenta. Zatim dodijelite upravitelju servisa RBAC ulogu za kontrolu njegove razine pristupa. Dodatne informacije potražite u vodiču : Dodjela RBAC uloga upraviteljima servisa.

$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

Praktični vodič: Dodjela RBAC uloga upraviteljima servisa
Kontrola pristupa utemeljena na ulogama za centar za administratore servisa Power Platform
Referenca dozvole