Autentifikācija

Šajā rakstā ir sniegts pārskats par Microsoft Entra iestatīšanu Power Platform API izsaukšanai. Lai piekļūtu resursiem, kas pieejami, izmantojot Power Platform API, jums ir jāsaņem uzrādītāja marķieris no Microsoft Entra un jānosūta tas kā galvene kopā ar katru pieprasījumu. Atkarībā no atbalstītā identitātes tipa (lietotājs un pakalpojuma principāls) ir dažādas plūsmas, lai iegūtu šo uzrādītāja marķieri, kā aprakstīts šajā rakstā.

Lai iegūtu uzrādītāja marķieru ar pareizām atļaujām, veiciet tālāk norādītās darbības.

  1. Lietojumprogrammas reģistrācijas izveide savā Microsoft Entra nomniekā
  2. API atļauju konfigurēšana
  3. Konfigurējiet platformu un novirzījiet URI
  4. (Pēc izvēles) Sertifikātu un noslēpumu konfigurēšana
  5. Piekļuves marķiera pieprasīšana

1. darbība. Lietojumprogrammas reģistrācijas izveide nomniekā Microsoft Entra

  1. Dodieties uz Azure portālu.
  2. Lapas augšdaļā atlasiet Microsoft Entra ID . Pēc tam atlasiet + Pievienot>lietotnes reģistrāciju.
  3. Aizpildiet lapu Reģistrēt pieteikumu :
    1. Nosaukums — piešķiriet lietojumprogrammai atpazīstamu nosaukumu, piemēram, Power Platform Admin SDK.
    2. Atbalstītie kontu tipi — atlasiet Tikai viens nomnieks — <jūsu uzņēmuma nosaukums>.
    3. Novirzīt URI - Pagaidām izlaidiet šo. Konfigurējiet to 3. darbībā.
  4. Atlasiet Reģistrēties , lai izveidotu lietojumprogrammu. Kad reģistrācija ir pabeigta, pārskata lapā atzīmējiet lietojumprogrammas (klienta) ID un direktorija (nomnieka) ID — abas vērtības būs nepieciešamas vēlāk.

Reģistrāciju var izveidot arī, izmantojot Azure CLI:

az login

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

Komanda atgriež JSON objektu. Ņemiet vērā appId vērtību — šī vērtība ir jūsu klienta ID.

2. darbība. API atļauju konfigurēšana

Reģistrējoties jaunajā lietotnē, atveriet cilni Pārvaldīt - API atļaujas . Sadaļā Atļauju konfigurēšana atlasiet Pievienot atļauju. Dialoglodziņā atlasiet cilni API, ko izmanto mana organizācija , un pēc tam meklējiet Power Platform API. Iespējams, redzēsit vairākus ierakstus ar līdzīgu nosaukumu, tāpēc noteikti izmantojiet ierakstu ar GUID 8578e004-a5c6-46e7-913e-12f58912df43.

Ja, meklējot pēc GUID, sarakstā neredzat Power Platform API, iespējams, joprojām varat tai piekļūt, bet redzamība netiek atsvaidzināta. Lai piespiestu atsvaidzināšanu, palaidiet šādu 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"

Šeit atlasiet nepieciešamās atļaujas. Šīs atļaujas ir sagrupētas pēc nosaukumvietām. Nosaukumvietā ir redzami resursu tipi un darbības, piemēram, AppManagement.ApplicationPackages.Read, kas piešķir lasīšanas atļaujas lietojumprogrammu pakotnēm. Papildinformāciju skatiet rakstā Atļauju atsauce .

Piezīmes

Power Platform API šobrīd izmanto tikai deleģētās atļaujas. Lietojumprogrammām, kas darbojas ar lietotāja kontekstu, pieprasiet deleģētās atļaujas, izmantojot tvēruma parametru. Šīs atļaujas deleģē pierakstītā lietotāja privilēģijas jūsu lietojumprogrammai, lai tā varētu darboties kā lietotājs, izsaucot Power Platform API galapunktus.

Pakalpojuma galvenajām identitātēm neizmantojiet lietojumprogrammu atļaujas. Tā vietā pēc lietotnes reģistrācijas izveides piešķiriet tai RBAC lomu, lai piešķirtu tvēruma atļaujas (piemēram, līdzstrādnieks vai lasītājs). Papildinformāciju skatiet sadaļā Apmācība: RBAC lomu piešķiršana pakalpojumu vadītājiem.

Kad lietojumprogrammai esat pievienojis nepieciešamās atļaujas, atlasiet Piešķirt administratora piekrišanu , lai pabeigtu iestatīšanu. Piešķirot administratora piekrišanu, jūs autorizējat atļaujas visiem nomnieka lietotājiem, lai viņiem netiktu piedāvāts interaktīvs piekrišanas dialoglodziņš, pirmo reizi lietojot jūsu programmu. Ja vēlaties interaktīvu piekrišanu katram lietotājam, sekojiet Microsoft identitātes platformai un OAuth 2.0 autorizācijas koda plūsmai.

