Bendrinti naudojant


Autentifikavimas

Šiame straipsnyje pateikiama "Microsoft Entra" sąrankos, skirtos iškviesti "Power Platform" API, apžvalga. Norėdami pasiekti išteklius, pasiekiamus per "Power Platform" API, turite gauti lokio atpažinimo ženklą iš "Microsoft Entra" ir išsiųsti jį kaip antraštę kartu su kiekviena užklausa. Atsižvelgiant į tapatybės tipą, kurį palaikote (vartotojas ir pagrindinis tarnybos pavadinimas), yra skirtingų srautų šiam lokio atpažinimo ženklui gauti, kaip aprašyta šiame straipsnyje.

Norėdami gauti lokio atpažinimo ženklą su tinkamomis teisėmis, atlikite šiuos veiksmus:

  1. Programos registracijos kūrimas "Microsoft Entra" nuomotojuje
  2. Konfigūruoti API teises
  3. Konfigūruoti platformos ir peradresavimo URI
  4. (Pasirinktinai) Sertifikatų ir paslapčių konfigūravimas
  5. Prieigos atpažinimo ženklo užklausa

1 veiksmas. Taikomosios programos registracijos kūrimas nuomotojuje Microsoft Entra

  1. Eikite į portalą Azure.
  2. Puslapio viršuje pasirinkite "Microsoft Entra" ID . Tada pasirinkite + Įtraukti>taikomosios programos registraciją.
  3. Užpildykite puslapį Registruoti programą :
    1. Pavadinimas – suteikite programai atpažįstamą pavadinimą, pvz., "Power Platform" administravimo SDK.
    2. Palaikomi paskyrų tipai – pasirinkite Tik vienas nuomotojas – <jūsų įmonės pavadinimas>.
    3. Peradresavimo URI – kol kas šį praleiskite. Konfigūruojate atlikdami 3 veiksmą.
  4. Pasirinkite Registruoti , kad sukurtumėte taikomąją programą. Kai registracija bus baigta, atkreipkite dėmesį į programos (kliento) ID ir katalogo (nuomotojo) ID iš apžvalgos puslapio – vėliau reikės abiejų reikšmių.

Taip pat galite sukurti registraciją naudodami "Azure" CLI:

az login

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

Komanda pateikia JSON objektą. Įsidėmėkite appId reikšmę – ši reikšmė yra jūsų kliento ID.

2 veiksmas. Konfigūruoti API teises

Naujoje taikomosios programos registracijoje eikite į skirtuką Valdymas – API teisės . Dalyje Konfigūruoti teises pasirinkite Įtraukti teisę. Dialogo lange pasirinkite skirtuką API, kurią naudoja mano organizacija , tada ieškokite "Power Platform" API. Galite matyti kelis įrašus, kurių pavadinimas panašus į šį, todėl įsitikinkite, kad naudojate tą įrašą su GUID 8578e004-a5c6-46e7-913e-12f58912df43.

Jei ieškant pagal GUID sąraše nerodoma "Power Platform" API, vis tiek galite turėti prieigą prie jos, bet matomumas neatnaujintas. Norėdami priverstinai atnaujinti, vykdykite šį scenarijų:

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

Čia pasirinkite reikiamas teises. Šios teisės grupuojamos pagal vardų sritis. Vardų srityje matote išteklių tipus ir veiksmus, pvz., AppManagement.ApplicationPackages.Read, kurie suteikia programų paketų skaitymo teises. Daugiau informacijos žr. straipsnyje Teisių nuoroda .

Pastaba.

"Power Platform" API naudoja įgaliotas teises tik šiuo metu. Programose, kurios veikia su vartotojo kontekstu, paprašykite įgaliotųjų teisių naudodami aprėpties parametrą. Šios teisės suteikia jūsų taikomajai programai prisijungusio vartotojo teises, kad jis galėtų veikti kaip vartotojas iškviečiant "Power Platform" API galinius punktus.

Pagrindinių tarnybos tapatybių atveju nenaudokite programos teisių. Užuot sukūrę taikomosios programos registraciją, priskirkite jai RBAC vaidmenį, kad suteiktumėte aprėpties teises (pvz., Bendraautoriui arba Skaitytuvei). Daugiau informacijos žr. Vadovėlis: RBAC vaidmenų priskyrimas pagrindiniams tarnybos nariams.

Įtraukę reikiamas teises į programą, pasirinkite Suteikti administratoriaus sutikimą , kad užbaigtumėte sąranką. Suteikdami administratoriaus sutikimą, suteikiate teises visiems nuomotojo vartotojams, kad jie nebūtų raginami naudoti interaktyvų sutikimo dialogo langą, kai pirmą kartą naudoja jūsų taikomąją programą. Jei norite interaktyvaus sutikimo kiekvienam vartotojui, sekite "Microsoft" tapatybės platformą ir "OAuth 2.0" autorizavimo kodo srautą.

