Ao registrar seu aplicativo Microsoft Entra, você concede a ele permissão para acessar várias APIs. Conforme suas necessidades forem alteradas, talvez você queira ajustar essas permissões. Este artigo mostra como fazer isso.
Observação
As permissões de aplicativo do Microsoft Entra só são aplicáveis a estes cenários:
Inserir para a organização
Inserir para seus clientes com o método de autenticação de usuário mestre
Editar as configurações de permissão no seu aplicativo do Microsoft Entra
As alterações de permissão podem ser feitas de maneira programática ou no portal do Azure.
Selecione o locatário do Microsoft Entra selecionando sua conta no canto superior direito da página.
Selecione Registros do Aplicativo. Se não vir essa opção, pesquise por ela.
Na guia Aplicativos próprios, selecione seu aplicativo. O aplicativo é aberto na guia Visão geral, em que você pode examinar a ID do Aplicativo.
Selecione a guia Exibir permissões da API.
Selecione Adicionar uma permissão.
Para adicionar permissões, siga estas etapas (observe que a primeira etapa é diferente para aplicativos GCC):
Na guia APIs da Microsoft, selecione serviço do Power BI.
Observação
Para aplicativos GCC, selecione a guia APIs que minha organização usa e pesquise a Nuvem da Comunidade Governamental do Microsoft Power BI OU fc4979e5-0aa5-429f-b13a-5d1365be5566.
Selecione Permissões Delegadas e adicione ou remova as permissões específicas necessárias.
Quando terminar, selecione Adicionar permissões para salvar as alterações.
Para remover uma permissão, siga estas etapas:
Selecione as reticências (...) à direita da permissão.
Selecione Remover permissão.
Na janela pop-up Remover permissão, selecione Sim, remover.
Para alterar as permissões do aplicativo do Microsoft Entra programaticamente, você precisará obter as entidades de serviço (usuários) existentes no locatário. Para saber mais sobre como fazer isso, confira servicePrincipal.
Para obter todas as entidades de serviço no locatário, chame a API Get servicePrincipal sem {ID}.
Procure uma entidade de serviço com a ID de aplicativo de seu aplicativo como a propriedade appId. (displayName é opcional.)
Conceda permissões do Power BI para seu aplicativo atribuindo um destes valores a consentType:
AllPrincipals – pode ser usado somente por um administrador do Power BI para conceder permissões em nome de todos os usuários no locatário.
Principal – usado para conceder permissões em nome de um usuário específico. Se estiver usando essa opção, adicione a propriedade principalId={User_ObjectId} ao corpo da solicitação.
Se estiver usando um usuário mestre, para evitar receber um prompt de consentimento do Microsoft Entra ID, você precisará conceder permissões para a conta mestre.
O resourceIdc78a3685-1ce7-52cd-95f7-dc5aea8ec98e é dependente do locatário e não universal. Esse valor é a objectId do aplicativo Serviço do Power BI no Microsoft Entra ID. Para obter esse valor no portal do Azure, navegue até Aplicativos empresariais > Todos os aplicativos e pesquise por Serviço do Power BI.
Conceda permissões de aplicativo ao Microsoft Entra ID atribuindo um valor a consentType.
Você também pode alterar as permissões do aplicativo do Microsoft Entra usando C#. Para obter mais informações, confira a API oAuth2PermissionGrant. Esse método pode ser útil se você estiver pensando em automatizar alguns dos seus processos.
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();