Preverjanje pristnosti

V tem članku je pregled namestitve storitve Microsoft Entra za klicanje API-ja platforme Power Platform. Če želite dostopati do virov, ki so na voljo prek API-ja platforme Power Platform, morate od Microsoft Entre pridobiti žeton za nosilnik in ga skupaj z vsako zahtevo poslati kot glavo. Odvisno od vrste identitete, ki jo podpirate (uporabnik v primerjavi z glavno ime storitve), obstajajo različni tokovi za pridobitev tega žetona za prinosnika, kot je opisano v tem članku.

Če želite pridobiti žeton za nositelja s pravilnimi dovoljenji, dokončajte te korake:

  1. Ustvarjanje registracije programa v najemniku storitve Microsoft Entra
  2. Konfiguracija dovoljenj za API
  3. Konfiguracija URI-ja platforme in preusmeritve
  4. (Izbirno) Konfiguracija potrdil in skrivnosti
  5. Zahtevanje žetona za dostop

1. korak Ustvarite registracijo aplikacije v svojem Microsoft Entra najemniku

  1. Pojdite v portal Azure .
  2. Na vrhu strani izberite MICROSOFT Entra ID . Nato izberite + Dodaj registracijo>aplikacije.
  3. Izpolnite stran Registriraj program :
    1. Ime – aplikaciji dodelite prepoznavno ime, na primer Power Platform Admin SDK.
    2. Podprte vrste računov – izberite Le en najemnik – <ime vašega podjetja>.
    3. URI preusmeritve – za zdaj preskočite to. Konfigurirate ga v 3. koraku.
  4. Izberite Registriraj, da ustvarite program. Ko je registracija dokončana, na strani s pregledom zabeležite ID aplikacije ( odjemalca ) in ID imenika (najemnika) – obe vrednosti potrebujete pozneje.

Registracijo lahko ustvarite tudi s storitvijo Azure CLI:

az login

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

Ukaz vrne predmet JSON. Upoštevajte appId vrednost – ta vrednost je ID odjemalca.

2. korak. Konfiguriranje dovoljenj API-ja

V novi registraciji aplikacije pojdite na zavihek Upravljaj – dovoljenja API . V razdelku Konfiguracija dovoljenj izberite Dodaj dovoljenje. V pogovornem oknu izberite zavihek API-ji, ki jih uporablja moja organizacija, in nato poiščite API za Power Platform. Morda boste videli več vnosov z imenom, podobnim temu, zato se prepričajte, da uporabljate vnos z GUID 8578e004-a5c6-46e7-913e-12f58912df43.

Če api za Power Platform ni prikazan na seznamu, ko iščete po GUID-u, imate morda še vedno dostop do vmesnika, vendar vidljivost ni osvežena. Če želite vsiliti osveževanje, zaženite ta 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"

Tukaj izberite dovoljenja, ki jih potrebujete. Ta dovoljenja so združeno po imenskih prostorih. V imenskem prostoru vidite vrste virov in dejanja, kot je AppManagement.ApplicationPackages.Read, ki daje dovoljenja za branje za pakete aplikacij. Če želite več informacij, glejte članek Sklic dovoljenja .

opomba,

API za Power Platform trenutno uporablja pooblaščena dovoljenja. Za programe, ki se izvajajo s kontekstom uporabnika, zahtevajte pooblaščena dovoljenja s parametrom obsega . Ta dovoljenja pravice vpisanega uporabnika pooblastijo za vašo aplikacijo, tako da lahko deluje kot uporabnik pri klicanju končnih točk API-ja platforme Power Platform.

Za glavne identitete storitve ne uporabljajte dovoljenj programa. Ko ustvarite registracijo aplikacije, ji namesto tega dodelite vlogo RBAC, da dodelite dovoljenja v obsegu (na primer sodelavec ali bralnik). Če želite več informacij, glejte Vadnica: Dodeljevanje vlog RBAC glavnim uporabnikom storitve.

Ko aplikaciji dodate zahtevana dovoljenja, izberite Podeli soglasje skrbnika, da dokončate namestitev. Če odobrite soglasje skrbnika, odobrite dovoljenja za vse uporabnike v najemniku, tako da niso pozvani k uporabi interaktivnega pogovornega okna za soglasje, ko prvič uporabljajo vašo aplikacijo. Če želite interaktivno soglasje na uporabnika, upoštevajte Navodila za Microsoftovo platformo za identitete in tok avtorizacijske kode OAuth 2.0.

