Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se proporciona información general sobre la configuración de Microsoft Entra para llamar a Power Platform API. Para acceder a los recursos disponibles a través de Power Platform API, debe obtener un token de portador de Microsoft Entra y enviarlo como encabezado junto con cada solicitud. En función del tipo de identidad que admita (usuario frente a entidad de servicio) hay diferentes flujos para obtener este token de portador, como se describe en este artículo.
Para obtener un token de portador con los permisos correctos, complete los pasos siguientes:
- Creación de un registro de aplicación en el inquilino de Microsoft Entra
- Configuración de permisos de API
- Configuración de la plataforma y el URI de redirección
- (Opcional) Configuración de certificados y secretos
- Solicitud de un token de acceso
Paso 1. Crear un registro de la aplicación en el inquilino de Microsoft Entra
- Vaya al portal Azure.
- Seleccione Microsoft Entra ID en la parte superior de la página. A continuación, seleccione + Agregar>registro de aplicaciones.
- Rellene la página Registrar una aplicación :
- Nombre : asigne a la aplicación un nombre reconocible, como el SDK de administración de Power Platform.
- Tipos de cuenta admitidos: seleccione Solo inquilino único: <el nombre> de la empresa.
- URI de redirección : omita esto por ahora. Se configura en el paso 3.
- Seleccione Registrar para crear la aplicación. Una vez completado el registro, anote el identificador de aplicación (cliente) y el identificador de directorio (inquilino) de la página de información general; necesitará ambos valores más adelante.
También puede crear el registro mediante la CLI de Azure:
az login
az ad app create --display-name "Power Platform Admin SDK" --sign-in-audience AzureADMyOrg
El comando devuelve un objeto JSON. Anote el appId valor : este valor es el identificador de cliente.
Paso 2. Configurar permisos de API
En el nuevo registro de aplicaciones, vaya a la pestaña Administrar: permisos de API . En la sección Configurar permisos , seleccione Agregar un permiso. En el cuadro de diálogo, seleccione la pestaña API que usa mi organización y busque Power Platform API. Es posible que vea varias entradas con un nombre similar a esta, por lo que debe asegurarse de usar la con el GUID 8578e004-a5c6-46e7-913e-12f58912df43.
Si no ve Power Platform API mostrada en la lista al buscar por GUID, es posible que tenga acceso a ella, pero la visibilidad no se actualiza. Para forzar una actualización, ejecute el siguiente script:
#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"
Desde aquí, seleccione los permisos que necesita. Estos permisos se agrupan por espacios de nombres. Dentro de un espacio de nombres, verá los tipos de recursos y las acciones, como AppManagement.ApplicationPackages.Read, que proporciona permisos de lectura para los paquetes de aplicación. Para obtener más información, consulte el artículo Referencia de permisos .
Nota
Power Platform API solo usa permisos delegados en este momento. En el caso de las aplicaciones que se ejecutan con un contexto de usuario, solicite permisos delegados mediante el parámetro scope . Estos permisos delegan los privilegios del usuario que ha iniciado sesión en la aplicación, por lo que puede actuar como usuario al llamar a los puntos de conexión de Power Platform API.
En el caso de las identidades de entidad de servicio, no use permisos de aplicación. En su lugar, después de crear el registro de la aplicación, asígnele un rol de RBAC para conceder permisos con ámbito (como Colaborador o Lector). Para obtener más información, consulte Tutorial: Asignación de roles RBAC a entidades de servicio.
Después de agregar los permisos necesarios a la aplicación, seleccione Conceder consentimiento del administrador para completar la configuración. Al conceder el consentimiento del administrador, autoriza los permisos para todos los usuarios del inquilino para que no se les pida un cuadro de diálogo de consentimiento interactivo la primera vez que usen la aplicación. Si prefiere el consentimiento interactivo por usuario, siga la plataforma de identidad de Microsoft y el flujo de código de autorización de OAuth 2.0.
También puede conceder consentimiento del administrador mediante la CLI de Azure:
# Replace <app-id> with your application (client) ID
az ad app permission admin-consent --id <app-id>
Paso 3. Configuración de la plataforma y el URI de redirección
Los SDK, los scripts de PowerShell y las aplicaciones de escritorio que se autentican en nombre de un usuario requieren un URI de redirección para que Microsoft Entra pueda devolver tokens a la aplicación después de la autenticación.
En el registro de la aplicación, vaya a Administrar: autenticación.
Seleccione Agregar un URI de redirección y, a continuación, elija Aplicaciones móviles y de escritorio.
Seleccione el siguiente URI de redirección integrado:
https://login.microsoftonline.com/common/oauth2/nativeclientSeleccione Configurar para guardar.
También puede agregar el URI de redirección mediante la CLI de Azure:
# 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ón del cliente público
En la sección Configuración avanzada de la misma pestaña Autenticación , hay un botón de alternancia Permitir flujos de cliente públicos . Establezca este botón de alternancia en Sí solo si planea usar el flujo credenciales de contraseña del propietario del recurso (ROPC), que envía un nombre de usuario y una contraseña directamente en el cuerpo de la solicitud de token.
Este flujo no funciona para las cuentas que tienen habilitada la autenticación multifactor. En el caso de los flujos interactivos de código de dispositivo o explorador, no es necesario habilitar esta configuración.
Paso 4. (Opcional) Configuración de certificados y secretos
Si la aplicación requiere leer y escribir recursos como sí mismo, también conocido como entidad de servicio, hay dos maneras de autenticarse. Para usar certificados, vaya a Administrar: certificados y secretos. En la sección Certificados , cargue un certificado x509 que puede usar para autenticarse.
La otra forma es usar la sección Secretos para generar un secreto de cliente. Guarde el secreto en un lugar seguro para utilizarlo con sus necesidades de automatización. Las opciones de certificado o secreto le permiten autenticarse con Microsoft Entra y recibir un token para este cliente, que pasa a las API rest o a los cmdlets de PowerShell.
Paso 5. Solicitar un token de acceso
Puede obtener un token de portador de acceso de dos maneras: una manera es para el nombre de usuario y la contraseña, y la otra es para las entidades de servicio.
Nombre de usuario y flujo de contraseña
Asegúrese de leer la sección cliente público. Luego, envíe una solicitud POST a través de HTTP a Microsoft Entra ID con una carga útil de nombre de usuario y contraseña.
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
El ejemplo anterior contiene marcadores de posición que puede recuperar de la aplicación cliente en el identificador de Microsoft Entra. Recibirá una respuesta que puede usar para realizar llamadas posteriores a 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..."
}
Utilice el valor access_token en llamadas posteriores a la API de Power Platform, con el encabezado HTTP de Autorización.
Flujo de entidad de servicio
Asegúrese de leer la sección Configurar certificados y secretos . Luego, envíe una solicitud POST a través de HTTP a Microsoft Entra ID con una carga útil de secreto de cliente. Este método de autenticación se conoce a menudo como autenticación de entidad de servicio.
Importante
Antes de usar la autenticación de entidad de servicio, complete los pasos 1 a 4 anteriores en este artículo para crear y configurar el registro de la aplicación con un certificado o un secreto de cliente. A continuación, asigne a la entidad de servicio un rol RBAC para controlar su nivel de acceso. Para más información, consulte Tutorial: Asignación de roles RBAC a entidades de servicio.
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
El ejemplo anterior contiene marcadores de posición que puede recuperar de la aplicación cliente en el identificador de Microsoft Entra. Recibirá una respuesta que puede usar para realizar llamadas posteriores a Power Platform API.
{
"token_type": "Bearer",
"expires_in": 3599,
"ext_expires_in": 3599,
"access_token": "eyJ0eXAiOiJKV1..."
}
Utilice el valor access_token en llamadas posteriores a la API de Power Platform, con el encabezado HTTP de Autorización. Los permisos efectivos de la entidad de servicio se determinan mediante el rol de RBAC asignado. Para obtener información sobre cómo asignar un rol, consulte Tutorial: Asignación de roles RBAC a entidades de servicio.
Inicio rápido con la CLI de Azure
El script siguiente crea un registro de aplicación de un extremo a otro. Ejecute cada comando en orden y reemplace los valores de marcador de posición por los suyos propios.
# 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
Después de ejecutar estos comandos, puede usar el registro de la aplicación con los SDK, PowerShell o llamadas REST directas. Para buscar identificadores de permisos para el --api-permissions parámetro, consulte la referencia de permisos.
Solucionar los problemas comunes
Errores de "consentimiento requerido" o "necesita aprobación del administrador"
Este error se produce cuando el administrador no ha consentido los permisos de API en el registro de la aplicación. Vaya a Registros> de aplicaciones los permisos de API de la aplicación > y seleccione Conceder consentimiento del administrador.
Como alternativa, ejecute:
az ad app permission admin-consent --id <app-id>
Errores de "El usuario no está asignado a un rol para la aplicación"
Este error significa que la aplicación empresarial asociada al registro de la aplicación tiene la asignación de usuario necesaria establecida en Sí. Cuando esta configuración está habilitada, solo los usuarios o grupos asignados explícitamente a la aplicación pueden iniciar sesión. Para corregir este error, realice una de las siguientes acciones:
- Vaya a Aplicacionesempresariales de Id. >de Microsoft Entray >> establezca Asignación necesaria en No.
- Agregue los usuarios o grupos de seguridad pertinentes en Usuarios y grupos.
Directivas de acceso condicional que bloquean el acceso
Si su organización aplica directivas de acceso condicional, es posible que bloqueen la adquisición de tokens para el registro de la aplicación. Entre las causas comunes se incluyen los requisitos de cumplimiento de dispositivos, las restricciones de ubicación o las directivas basadas en riesgos. Trabaje con el administrador de Microsoft Entra para excluir el registro de la aplicación de la directiva o asegurarse de que los clientes cumplen los requisitos de la directiva.
No se encuentra "Power Platform API" en el selector de API.
Si la búsqueda de Power Platform API por nombre o GUID en el cuadro de diálogo permisos de API no devuelve ningún resultado, la entidad de servicio no se crea en el inquilino. Siga los pasos de force-refresh del paso 2 para crearlo.
Autenticación con SDK de Power Platform y PowerShell
En los ejemplos siguientes se muestra cómo autenticar y realizar una llamada API de ejemplo mediante cada SDK y PowerShell. Antes de ejecutar estos ejemplos, complete los pasos 1 a 3 anteriores en este artículo para crear y configurar el registro de la aplicación.
Autenticación interactiva (usuario delegado)
La autenticación interactiva abre una ventana del explorador para que el usuario inicie sesión. Este flujo funciona mejor para scripts de desarrollador, herramientas de administración y cualquier escenario en el que esté presente un usuario.
# 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
Cliente confidencial (entidad de servicio)
La autenticación de cliente confidencial usa un secreto de cliente o un certificado y no requiere interacción del usuario. Este flujo de autenticación es el mejor para los servicios en segundo plano, las canalizaciones y la automatización.
Importante
Antes de usar la autenticación de entidad de servicio, complete los pasos 1 a 4 anteriores para crear y configurar el registro de la aplicación con un certificado o un secreto de cliente. A continuación, asigne a la entidad de servicio un rol RBAC para controlar su nivel de acceso. Para obtener más información, consulte Tutorial: Asignación de roles RBAC a entidades de servicio.
$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
Contenido relacionado
Tutorial: Asignación de roles RBAC a entidades de servicio
Control de acceso basado en rol para el Centro de administración de Power Platform
Referencia de permisos