Varat arī piešķirt administratora piekrišanu, izmantojot Azure CLI:

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

3. darbība. Konfigurējiet platformu un novirzījiet URI

SDK, PowerShell skriptiem un datora lietojumprogrammām, kas autentificējas lietotāja vārdā, ir nepieciešams novirzīšanas URI, lai Microsoft Entra pēc autentifikācijas varētu atgriezt marķierus atpakaļ jūsu lietojumprogrammā.

  1. Reģistrējoties lietotnei, dodieties uz Pārvaldīt - Autentifikācija.

  2. Atlasiet Pievienot novirzīšanas URI un pēc tam izvēlieties Mobilās un datora lietojumprogrammas.

  3. Atlasiet šādu iebūvēto novirzīšanas URI:

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

  4. Atlasiet Konfigurēt , lai saglabātu.

Varat arī pievienot novirzīšanas URI, izmantojot 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

Publiskā klienta iestatījums

Tās pašas cilnes Autentifikācija sadaļā Papildu iestatījumi ir redzams pārslēgs Atļaut publiskās klientu plūsmas. Iestatiet šo pārslēgu uz tikai tad, ja plānojat izmantot resursa īpašnieka paroles akreditācijas datu (ROPC) plūsmu, kas nosūta lietotājvārdu un paroli tieši marķiera pieprasījuma pamattekstā.

Šī plūsma nedarbojas kontos, kuros ir iespējota daudzfaktoru autentifikācija. Interaktīvām pārlūkprogrammas vai ierīces kodu plūsmām šis iestatījums nav jāiespējo.

4. darbība. (Pēc izvēles) Sertifikātu un noslēpumu konfigurēšana

Ja jūsu programmai ir nepieciešami lasīšanas un rakstīšanas resursi, kas tiek dēvēti arī par pakalpojuma galveno, ir divi autentifikācijas veidi. Lai izmantotu sertifikātus, dodieties uz Pārvaldīt - sertifikāti un noslēpumi. Sadaļā Sertifikāti augšupielādējiet x509 sertifikātu, ko varat izmantot autentifikācijai.

Ja vēlaties, varat izmantot sadaļu Slepenā informācija, lai ģenerētu klienta slepeno informāciju. Saglabājiet slepeno informāciju drošā vietā lietošanai ar savām automatizācijas vajadzībām. Sertifikāta vai slepenās opcijas ļauj autentificēties ar Microsoft Entra un saņemt šī klienta marķieri, ko nododat REST API vai PowerShell cmdlet.

5. darbība. Pieprasiet piekļuves marķieri

Piekļuves uzrādītāja marķieru var iegūt divos veidos: viens veids ir lietotājvārds un parole, bet otrs veids ir pakalpojuma vadītājiem.

Lietotājvārda un paroles plūsma

Noteikti izlasiet publisko klientu sadaļu. Pēc tam nosūtiet POST pieprasījumu, izmantojot HTTP uz Microsoft Entra ID, izmantojot lietotājvārdu un paroli.

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

Iepriekšējā piemērā ir vietturi, kurus var izgūt no klienta lietojumprogrammas Microsoft Entra ID. Jūs saņemat atbildi, kuru varat izmantot, lai veiktu turpmākos zvanus uz 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..."
}

Izmantojiet šo access_token vērtību turpmākajos izsaukumos uz Power Platform API, izmantojot Autorizācijas HTTP galveni.

Pakalpojuma galvenā plūsma

Noteikti izlasiet sadaļu Sertifikātu un noslēpumu konfigurēšana . Pēc tam nosūtiet POST pieprasījumu, izmantojot HTTP uz Microsoft Entra ID ar klienta slepeno derīgo kravu. Šo autentifikācijas metodi bieži dēvē par pakalpojuma galveno autentifikāciju.

Svarīgi

Pirms pakalpojuma galvenās autentifikācijas izmantošanas veiciet iepriekš šajā rakstā norādītās 1.–4. darbības, lai izveidotu un konfigurētu programmas reģistrāciju ar sertifikātu vai klienta noslēpumu. Pēc tam piešķiriet pakalpojuma vadītājam RBAC lomu, lai kontrolētu tā piekļuves līmeni. Papildinformāciju skatiet sadaļā Apmācība: RBAC lomu piešķiršana pakalpojumu vadītājiem.

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

Iepriekšējā piemērā ir vietturi, kurus var izgūt no klienta lietojumprogrammas Microsoft Entra ID. Jūs saņemat atbildi, kuru varat izmantot, lai veiktu turpmākos zvanus uz Power Platform API.

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