Soglasje skrbnika lahko podelite tudi s storitvijo Azure CLI:

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

3. korak. Konfiguracija URI-ja platforme in preusmeritve

SDK-ji, skripti PowerShell in namizne aplikacije, ki preverijo pristnost v imenu uporabnika, zahtevajo URI preusmeritve, tako da microsoft Entra lahko vrne žetone nazaj v vašo aplikacijo po preverjanju pristnosti.

  1. V registraciji aplikacije pojdite na Upravljanje – preverjanje pristnosti.

  2. Izberite Dodaj URI preusmeritve, nato pa izberite Mobilni in namizni programi.

  3. Izberite ta vgrajeni URI preusmeritve:

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

  4. Izberite Konfiguriraj, če želite shraniti.

URI preusmeritve lahko dodate tudi s storitvijo 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

Nastavitev javnega odjemalca

V razdelku Dodatne nastavitve na istem zavihku Preverjanje pristnosti je preklopni gumb Dovoli pretoke javnih odjemalcev. To stikalo nastavite na Da le, če nameravate uporabiti tok poverilnic za geslo lastnika vira (ROPC), ki pošlje uporabniško ime in geslo neposredno v telesu zahteve žetona.

Ta tok ne deluje za račune, ki imajo omogočeno preverjanje pristnosti več modelov. Za tokove interaktivnega brskalnika ali kode naprave vam te nastavitve ni treba omogočiti.

4. korak. (Izbirno) Konfiguracija potrdil in skrivnosti

Če aplikacija zahteva branje in pisanje virov kot sama po sebi, imenovana tudi glavno ime storitve, obstajata dva načina za preverjanje pristnosti. Če želite uporabljati potrdila, pojdite na Upravljanje – potrdila in skrivnosti. V razdelku Potrdila prenesite potrdilo x509, ki ga lahko uporabite za preverjanje pristnosti.

Drugi način je uporaba razdelka Skrivnosti za ustvarjanje skrivnosti odjemalca. Shranite skrivnost na varnem mestu za uporabo s potrebami avtomatizacije. S potrdilom ali skrivnimi možnostmi lahko preverite pristnost s storitvijo Microsoft Entra in prejmete žeton za tega odjemalca, ki ga prenesete v vmesnike API za REST ali ukaze »cmdlet« lupine PowerShell.

5. korak: Zahteva za žeton dostopa

Žeton za prinosnika za dostop lahko pridobite na dva načina: en način je za uporabniško ime in geslo, drug način pa je za upravnike storitev.

Tok uporabniškega imena in gesla

Ne pozabite prebrati odseka javnega odjemalca. Nato pošljite zahtevo POST prek HTTP na Microsoft Entra ID z uporabniškim imenom in geslom.

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

V prejšnjem primeru so označbe mest, ki jih lahko pridobite iz odjemalske aplikacije v ID-ju Microsoft Entra. Prejmete odgovor, ki ga lahko uporabite za nadaljnje klice z vmesnikom API platforme 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..."
}

Uporabite vrednost access_token v nadaljnjih klicih v API Power Platform z glavo HTTP Avtorizacija.

Glavni tok storitve

Preberite razdelek Konfiguracija potrdil in skrivnosti . Nato pošljite zahtevo POST prek HTTP na Microsoft Entra ID s skrivno vsebino odjemalca. Ta način preverjanja pristnosti se pogosto imenuje glavno preverjanje pristnosti storitve.

Pomembno

Preden uporabite glavno preverjanje pristnosti storitve, dokončajte korake od 1 do 4, ki so opisani v tem članku, da ustvarite in konfigurirate registracijo programa s potrdilom ali skrivnostjo odjemalca. Nato dodelite glavnemu imenu storitve vlogo RBAC za nadzor njegove ravni dostopa. Če želite izvedeti več, glejte Vadnica: Dodeljevanje vlog RBAC glavnim uporabnikom storitve.

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

V prejšnjem primeru so označbe mest, ki jih lahko pridobite iz odjemalske aplikacije v ID-ju Microsoft Entra. Prejmete odgovor, ki ga lahko uporabite za nadaljnje klice z vmesnikom API platforme Power Platform.

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