Taip pat galite suteikti administratoriaus sutikimą naudodami "Azure" CLI:

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

3 veiksmas. Konfigūruoti platformos ir peradresavimo URI

SDK, "PowerShell" scenarijai ir kompiuterio programos, kurios autentifikuojasi vartotojo vardu, reikalauja peradresavimo URI, kad "Microsoft Entra" galėtų grąžinti atpažinimo ženklus į jūsų programą po autentifikavimo.

  1. Taikomosios programos registracijoje eikite į Valdyti – autentifikavimas.

  2. Pasirinkite Įtraukti peradresavimo URI, tada pasirinkite Mobiliųjų įrenginių ir darbalaukio taikomosios programos.

  3. Pasirinkite šį įtaisytąjį peradresavimo URI:

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

  4. Pasirinkite Konfigūruoti , kad įrašytumėte.

Taip pat galite įtraukti peradresavimo URI naudodami "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

Viešojo kliento parametras

To paties skirtuko Autentifikavimas dalyje Išplėstiniai parametrai yra perjungiklis Leisti viešųjų klientų srautus. Nustatykite šį perjungiklį į Taip tik jei planuojate naudoti išteklių savininko slaptažodžio kredencialų (ROPC) srautą, kuris siunčia vartotojo vardą ir slaptažodį tiesiai į atpažinimo ženklo užklausos tekstą.

Šis srautas neveikia paskyrose, kuriose įgalintas kelių dalių autentifikavimas. Jei norite naudoti interaktyvią naršyklę arba įrenginio kodo srautus, šio parametro įgalinti nereikia.

4 veiksmas. (Pasirinktinai) Sertifikatų ir paslapčių konfigūravimas

Jei jūsų programėlei reikia skaitymo ir rašymo išteklių, taip pat vadinamų pagrindiniu tarnybos nariu, autentifikuoti galima dviem būdais. Norėdami naudoti sertifikatus, eikite į Tvarkyti – sertifikatai ir paslaptys. Dalyje Sertifikatai nusiųskite x509 sertifikatą, kurį galite naudoti autentifikuoti.

Kitas būdas yra naudoti skyrių Slaptieji raktai kliento slaptajam raktui generuoti. Įrašykite slaptąjį raktą saugioje vietoje ir naudokite jį pagal savo automatizavimo poreikius. Sertifikato arba slaptos parinktys leidžia autentifikuoti naudojant "Microsoft Entra" ir gauti šio kliento atpažinimo ženklą, kurį pereisite prie REST API arba "PowerShell" cmdlet.

5 veiksmas. Pateikti prieigos atpažinimo ženklo užklausą

Prieigos atpažinimo ženklą galite gauti dviem būdais: vienas būdas yra vartotojo vardas ir slaptažodis, o kitas būdas – pagrindiniams paslaugų teikėjams.

Vartotojo vardo ir slaptažodžio srautas

Būtinai perskaitykite viešojo kliento sekciją. Tada išsiųskite POST užklausą per HTTP į Microsoft Entra ID su vartotojo vardu ir slaptažodžiu naudingoji apkrova.

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

Ankstesniame pavyzdyje yra vietos rezervavimo ženklų, kuriuos galite gauti iš savo kliento programos naudodami "Microsoft Entra" ID. Gausite atsakymą, kurį naudodami galėsite vėliau skambinti į "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..."
}

Naudokite reikšmę access_token tolesniems „Power Platform” API iškvietimams atlikti naudodami Autorizavimo HTTP antraštę.

Pagrindinis paslaugos srautas

Būtinai perskaitykite skyrių Sertifikatų ir paslapčių konfigūravimas . Tada išsiųskite POST užklausą per HTTP į Microsoft Entra ID su kliento slapta naudinga apkrova. Šis autentifikavimo metodas dažnai vadinamas pagrindinio tarnybos autentifikavimo metodu.

Svarbu

Prieš naudodami pagrindinį tarnybos autentifikavimą, atlikite anksčiau šiame straipsnyje aprašytus 1–4 veiksmus, kad sukurtumėte ir sukonfigūruotumėte taikomosios programos registraciją naudodami sertifikatą arba kliento slaptą informaciją. Tada priskirkite pagrindiniam tarnybos nariui RBAC vaidmenį, kad galėtumėte valdyti prieigos lygį. Norėdami sužinoti daugiau, žr . Vadovėlis: RBAC vaidmenų priskyrimas pagrindiniams tarnybos nariams.

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

Ankstesniame pavyzdyje yra vietos rezervavimo ženklų, kuriuos galite gauti iš savo kliento programos naudodami "Microsoft Entra" ID. Gausite atsakymą, kurį naudodami galėsite vėliau skambinti į "Power Platform" API.

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

