Comparteix a través de


Autenticació

Aquest article ofereix una visió general de la configuració de Microsoft Entra per trucar a Power Platform API. Per accedir als recursos disponibles a través de l'API Power Platform, has d'obtenir un token portador de Microsoft Entra i enviar-lo com a capçalera juntament amb cada sol·licitud. Depenent del tipus d'identitat que donis suport (usuari vs. principal de servei), hi ha diferents fluxos per obtenir aquest token portador, tal com es descriu en aquest article.

Per obtenir un token portador amb els permisos correctes, completeu els passos següents:

  1. Crea un registre d'aplicació al teu usuari de Microsoft Entra
  2. Configurar permisos de l'API
  3. Configurar la plataforma i redirigir l'URI
  4. (Opcional) Configurar certificats i secrets
  5. Sol·licita un token d'accés

Pas 1. Crear un registre d'aplicació a l'inquilí Microsoft Entra

  1. Ves al portal Azure.
  2. Selecciona l'ID de Microsoft Entra a la part superior de la pàgina. Després selecciona + Afegeix>registre d'aplicació.
  3. Omple la pàgina de Registre una sol·licitud :
    1. Nom — Dóna a l'aplicació un nom reconeixible, com Power Platform Admin SDK.
    2. Tipus de comptes admesosSelecciona Només llogater únic - <nom> de la teva empresa.
    3. Redirigir l'URI — Deixa-ho de moment. Ho configures al Pas 3.
  4. Selecciona Registrar-se per crear l'aplicació. Un cop completat el registre, indica l'ID de l'Application (client) i l'ID del Directori (inquilí ) a la pàgina de visió general — necessitaràs ambdós valors més endavant.

També pots crear el registre utilitzant Azure CLI:

az login

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

L'ordre retorna un objecte JSON. Fixa't en el appId valor — aquest valor és el teu ID de client.

Pas 2. Configuració de permisos de l'API

En el teu nou registre d'aplicacions, ves a la pestanya Gestionar - Permisos de l'API . A la secció Configurar permisos , selecciona Afegeix un permís. Al quadre de diàleg, selecciona la pestanya les API que utilitza la meva organització i després busca Power Platform API. Potser veuràs diverses entrades amb un nom similar a aquest, així que assegura't d'utilitzar la que té el GUID 8578e004-a5c6-46e7-913e-12f58912df43.

Si no veus l'API Power Platform mostrada a la llista quan cerques per GUID, potser encara hi tens accés, però la visibilitat no es refresca. Per forçar una actualització, executeu l'script següent:

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

A partir d'aquí, selecciona els permisos que necessites. Aquests permisos s'agrupen per espais de noms. Dins d'un espai de noms, es veuen tipus de recursos i accions, com AppManagement.ApplicationPackages.Read, que atorga permisos de lectura per als paquets d'aplicació. Per a més informació, consulteu l'article de referència de Permís .

Nota

L'API de Power Platform utilitza només permisos delegats en aquest moment. Per a aplicacions que s'executen amb un context d'usuari, sol·licita permisos delegats utilitzant el paràmetre d'abast. Aquests permisos deleguen els privilegis de l'usuari iniciat sessió a la teva aplicació, de manera que pot actuar com a usuari quan crida punts finals de l'API de Power Platform.

Per a les identitats de principal de servei, no utilitzeu permisos d'aplicació. En comptes d'això, després de crear el registre de l'aplicació, assigna-li un rol RBAC per concedir permisos amb abast (com ara Col·laborador o Lector). Per a més informació, vegeu Tutorial: Assignar rols RBAC als principals de servei.

Després d'afegir els permisos necessaris a l'aplicació, selecciona Concedeix consentiment d'administrador per completar la configuració. En donar el consentiment de l'administrador, autorizes els permisos per a tots els usuaris del llogater perquè no se'ls demani un diàleg interactiu de consentiment la primera vegada que utilitzen la teva aplicació. Si prefereixes el consentiment interactiu per usuari, segueix la plataforma d'identitat de Microsoft i el flux de codi d'autorització OAuth 2.0.

També pots concedir el consentiment de l'administrador utilitzant Azure CLI:

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

Pas 3. Configurar la plataforma i redirigir l'URI

Els SDKs, scripts PowerShell i aplicacions d'escriptori que s'autenticen en nom d'un usuari requereixen un URI de redirecció perquè Microsoft Entra pugui retornar tokens a la teva aplicació després de l'autenticació.

  1. Dins del registre de l'aplicació, ves a Gestionar - Autenticació.

  2. Selecciona Afegeix un URI de redirecció i després tria aplicacions mòbils i d'escriptori.

  3. Selecciona el següent URI de redirecció integrat:

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

  4. Selecciona Configurar per desar.

També pots afegir l'URI de redirecció utilitzant 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

Configuració de client públic

A la secció de configuració avançada a la mateixa pestanya d'Autenticació , hi ha un interruptor per permetre fluxos públics de clients . Configureu aquest interruptor a només si teniu previst utilitzar el flux de Credencials de Contrasenya del Propietari de Recursos (ROPC), que envia un nom d'usuari i una contrasenya directament al cos de la sol·licitud del token.

Aquest flux no funciona per a comptes que tenen l'autenticació multifactor activada. Per a fluxos interactius de codi de navegador o dispositiu, no cal activar aquesta configuració.

Pas 4. (Opcional) Configurar certificats i secrets

Si la teva aplicació requereix recursos de lectura i escriptura per si mateixa, també coneguts com a principi de servei, hi ha dues maneres d'autenticar-se. Per utilitzar certificats, ves a Gestionar - Certificats i secrets. A la secció de Certificats , puja un certificat x509 que puguis utilitzar per autenticar-te.