Izmantojiet šo access_token vērtību turpmākajos izsaukumos uz Power Platform API, izmantojot Autorizācijas HTTP galveni. Pakalpojuma direktora faktiskās atļaujas nosaka tam piešķirtā RBAC loma. Lai uzzinātu, kā piešķirt lomu, skatiet sadaļu Apmācība: RBAC lomu piešķiršana pakalpojumu vadītājiem.

Ātra pamācība ar Azure CLI

Tālāk norādītais skripts izveido programmas reģistrāciju no gala līdz galam. Palaidiet katru komandu secībā un aizstājiet viettura vērtības ar savām.

# 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

Pēc šo komandu izpildes varat izmantot programmas reģistrāciju ar SDK, PowerShell vai tiešajiem REST zvaniem. Lai uzmeklētu parametra --api-permissions atļauju ID, skatiet sadaļu Atļaujas atsauce.

Bieži sastopamu problēmu novēršana

Šī kļūda rodas, ja administrators nav piekritis API atļaujām jūsu lietotnes reģistrācijā. Atveriet sadaļu Lietotņu> reģistrācijas savas lietotnes >API atļaujas un atlasiet Piešķirt administratora piekrišanu.

Alternatīvi palaidiet:

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

Kļūdas "Lietotājam nav piešķirta lietojumprogrammas loma"

Šī kļūda nozīmē, ka uzņēmuma lietojumprogrammai, kas saistīta ar jūsu lietotnes reģistrāciju, ir iestatīta opcija Lietotāja piešķiršana uz . Ja šis iestatījums ir iespējots, var pierakstīties tikai lietotāji vai grupas, kas tieši piešķirtas lietojumprogrammai. Lai novērstu šo kļūdu, veiciet kādu no šīm darbībām:

  • Dodieties uz Microsoft Entra ID>Enterprise lietojumprogrammām> savas programmas >rekvizīti un iestatiet Uzdevums nepieciešams uz .
  • Pievienojiet atbilstošos lietotājus vai drošības grupas sadaļā Lietotāji un grupas.

Nosacītas piekļuves politikas, kas bloķē piekļuvi

Ja jūsu organizācija lieto nosacītas piekļuves politikas, tā var bloķēt pilnvarnieku iegūšanu jūsu lietotnes reģistrācijai. Biežākie iemesli ir ierīču atbilstības prasības, atrašanās vietas ierobežojumi vai uz risku balstītas politikas. Sadarbojieties ar Microsoft Entra administratoru, lai izslēgtu programmas reģistrāciju no politikas vai nodrošinātu, ka klienti atbilst politikas prasībām.

"Power Platform API" nav atrasts API atlasītājā

Ja, meklējot Power Platform API pēc nosaukuma vai GUID API atļauju dialogā, netiek iegūti rezultāti, pakalpojuma pamats jūsu nomniekā nav izveidots. Izpildiet 2. darbībā norādītās piespiedu atsvaidzināšanas darbības, lai to izveidotu.

Autentifikācija, izmantojot Power Platform SDK un PowerShell

Tālāk sniegtajos piemēros ir parādīts, kā autentificēt un veikt API izsaukuma paraugu, izmantojot katru SDK un PowerShell. Pirms šo piemēru izpildes izpildiet iepriekš šajā rakstā norādītās 1.–3. darbības, lai izveidotu un konfigurētu programmas reģistrāciju.

Interaktīvā autentifikācija (deleģētais lietotājs)

Interaktīvā autentifikācija atver pārlūkprogrammas logu, kurā lietotājs var pierakstīties. Šī plūsma vislabāk darbojas izstrādātāju skriptiem, administrēšanas rīkiem un jebkuram scenārijam, kurā ir lietotājs.

# 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

Konfidenciāls klients (pakalpojuma vadītājs)

Konfidenciālā klienta autentifikācija izmanto klienta noslēpumu vai sertifikātu, un tai nav nepieciešama lietotāja mijiedarbība. Šī autentifikācijas plūsma ir vispiemērotākā fona pakalpojumiem, cauruļvadiem un automatizācijai.

Svarīgi

Pirms pakalpojuma pamatautentifikācijas izmantošanas veiciet iepriekš norādītās 1.–4. darbības, lai izveidotu un konfigurētu programmas reģistrāciju ar sertifikātu vai klienta noslēpumu. Pēc tam piešķiriet pakalpojuma vadītājam RBAC lomu, lai kontrolētu tā piekļuves līmeni. Plašāku informāciju skatiet sadaļā Apmācība: RBAC lomu piešķiršana pakalpojumu vadītājiem.

$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

Apmācība: RBAC lomu piešķiršana pakalpojumu vadītājiem
Lomu piekļuves kontrole Power Platform administrēšanas centram
Atsauce uz atļauju