Naudokite reikšmę access_token tolesniems „Power Platform” API iškvietimams atlikti naudodami Autorizavimo HTTP antraštę. Pagrindinės tarnybos pagrindinės teisės nustatomos pagal jam priskirtą RBAC vaidmenį. Norėdami sužinoti, kaip priskirti vaidmenį, žr. Vadovėlis: RBAC vaidmenų priskyrimas pagrindiniams tarnybos nariams.

Greitas pasirengimas darbui su "Azure" CLI

Šis scenarijus sukuria taikomosios programos registraciją iki galo. Kiekvieną komandą vykdykite eilės tvarka ir pakeiskite vietos rezervavimo ženklo reikšmes savomis.

# 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

Paleidę šias komandas, galite naudoti savo taikomosios programos registraciją SU SDKs, "PowerShell" arba tiesioginiais REST skambučiais. Norėdami ieškoti parametro --api-permissions teisių ĮD, žr. teisių nuorodą.

Dažniausiai pasitaikančių problemų šalinimas

Ši klaida įvyksta, kai administratorius nesutiko su taikomosios programos registracijos API teisėmis. Eikite į Taikomosios programos registracijas> savo taikomosios programos >API teises ir pasirinkite Suteikti administratoriaus sutikimą.

Arba paleiskite:

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

Klaidos "Vartotojui nepriskirtas programos vaidmuo"

Ši klaida reiškia, kad įmonės taikomojoje programoje, susietose su taikomosios programos registracija, vartotojo priskyrimas nustatytas kaip Taip. Įgalinus šį parametrą, prisijungti gali tik vartotojai arba grupės, aiškiai priskirti taikomajai programai. Norėdami ištaisyti šią klaidą, atlikite vieną iš šių veiksmų:

  • Eikite į "Microsoft Entra ID>Enterprise" taikomąsias programas> savo taikomosios programos >ypatybės ir nustatykite Priskyrimas būtinas į Ne.
  • Įtraukite atitinkamus vartotojus arba saugos grupes dalyje Vartotojai ir grupės.

Sąlyginės prieigos strategijos blokuoja prieigą

Jei jūsų organizacija taiko sąlyginės prieigos strategijas, jos gali blokuoti atpažinimo ženklų gavimą jūsų taikomosios programos registracijai. Dažniausios priežastys yra įrenginio atitikties reikalavimai, vietos apribojimai arba rizika pagrįstos strategijos. Dirbkite su savo "Microsoft Entra" administratoriumi, kad neįtrauktumėte taikomosios programos registracijos į strategiją arba užtikrintumėte, kad klientai atitiktų strategijos reikalavimus.

API parinkikikyje nerasta "Power Platform API"

Jei ieškant "Power Platform" API pagal pavadinimą arba GUID API teisių dialogo lange nepateikiama jokių rezultatų, pagrindinis tarnybos pavadinimas nėra sukuriamas jūsų nuomotojuje. Atlikite 2 veiksme nurodytus priverstinio atnaujinimo veiksmus, kad jį sukurtumėte.

Autentifikuoti naudojant "Power Platform" SDK ir "PowerShell"

Šiuose pavyzdžiuose parodyta, kaip autentifikuoti ir atlikti API pavyzdžio iškvietimą naudojant kiekvieną SDK ir "PowerShell". Prieš vykdydami šiuos pavyzdžius, atlikite anksčiau šiame straipsnyje aprašytus 1–3 veiksmus, kad sukurtumėte ir sukonfigūruotumėte savo taikomosios programos registraciją.

Interaktyvus autentifikavimas (įgaliotasis vartotojas)

Interaktyvusis autentifikavimas atidaro naršyklės langą, kuriame vartotojas gali prisijungti. Šis srautas geriausiai tinka kūrėjų scenarijams, administravimo įrankiams ir bet kokiam scenarijui, kuriame yra vartotojas.

# 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

Konfidencialus klientas (pagrindinis tarnybos pavadinimas)

Slaptas kliento autentifikavimas naudoja kliento slaptą arba sertifikatą ir nereikalauja vartotojo sąveikos. Šis autentifikavimo srautas geriausiai tinka foniniams tarnyboms, srautams ir automatizavimui.

Svarbu

Prieš naudodami pagrindinį tarnybos autentifikavimą, atlikite anksčiau nurodytus 1–4 veiksmus, kad sukurtumėte ir sukonfigūruotumėte taikomosios programos registraciją naudodami sertifikatą arba kliento slaptą informaciją. Tada priskirkite pagrindiniam tarnybos nariui RBAC vaidmenį, kad galėtumėte valdyti prieigos lygį. Daugiau informacijos žr. Vadovėlis: RBAC vaidmenų priskyrimas pagrindiniams tarnybos nariams.

$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

Vadovėlis: RBAC vaidmenų priskyrimas pagrindiniams tarnybos nariams
Vaidmenimis pagrįstas prieigos valdymas "Power Platform" administravimo centre
Teisių nuoroda