L'altra manera és utilitzar la secció Secrets per generar un secret de client. Deseu el secret en una ubicació segura per utilitzar-lo amb les vostres necessitats d'automatització. Les opcions de certificat o secret et permeten autenticar-te amb Microsoft Entra i rebre un token per a aquest client, que passes a les APIs REST o als cmdlets de PowerShell.

Pas 5. Sol·licitar un testimoni d'accés

Pots obtenir un token portador d'accés de dues maneres: una és per al nom d'usuari i contrasenya, i l'altra és per als principals de servei.

Flux de nom d'usuari i contrasenya

Assegura't de llegir la secció de clients públics. A continuació, envieu una sol·licitud POST mitjançant HTTP a Microsoft Entra ID amb una càrrega útil de nom d'usuari i contrasenya.

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

L'exemple anterior conté marcadors de posició que pots recuperar de la teva aplicació client a Microsoft Entra ID. Reps una resposta que pots utilitzar per fer trucades posteriors a l'API de 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..."
}

Utilitzeu el valor access_token en les trucades posteriors a l'API del Power Platform amb la capçalera HTTP Autorització.

Flux de l'entitat de servei

Assegura't de llegir la secció de Configurar certificats i secrets . A continuació, envieu una sol·licitud POST mitjançant HTTP a ID amb una càrrega útil secreta Microsoft Entra del client. Aquest mètode d'autenticació sovint es coneix com a autenticació principal de servei.

Important

Abans d'utilitzar l'autenticació del principal de servei, completa els passos 1-4 anteriors en aquest article per crear i configurar el registre de la teva aplicació amb un certificat o secret de client. Després, assigna al principal del servei un rol RBAC per controlar el seu nivell d'accés. Per saber-ne més, vegeu el Tutorial: Assignar rols de RBAC als principals de servei.

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

L'exemple anterior conté marcadors de posició que pots recuperar de la teva aplicació client a Microsoft Entra ID. Reps una resposta que pots utilitzar per fer trucades posteriors a l'API de Power Platform.

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

Utilitzeu el valor access_token en les trucades posteriors a l'API del Power Platform amb la capçalera HTTP Autorització. Els permisos efectius del director de servei estan determinats pel rol RBAC que li són assignats. Per aprendre a assignar un rol, vegeu el Tutorial: Assignar rols RBAC als principals de servici.

Inici ràpid amb Azure CLI

El script següent crea un registre d'aplicació de punta a punta. Executa cada comanda en ordre i substitueix els valors provisionals pels teus propis.

# 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

Després d'executar aquestes ordres, pots utilitzar el registre de l'aplicació amb els SDKs, PowerShell o trucades REST directes. Per consultar els ID de permís del --api-permissions paràmetre, consulta la referència de Permisos.

Resolució de problemes comuns

Aquest error es produeix quan l'administrador no ha consentit els permisos de l'API per al registre de la teva aplicació. Ves a Registres >d'aplicacions, permisos de l'API de l'aplicació > i selecciona Concedeix el consentiment de l'administrador.

Alternativament, executeu:

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

Errors de "l'usuari no està assignat a un rol per a l'aplicació"

Aquest error significa que l'aplicació empresarial associada al registre de la teva aplicació té assignació d'usuari requeridaconfigurada com a Sí. Quan aquesta opció està activada, només els usuaris o grups assignats explícitament a l'aplicació poden iniciar sessió. Per corregir aquest error, pren una de les següents accions:

  • Ves a Microsoft Entra ID>Aplicacions> Enterprise Propietats de la teva aplicació > i configura Assignació requerida a Núm.
  • Afegeix els usuaris o grups de seguretat rellevants a Usuaris i grups.

Polítiques d'accés condicional que bloquegen l'accés

Si la teva organització aplica polítiques d'accés condicional, podrien bloquejar l'adquisició de tokens per al registre de la teva aplicació. Les causes més comunes inclouen requisits de compliment dels dispositius, restriccions de localització o polítiques basades en riscos. Treballa amb l'administrador de Microsoft Entra per excloure el registre de la teva aplicació de la política o assegurar-te que els clients compleixin els requisits de la política.

"Power Platform API" no es troba al selector d'API

Si cercar Power Platform API per nom o GUID al diàleg de permisos de l'API no dóna resultats, el principal de servei no es crea al teu tenant. Segueix els passos de refresca forçada al Pas 2 per crear-la.

Autenticar amb SDKs de Power Platform i PowerShell

Els exemples següents mostren com autenticar i fer una crida d'API d'exemple utilitzant cada SDK i PowerShell. Abans d'executar aquests exemples, completa els passos 1-3 anteriors en aquest article per crear i configurar el registre de la teva aplicació.

Autenticació interactiva (usuari delegat)

L'autenticació interactiva obre una finestra del navegador perquè l'usuari pugui iniciar sessió. Aquest flux funciona millor per a scripts de desenvolupador, eines d'administració i qualsevol escenari on hi hagi un usuari present.

# 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

Client confidencial (principal de servei)

L'autenticació de client confidencial utilitza un secret o certificat de client i no requereix interacció de l'usuari. Aquest flux d'autenticació és millor per a serveis en segon pla, pipelines i automatització.

Important

Abans d'utilitzar l'autenticació del principal de servei, completa els passos 1-4 anteriors per crear i configurar el registre de la teva aplicació amb un certificat o secret del client. Després, assigna al principal del servei un rol RBAC per controlar el seu nivell d'accés. Per a més informació, vegeu el Tutorial: Assignar rols RBAC als principals de servei.

$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

Tutorial: Assigna rols RBAC als principals de servei
Control d'accés basat en rols per al centre d'administració de Power Platform
Referència de permís