Uporabite vrednost access_token v nadaljnjih klicih v API Power Platform z glavo HTTP Avtorizacija. Učinkovita dovoljenja glavnega imena storitve so določena z vlogo RBAC, ki ji je dodeljena. Če želite izvedeti, kako dodeliti vlogo, glejte Vadnica: Dodeljevanje vlog RBAC glavnim uporabnikom storitve.

Hiter začetek s storitvijo Azure CLI

Ta skript ustvari vse od konca registracije programa. Zaženite vsak ukaz v vrstnem redu in zamenjajte vrednosti označbe mesta s svojim.

# 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

Ko zaženete te ukaze, lahko uporabite registracijo aplikacije z SDK-jem, lupino PowerShell ali neposrednimi klici REST. Če želite iskati ID-je dovoljenj za --api-permissions parameter, si oglejte sklic na dovoljenje.

Odpravljanje pogostih težav

Do te napake pride, če skrbnik ni privolil v dovoljenja API-ja za vašo registracijo aplikacije. Pojdite na Registracija aplikacij za dovoljenja> api-ja >za aplikacijo in izberite Podelitev soglasja skrbnika.

Lahko pa zaženete:

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

Napake »Uporabnik ni dodeljen vlogi za program«

Ta napaka pomeni, da je za aplikacijo podjetja, povezano z registracijo aplikacije, zahtevana dodelitev uporabnika nastavljena na Da. Če je ta nastavitev omogočena, se lahko vpišete le uporabniki ali skupine, ki so izrecno dodeljene programu. Če želite odpraviti to napako, naredite nekaj od tega:

  • Odprite aplikacije Microsoft Entra ID>Enterprise, lastnosti> aplikacije >in nastavite dodelitev, ki je zahtevana na Ne.
  • Dodajte ustrezne uporabnike ali varnostne skupine v razdelku Uporabniki in skupine.

Pravilniki o pogojnem dostopu, ki blokirajo dostop

Če vaša organizacija uporablja pravilnike o pogojnem dostopu, lahko blokirajo pridobitev žetona za registracijo aplikacije. Pogosti vzroki so zahteve glede skladnosti s predpisi naprave, omejitve lokacije ali pravilniki, ki temeljijo na tveganju. Če želite izključiti registracijo aplikacije iz pravilnika ali zagotoviti, da odjemalci izpolnjujejo zahteve pravilnika, se obrnite na skrbnika za Microsoft Entra.

»API-ja za Power Platform« ni bilo mogoče najti v izbirniku API-ja

Če iskanje API-ja za Power Platform po imenu ali GUID-u v pogovornem oknu z dovoljenji API-ja ne vrne nobenih rezultatov, upravnik varnosti storitve ni ustvarjen v vašem najemniku. Če ga želite ustvariti, upoštevajte navodila za vsiljeno osveževanje v 2 . koraku.

Preverjanje pristnosti z SDK-ji za Power Platform in ogrodjem PowerShell

V spodnjih primerih je prikazano, kako lahko preverite pristnost in opravite vzorčni klic API z vsakim SDK-jem in lupino PowerShell. Preden zaženete te primere, dokončajte korake od 1 do 3 v tem članku, da ustvarite in konfigurirate registracijo aplikacije.

Interaktivno preverjanje pristnosti (pooblaščeni uporabnik)

Interaktivno preverjanje pristnosti odpre okno brskalnika, v ki ga uporabnik lahko vpiše. Ta tok je najprimernejši za skripte za razvijalce, skrbniška orodja in kateri koli scenarij, kjer je prisoten uporabnik.

# 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

Zaupni odjemalec (glavno ime storitve)

Preverjanje pristnosti zaupnega odjemalca uporablja skrivnost odjemalca ali potrdilo in ne zahteva interakcije uporabnika. Ta tok preverjanja pristnosti je najprimernejši za storitve v ozadju, cevovode in avtomatizacijo.

Pomembno

Preden uporabite glavno preverjanje pristnosti storitve, dokončajte zgornje korake, da ustvarite in konfigurirate registracijo programa s potrdilom ali skrivnostjo odjemalca. Nato dodelite glavnemu imenu storitve vlogo RBAC za nadzor njegove ravni dostopa. Če želite več informacij, glejte Vadnica : Dodeljevanje vlog RBAC glavnim uporabnikom storitve.

$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

Vadnica: Dodeljevanje vlog RBAC glavnim uporabnikom storitve
Nadzor dostopa, ki temelji na vlogah, za skrbniško središče platforme Power Platform
Sklic dovoljenja