Atualizar as permissões solicitadas de um aplicativo no Microsoft Entra ID
Ao configurar um aplicativo com o Microsoft Entra ID, os desenvolvedores podem solicitar acesso a dados de outros aplicativos e serviços usando permissões. Eles podem solicitar permissões adicionando permissões estáticas ao manifesto do aplicativo ou solicitando permissões dinamicamente em tempo de execução. Os usuários ou administradores podem optar por conceder permissões durante o consentimento, permitindo que o aplicativo acesse os dados de que precisa.
À medida que a funcionalidade de um aplicativo evolui, os recursos aos quais ele requer acesso também mudam. Essas alterações podem envolver a habilitação de novos recursos, a eliminação de acessos desnecessários ou a substituição de permissões altamente privilegiadas por permissões menos privilegiadas. Este artigo explica como atualizar as permissões que seu aplicativo solicita usando o centro de administração do Microsoft Entra e chamadas de API do Microsoft Graph.
Atualizar as permissões para seu aplicativo não é apenas uma prática recomendada de segurança, mas também uma maneira de aprimorar a experiência do usuário e a adoção do aplicativo. A seção a seguir descreve alguns dos benefícios da atualização de permissões para seu aplicativo:
- Se o seu aplicativo tiver uma nova funcionalidade, você poderá solicitar mais permissões que permitam que o aplicativo acesse os recursos extras necessários.
- Os clientes são mais propensos a adotar seu aplicativo se ele solicitar apenas as permissões menos privilegiadas necessárias para funcionar. Isso mostra que seu aplicativo respeita a privacidade e a proteção de dados do cliente e não acessa mais recursos do que precisa.
- Além disso, se seu aplicativo estiver comprometido, haverá um raio de explosão menor se ele tiver menos permissões ou menos privilegiados. Isso significa que o invasor tem menos acesso aos dados e recursos do cliente e, portanto, o dano potencial é reduzido.
- Ao atualizar as permissões para seu aplicativo, você pode melhorar a segurança, a usabilidade e a conformidade do aplicativo e criar confiança com seus clientes.
Pré-requisitos
Para atualizar as permissões solicitadas de um aplicativo, você precisa:
- Uma conta de usuário do Microsoft Entra. Se ainda não tiver uma, crie uma conta gratuitamente.
- Uma das seguintes funções: Administrador de Aplicativos, Administrador de Aplicativos na Nuvem. Um proprietário de aplicativo que não seja administrador pode atualizar as permissões solicitadas de um aplicativo.
Cenários para atualizar permissões
A seção a seguir lista os três cenários principais em que você precisa atualizar as permissões solicitadas pelo aplicativo:
- Adicionar permissões a um aplicativo
- Remover permissões não utilizadas de um aplicativo
- Substituir uma permissão
Observação
A atualização das permissões solicitadas para seu aplicativo não concede ou revoga automaticamente o acesso do aplicativo aos recursos protegidos. Seus clientes ou os administradores de sua organização precisam conceder consentimento para novas permissões adicionadas ou revogar manualmente as próprias permissões.
Adicionar permissões a um aplicativo
Você pode adicionar uma permissão se seu aplicativo tiver uma nova funcionalidade que precise de uma permissão que não precisava antes.
É uma prática recomendada solicitar acesso apenas às permissões mínimas de que seu aplicativo precisa para funcionar. Se você precisar adicionar uma nova permissão para dar suporte a novas funcionalidades em seu aplicativo, solicite apenas a permissão menos privilegiada para esse recurso.
Por exemplo, para adicionar um recurso de notificação por e-mail ao seu aplicativo, ele precisa acessar os e-mails do usuário. Para fazer isso, você precisaria solicitar acesso para a Mail.ReadWrite
permissão.
Adicionar permissões ao consentimento estático
O consentimento estático é uma maneira de solicitar permissões de usuários ou administradores no momento do registro de um aplicativo, e não em tempo de execução. O consentimento estático requer que o aplicativo declare todas as permissões necessárias no painel Registros de aplicativos no centro de administração do Microsoft Entra. Usando o centro de administração do Microsoft Entra, você só pode atualizar permissões para consentimento estático. Para saber mais sobre os diferentes tipos de consentimento, consulte Tipos de consentimento. Para saber como atualizar permissões para consentimento dinâmico, consulte a guia Microsoft Graph deste artigo.
Nesta seção, você aprenderá a adicionar permissões ao consentimento estático.
Você pode adicionar permissões ao consentimento estático de duas maneiras diferentes no centro de administração do Microsoft Entra:
Opção 1: Adicionar permissões no painel de permissões da API
- Entre no centro de administração do Microsoft Entra como pelo menos um Administrador de Aplicativo na Nuvem ou proprietário do aplicativo.
- Navegue até Aplicativos de identidade>>Registros de>aplicativos Todos os aplicativos.
- Encontre o registo da aplicação ao qual pretende adicionar permissões e selecione-o. Você pode adicionar permissões de duas maneiras diferentes:
- Adicione permissões no painel de permissões da API.
Opção 2: Adicionar permissões ao manifesto do aplicativo
- No painel de navegação esquerdo, no grupo de menus Gerenciar, selecione Manifesto. A seleção abre um editor que permite editar diretamente os atributos do objeto de registro do aplicativo.
- Edite cuidadosamente a
requiredResourceAccess
propriedade no arquivo de manifesto do aplicativo. - Adicione a propriedade e
resourceAccess
aresourceAppId
propriedade e atribua as permissões necessárias. - Salve suas alterações.
Para concluir as seguintes etapas de adição de permissões, você precisa dos seguintes recursos e privilégios:
- Execute as solicitações HTTP em uma ferramenta de sua escolha, por exemplo, em seu aplicativo ou por meio do Graph Explorer.
- Execute as APIs como um usuário com pelo menos um administrador de aplicativo de nuvem ou como proprietário do registro do aplicativo de destino.
- O aplicativo usado para fazer essas alterações deve receber a
Application.ReadWrite.All
permissão.
Identifique as permissões que seu aplicativo exige, suas IDs de permissão e se elas são funções de aplicativo (permissões de aplicativo) ou permissões delegadas. Por exemplo, se você quiser solicitar permissões do Microsoft Graph, consulte Permissões do Microsoft Graph para obter uma lista de permissões e suas IDs.
Adicione as permissões necessárias do Microsoft Graph ao seu aplicativo. O exemplo a seguir chama a API do aplicativo Update para adicionar as permissões necessárias do Microsoft Graph a um registro de aplicativo identificado pela ID
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb
do objeto. Este exemplo usaAnalytics.Read
eApplication.Read.All
delegou permissão e permissão de aplicativo. O Microsoft Graph é identificado como um objeto ServicePrincipal com00000003-0000-0000-c000-000000000000
como seu exclusivo global.AppId
PATCH https://graph.microsoft.com/v1.0/applications/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb Content-Type: application/json { "requiredResourceAccess": [ { "resourceAppId": "00000003-0000-0000-c000-000000000000", "resourceAccess": [ { "id": "e03cf23f-8056-446a-8994-7d93dfc8b50e", "type": "Scope" }, { "id": "9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30", "type": "Role" } ] } ] }
Adicionar permissões ao consentimento dinâmico
O consentimento dinâmico é uma maneira de solicitar permissões de usuários ou administradores em tempo de execução, em vez de declará-las estaticamente no painel Registros de aplicativos. O consentimento dinâmico permite que o aplicativo solicite apenas as permissões necessárias para uma funcionalidade específica e obtenha o consentimento do usuário ou administrador quando necessário. O consentimento dinâmico pode ser usado com permissões delegadas e pode ser combinado com o /.default
escopo para solicitar o consentimento do administrador para todas as permissões.
Para adicionar permissões ao consentimento dinâmico:
Usar o Microsoft Graph: adicione as permissões necessárias do Microsoft Graph a um registro de aplicativo. Este exemplo usa
Analytics.Read
eApplication.Read.All
delegou permissão e permissão de aplicativo. Substitua os valores em 'escopos' por valores de quaisquer permissões delegadas do Microsoft Graph que você deseja configurar para o aplicativo.A solicitação deve ser como o seguinte exemplo:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=00001111-aaaa-2222-bbbb-3333cccc4444&response_type=code&scope=Analytics.Read+Application.Read
Use MSAL.js: substitua os valores em 'escopos' por valores de quaisquer permissões delegadas do Microsoft Graph que você deseja configurar para o aplicativo.
const Request = { scopes: ["openid", "profile"], loginHint: "example@domain.net" }; myMSALObj.ssoSilent(Request) .then((response) => { // your logic }).catch(error => { console.error("Silent Error: " + error); if (error instanceof msal.InteractionRequiredAuthError) { myMSALObj.loginRedirect(loginRequest); } });
Conceder consentimento para as permissões adicionadas para o aplicativo corporativo
Depois que as permissões são adicionadas ao seu aplicativo, os usuários ou administradores precisam conceder consentimento para as novas permissões. Os utilizadores não administradores veem um pedido de consentimento quando iniciam sessão na sua aplicação. Os usuários administradores, por outro lado, podem conceder consentimento para as novas permissões em nome de todos os usuários em sua organização quando entrarem pela primeira vez em seu aplicativo ou no centro de administração do Microsoft Entra.
Quando as permissões adicionadas exigem o consentimento do administrador, as ações necessárias variam de acordo com o tipo de aplicativo:
- Aplicativo de locatário único e aplicativo multilocatário em locatário doméstico: o usuário deve entrar como pelo menos uma função de Administrador de Função Privilegiada e conceder consentimento para todo o locatário.
- Aplicativos multilocatários nos locatários do cliente: o usuário vê novos prompts de consentimento em sua próxima tentativa de login. Se as permissões exigirem apenas o consentimento do usuário, o usuário poderá conceder o consentimento. Se as permissões exigirem o consentimento do administrador, o usuário deverá entrar em contato com o administrador para conceder o consentimento.
Parar de solicitar permissões não utilizadas
A remoção de permissões pode reduzir o risco de exposição de dados confidenciais ou comprometer a segurança e simplificar o processo de consentimento para seus usuários ou administradores. Se seu aplicativo não precisar mais de uma permissão, você deverá impedir que seu aplicativo a solicite removendo a permissão do acesso a recursos e do código necessários do registro do aplicativo. Por exemplo, um aplicativo que não envia mais notificações por e-mail pode remover a Mail.ReadWrite
permissão.
Importante
Remover uma permissão do registro do aplicativo não revoga automaticamente as permissões já concedidas ao aplicativo. Você precisa revogar as permissões manualmente. Para obter mais informações, consulte a seção Revogar consentimento para as permissões removidas para o aplicativo empresarial deste artigo.
Parar de solicitar permissões para consentimento estático
Para parar de solicitar permissões que exigem consentimento estático, você precisa remover a permissão do painel Registros de aplicativos. Um administrador do locatário também precisa revogar a permissão no painel Aplicativos corporativos. Para obter mais informações sobre como revogar permissões concedidas a um aplicativo empresarial, consulte Revogar permissões para um aplicativo empresarial.
Nesta seção, você aprenderá a parar de solicitar permissões para consentimento estático.
Você pode remover permissões do consentimento estático de duas maneiras diferentes no centro de administração do Microsoft Entra:
Opção 1: No painel de permissões da API
- Entre no centro de administração do Microsoft Entra como pelo menos um Administrador de Aplicativo na Nuvem ou proprietário do aplicativo.
- Navegue até Aplicativos de identidade>>Registros de>aplicativos Todos os aplicativos.
- Encontre o registro do aplicativo do qual você deseja remover permissões e selecione-o.
- Remova as permissões do painel de permissões da API:
Opção 2: Do manifesto da aplicação
- No painel de navegação esquerdo, no grupo de menus Gerenciar, selecione Manifesto. É aberto um editor que permite editar diretamente os atributos do objeto de registro do aplicativo.
- Edite cuidadosamente a
requiredResourceAccess
propriedade no arquivo de manifesto do aplicativo. - Remova as permissões desnecessárias de
resourceAppId
propriedade eresourceAccess
propriedade. - Salve suas alterações.
Para concluir as seguintes etapas de remoção de permissões, você precisa dos seguintes recursos e privilégios:
- Execute as solicitações HTTP em uma ferramenta de sua escolha, por exemplo, em seu aplicativo ou por meio do Graph Explorer.
- Chame as APIs como pelo menos um Administrador de Aplicativo na Nuvem ou como um proprietário do registro do aplicativo de destino.
- O aplicativo usado para fazer essas alterações deve receber a
Application.ReadWrite.All
permissão.
Identifique as permissões para seu aplicativo.
Por exemplo, para impedir que seu aplicativo solicite permissões do Microsoft Graph, identifique as permissões do Microsoft Graph para seu aplicativo, suas IDs de permissão e se são funções de aplicativo (permissões de aplicativo) ou permissões delegadas.
Remova as permissões indesejadas do Microsoft Graph do seu aplicativo. O exemplo a seguir chama a API do aplicativo Update para remover as permissões indesejadas do Microsoft Graph de um registro de aplicativo identificado por uma ID
00001111-aaaa-2222-bbbb-3333cccc4444
de cliente de exemplo. Neste exemplo, o aplicativo temAnalytics.Read
,User.Read
eApplication.Read.All
. Precisamos removerAnalytics.Read
eApplication.Read.All
delegar permissão e permissão de aplicativo. O Microsoft Graph é identificado como um objeto ServicePrincipal com00000003-0000-0000-c000-000000000000
como seu exclusivoAppId
globalmente e o Microsoft Graph como seuDisplayName
eAppDisplayName
.PATCH https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444 Content-Type: application/json { "requiredResourceAccess": [ { "resourceAppId": "00000003-0000-0000-c000-000000000000", "resourceAccess": [ { "id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6 ", "type": "Scope" } ] } ] }
Parar de solicitar permissões com consentimento dinâmico
Quando precisar remover permissões delegadas da solicitação de consentimento dinâmico, especifique o parâmetro scope enquanto deixa de fora as permissões que deseja remover. Remover as permissões garante que o aplicativo não chame a API correspondente.
Este método só funciona para permissões delegadas. As permissões de aplicativo são solicitadas e concedidas por um administrador por meio de consentimento estático e não são incluídas no parâmetro scope durante a solicitação de autorização do OAuth 2.0.
Para parar de solicitar permissões com consentimento dinâmico:
- Usando o Microsoft Graph: remova as permissões delegadas indesejadas do Microsoft Graph do parâmetro 'escopos'. Neste exemplo, seu aplicativo está solicitando três permissões delegadas -
Analytics.Read
eApplication.Read
User.Read
. As permissões delegadasAnalytics.Read
eApplication.Read
não são mais necessárias para este aplicativo. RequerUser.Read
apenas .
A solicitação deve ser semelhante ao exemplo a seguir:
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=00001111-aaaa-2222-bbbb-3333cccc4444&response_type=code&scope=User.Read
usando MSAL.js: remova as permissões delegadas indesejadas do Microsoft Graph em 'escopos'.
const Request = { scopes: ["openid", "profile"], loginHint: "example@domain.net" }; myMSALObj.ssoSilent(Request) .then((response) => { // your logic }).catch(error => { console.error("Silent Error: " + error); if (error instanceof msal.InteractionRequiredAuthError) { myMSALObj.loginRedirect(loginRequest); } });
Revogar o consentimento para as permissões removidas para o aplicativo corporativo
Depois que as permissões forem removidas do registro do aplicativo, um administrador no locatário também precisará revogar o consentimento para proteger os dados da sua organização. Quando a permissão removida requer o consentimento do administrador, as ações necessárias variam de acordo com o tipo de aplicativo:
- Aplicativo de locatário único e aplicativo multilocatário em locatário doméstico: para um aplicativo de locatário único, entre em contato com o administrador do locatário para revogar as permissões já concedidas ao aplicativo. Para um aplicativo multilocatário, entre em contato com os administradores de todos os locatários onde residem instâncias do seu aplicativo para revogar as permissões concedidas ao aplicativo corporativo. Revogar o consentimento para as permissões removidas garante que o aplicativo não mantenha o acesso por meio da permissão removida.
- Aplicativos multilocatários nos locatários dos clientes: certifique-se de se comunicar com seus clientes para revogar permissões por meio de anúncios, blogs e quaisquer outros canais de comunicação.
Para aplicativos de locatário único e multilocatário, os usuários não administradores em locatários onde o consentimento do usuário está habilitado podem usar o portal MyApps para revogar o consentimento para permissões concedidas anteriormente. Para obter mais informações sobre como os usuários finais podem revogar permissões no portal MyApps, consulte Revogar o consentimento do usuário final.
Substituir uma permissão
Você deve substituir uma permissão altamente privilegiada quando uma permissão menos privilegiada for suficiente.
A substituição de permissões também pode reduzir o risco de expor dados confidenciais ou comprometer a segurança e, assim, melhorar a experiência e a confiança do usuário. Se seu aplicativo estiver usando uma permissão altamente privilegiada, como Directory.ReadWrite.All
, você deve considerar se uma permissão menos privilegiada, como User.ReadWrite.All
, seria suficiente para a funcionalidade do seu aplicativo.
Observação
Quando você modifica as permissões solicitadas de um aplicativo para consentimento estático, o cliente precisará consentir novamente. O ato de reconsentir revoga todas as permissões concedidas anteriormente e concede consentimento às novas. Quando você modifica as permissões solicitadas de um aplicativo para consentimento dinâmico, as permissões concedidas anteriormente não são revogadas. O cliente tem que revogar as permissões manualmente.
Para substituir uma permissão, você precisa remover a permissão desnecessária e adicionar a alternativa. As etapas são como as descritas nas seções Parar de solicitar permissões não utilizadas e adicionar permissões deste artigo.