Al registrar cualquier aplicación de Microsoft Entra, le concede permiso para acceder a varias API. A medida que cambien sus necesidades, es posible que desee ajustar estos permisos. Este artículo le muestra cómo.
Nota:
Los permisos de aplicación de Microsoft Entra solo se aplican a estos escenarios:
Insertar para la organización
Insertar para los clientes con el método de autenticación de usuario maestro
Edición de la configuración de permisos en aplicaciones de Microsoft Entra
Los cambios en los permisos se pueden realizar mediante programación o en Azure Portal.
Elija el inquilino de Microsoft Entra, para lo que debe seleccionar su cuenta en la esquina superior derecha de la página.
Seleccione App registrations (Registros de aplicaciones). Si no puede ver esta opción, búsquela.
En la pestaña Aplicaciones propias, seleccione la aplicación. La aplicación se abre en la pestaña Información general, donde puede revisar el valor Id. de la aplicación.
Seleccione la pestaña Ver permisos de API.
Seleccione Agregar un permiso.
Para agregar permisos, siga estos pasos (tenga en cuenta que el primer paso es diferente para las aplicaciones de GCC):
En la pestaña API de Microsoft, seleccione Servicio Power BI.
Nota
Para las aplicaciones GCC, seleccione la pestaña API usadas en mi organización y busque Microsoft Power BI Government Community Cloud o fc4979e5-0aa5-429f-b13a-5d1365be5566.
Seleccione Permisos delegados, y agregue o quite los permisos específicos que necesite.
Cuando haya terminado, seleccione Agregar permisos para guardar los cambios.
Para quitar un permiso, siga estos pasos:
Seleccione los puntos suspensivos (…) situados a la derecha del permiso.
Seleccione Quitar permiso.
En la ventana emergente Quitar permiso, seleccione Sí, quitar.
Para cambiar los permisos de aplicación de Microsoft Entra mediante programación, deberá obtener las entidades de servicio (usuarios) existentes en el inquilino. Para información sobre cómo hacerlo, consulte servicePrincipal.
Para obtener todas las entidades de servicio del inquilino, llame a la API Get servicePrincipal sin {ID}.
Busque una entidad de servicio con el Id. de la aplicación de su aplicación como propiedad appId. (displayName es opcional).
Conceda permisos de Power BI a la aplicación. Para ello, asigne uno de estos valores a consentType:
AllPrincipals: solo lo puede usar un administrador de Power BI para conceder permisos en nombre de todos los usuarios del inquilino.
Principal: se usa para conceder permisos en nombre de un usuario específico. Si usa esta opción, agregue la propiedad principalId={User_ObjectId} al cuerpo de la solicitud.
Si usa un usuario maestro, para que Microsoft Entra ID no le pida consentimiento, debe conceder permisos a la cuenta maestra.
El valor resourceIdc78a3685-1ce7-52cd-95f7-dc5aea8ec98e depende del inquilino y no es universal. Este valor es el elemento objectId de la aplicación Servicio Power BI en Microsoft Entra ID. Para obtener este valor en Azure Portal, vaya a Aplicaciones empresariales > Todas las aplicaciones y busque Servicio Power BI.
Conceda permisos de aplicación a Microsoft Entra ID mediante la asignación de un valor a consentType.
Los permisos de la aplicación de Microsoft Entra también se pueden cambiar mediante C#. Para más información, vea la API oAuth2PermissionGrant. Este método puede ser útil si está pensando en automatizar algunos de los procesos.
var graphClient = GetGraphClient();
currentState.createdApp = await graphClient.Applications
.Request()
.AddAsync(application);
System.Threading.Thread.Sleep(2000);
var passwordCredential = new PasswordCredential
{
DisplayName = "Client Secret Created in C#"
};
currentState.createdSecret = await graphClient.Applications[currentState.createdApp.Id]
.AddPassword(passwordCredential)
.Request()
.PostAsync();
var servicePrincipal = new ServicePrincipal
{
AppId = currentState.createdApp.AppId
};
currentState.createdServicePrincipal = await graphClient.ServicePrincipals
.Request()
.AddAsync(servicePrincipal);
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
// Use oAuth2PermissionGrant to change permissions
var oAuth2PermissionGrant = await graphClient.Oauth2PermissionGrants["{id}"]
.Request()
.GetAsync();