Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo orienta você no uso do controle de acesso granular e escalonável com escopo de recurso: RBAC (Controle de Acesso Baseado em Função) para aplicativos no Exchange Online.
Visão Geral
O RBAC para Aplicativos no Exchange Online permite que os administradores concedam permissões a um aplicativo que acessa dados de forma independente no Exchange Online. Essa concessão pode ser emparelhada com um escopo de acesso (escopo de recurso) para especificar quais caixas de correio um aplicativo pode acessar. Esse recurso estende o modelo RBAC atual no Exchange Online e substitui as Políticas de Acesso ao Aplicativo. Essas concessões de permissão são independentes das concessões sem escopo no Microsoft Entra ID.
O núcleo desse sistema é a configuração de atribuição de função de gerenciamento, que expressa a intenção de um administrador de permitir que uma entidade de segurança acesse dados. Nesse caso, permitindo que um aplicativo desempenhe alguma função em um conjunto de recursos de destino. Por exemplo, um administrador pode configurar um sistema de reserva de salas com acesso aos dados do calendário somente em regiões específicas usando um Escopo de gerenciamento. O diagrama a seguir ilustra o modelo de atribuição de função:
Instruções de configuração
As etapas a seguir orientam você a criar essas atribuições RBAC do aplicativo:
- Criar um novo escopo de recurso (opcional)
- Criar um ponteiro para uma entidade de serviço do Microsoft Entra
- Selecione a função de aplicativo apropriada
- Criar uma Nova atribuição de função
- Testar a Nova Entidade de Serviço
Requisitos
O grupo de funções Gerenciamento da Organização tem a atribuição de função de delegação para as novas funções do RBAC de Aplicativo. Você precisa ser membro do grupo de funções Gerenciamento da Organização para atribuir essas permissões. Como alternativa, você pode usar o RBAC do Exchange Online para conceder atribuições delegadas a essas funções de aplicativo conforme achar melhor. No Microsoft Entra ID, você precisa da função de Administrador do Exchange para atribuir essas permissões.
Definir o escopo do recurso
- Escopos de gerenciamento: Uma entidade do Exchange que representa um conjunto de caixas de correio usando uma expressão de filtro nas propriedades dessas caixas de correio.
- Unidades de Administração: um recurso do Microsoft Entra que pode ser um contêiner para outros recursos do Microsoft Entra que contém apenas usuários, grupos ou dispositivos. Para saber mais, consulte Unidades administrativas no Microsoft Entra ID e Criar ou excluir unidades administrativas.
Escopos de Gerenciamento
Os escopos de gerenciamento permitem que um administrador defina o escopo de um conjunto de caixas de correio com base nas propriedades desses objetos. Consulte a documentação do escopo de gerenciamento para adicionar, remover, definir. Aqui está uma lista das propriedades filtráveis em um Escopo de Gerenciamento.
Observação
Embora exista uma propriedade chamada Unidades Administrativas, recomendamos que você use o parâmetro nativo Unidades de Administração em uma atribuição de função para evitar a criação de um escopo como um objeto de ponteiro intermediário.
Entidades de serviço
As entidades de serviço representam uma instância de um aplicativo em sua organização. Você deve considerar a Entidade de Serviço no Exchange como um ponteiro para uma Entidade de Serviço existente no Microsoft Entra ID. As entidades de serviço não podem ser criadas diretamente usando as ferramentas do Exchange Online. As ferramentas do Microsoft Entra são usadas para gerenciar registros de Entidade de Serviço nas organizações. O Exchange impede a criação de um ponteiro inválido e reflete todas as exclusões de Entidades de Serviço no Microsoft Entra ID automaticamente.
Nova entidade de serviço
New-ServicePrincipal -AppId <Client Application ID in AAD> -ObjectId <Service principal object ID in AAD> -DisplayName <name>
A captura de tela a seguir ajuda você a encontrar essas IDs no Microsoft Entra ID:
Observação
Não use as IDs da página Registros de Aplicativo, pois ela mostra valores diferentes. A "ID do aplicativo" com contorno vermelho é a AppID e a "ID do objeto" é a ServiceID.
Você pode usar outra abordagem para encontrar essas IDs usando Get-MgServicePrincipal.
Remover entidade de serviço
Remove-ServicePrincipal -Identity <ObjectID, AppID, or DisplayName>
Definir entidade de serviço
Set-ServicePrincipal -Identity <ObjectID, AppID, or DisplayName > -DisplayName <Updated name>
Funções do aplicativo
As funções de aplicativo são um tipo especial de função de gerenciamento no Exchange Online, que só pode ser atribuído a um aplicativo. Essas funções podem ser enumeradas usando Get-ManagementRole.
Atribuições de Função
As atribuições de função de gerenciamento unem um escopo de acesso de entidade de segurança, função e recurso personalizado. Essa atribuição atua como a atribuição de permissões para uma entidade de serviço que executa uma função em um escopo.
Nova atribuição de função
New-ManagementRoleAssignment [[-Name] <String>] -Role <RoleIdParameter> -App <ObjectID, AppID, or DisplayName> -CustomResourceScope <Management Scope> (or -RecipientAdministrativeUnitScope)
Definir atribuição de função
Set-ManagementRoleAssignment [-Identity] <RoleAssignmentIdParameter> -CustomResourceScope <Management Scope> (or -RecipientAdministrativeUnitScope)
Remover atribuição de função
Para remover uma atribuição de função, consulte remover atribuição de gerenciamento.
Autorização de teste
Um cmdlet de teste pode ser usado para simular o comportamento habilitado pelas atribuições de RBAC para uma entidade de serviço específica.
Observação
Esse método exclui permissões que podem ser concedidas separadamente no Microsoft Entra ID.
Ao testar a autorização, você pode incluir um parâmetro de recurso opcional para avaliar quais permissões no escopo se aplicam a essa caixa de correio de destino.
InScope will = true or false para representar if, true que a permissão se aplica a essa caixa de correio para essa entidade de serviço ou false que a entidade de serviço tem essa permissão, mas não sobre essa caixa de correio específica. Omitir esse sinalizador resulta em "Não Executar".
Os resultados do teste sempre incluem o escopo de recurso permitido para uma permissão atribuída específica.
Testar o acesso à entidade de serviço
Test-ServicePrincipalAuthorization -Identity <ObjectID, AppID, or DisplayName> [-Resource] <target mailbox>
Exemplos
Depois de usar o Connect-ExchangeOnline no PowerShell, siga estas etapas:
Exemplo um: configurando o acesso de leitura do calendário para usuários canadenses usando um escopo de gerenciamento
New-ServicePrincipal -AppId 71487acd-ec93-476d-bd0e-6c8b31831053 -ObjectId 6233fba6-0198-4277-892f-9275bf728bcc -DisplayName "example"
DisplayName ObjectId AppId
----------- --------- -----
example 6233fba6-0198-4277-892f-9275bf728bcc 71487acd-ec93-476d-bd0e-6c8b3183105
New-ManagementScope -Name "Canadian users" -RecipientRestrictionFilter "CustomAttribute1 -eq '012332'"
Name ScopeRestrictionType Exclusive RecipientRoot RecipientFilter
---- -------------------- --------- ------------- ---------------
Canadian users RecipientScope False CustomAttribute1 -eq '012332'
New-ManagementRoleAssignment -App 6233fba6-0198-4277-892f-9275bf728bcc -Role "Application Calendars.Read" -CustomResourceScope "Canadian users"
Name Role RoleAssigneeName RoleAssigneeType AssignmentMethod
---- ---- ---------------- ---------------- ----------------
Application Calendar... Application Ca... 6233fba6-0198-... ServicePrincipal Direct
Exemplo dois: Configurando o Mail.Read para todas as caixas de correio da Unidade de Administração da Europa
New-ServicePrincipal -AppId eb19847b-5563-42ea-b719-ea47cb0cf4b3 -ObjectId 59b7c6cb-58d3-4ee8-a409-8c1f9dbb5d36 -DisplayName "example"
DisplayName ObjectId AppId
----------- --------- -----
example 59b7c6cb-58d3-4ee8-a409-8c1f9dbb5d36 eb19847b-5563-42ea-b719-ea47cb0cf4b3
New-ManagementRoleAssignment -App 59b7c6cb-58d3-4ee8-a409-8c1f9dbb5d36 -Role "Application Mail.Read" -RecipientAdministrativeUnitScope 4d819ce9-9257-44d7-af20-68a49e6697f4
Name Role RoleAssigneeName RoleAssigneeType AssignmentMethod
---- ---- ---------------- ---------------- ----------------
Application Mail.Rea... Application Ma... 59b7c6cb-58d3-... ServicePrincipal Direct
Exemplo três: testando permissões atribuídas a uma entidade de serviço
Test-ServicePrincipalAuthorization -Resource b -Identity "DemoB" |Format-Table
RoleName GrantedPermissions AllowedResourceScope ScopeType InScope
-------- ------------------ -------------------- --------- ------
Application Mail.Read Mail.Read Scope-MESGaDN CustomRecipientScope False
Application Calendars.Read Calendars.Read Scope-DL1 CustomRecipientScope False
Application Contacts.Read Contacts.Read Scope-MESGa CustomRecipientScope False
Limitações
- Os aplicativos não podem se tornar membros de um Grupo de Funções.
- As funções de aplicativo só podem ser atribuídas a entidades de serviço.
- As funções do aplicativo não podem ser copiadas ou derivadas.
- Escopos de gerenciamento exclusivos não restringem o acesso ao aplicativo.
- As alterações nas permissões do aplicativo estão sujeitas à manutenção do cache que varia entre 30 minutos e 2 horas, dependendo do uso recente do aplicativo. Quando você testa configurações, o comando test ignora esse cache. O cache de um aplicativo sem chamadas de entrada para APIs é redefinido após 30 minutos. O cache de um aplicativo ativo é mantido ativo por até 2 horas.
Protocolos com suporte
- MS Graph
- EWS
Funções de aplicativo com suporte
| Nome | Protocolo | Lista de permissões | Descrição |
|---|---|---|---|
Application Mail.Read |
MS Graph | Mail.Read |
Permite que o aplicativo leia emails em todas as caixas de correio sem um usuário conectado. |
Application Mail.ReadBasic |
MS Graph | Mail.ReadBasic |
Permite que o aplicativo leia emails, exceto o corpo, previewBody, anexos e quaisquer propriedades estendidas em todas as caixas de correio sem um usuário conectado |
Application Mail.ReadWrite |
MS Graph | Mail.ReadWrite |
Permite que o aplicativo crie, leia, atualize e exclua emails em todas as caixas de correio sem um usuário conectado. Não inclui permissão para enviar emails. |
Application Mail.Send |
MS Graph | Mail.Send |
Permite ao aplicativo enviar emails como qualquer usuário sem um usuário conectado. |
Application MailboxSettings.Read |
MS Graph | MailboxSettings.Read |
Permite que o aplicativo leia as configurações da caixa de correio do usuário em todas as caixas de correio sem um usuário conectado. |
Application MailboxSettings.ReadWrite |
MS Graph | MailboxSettings.ReadWrite |
Permite que o aplicativo crie, leia, atualize e exclua as configurações de caixa de correio do usuário em todas as caixas de correio sem um usuário conectado. |
Application Calendars.Read |
MS Graph | Calendars.Read |
Permite ao aplicativo ler eventos de todos os calendários sem um usuário conectado. |
Application Calendars.ReadWrite |
MS Graph | Calendars.ReadWrite |
Permite ao aplicativo criar, ler, atualizar e excluir eventos de todos os calendários sem um usuário conectado. |
Application Contacts.Read |
MS Graph | Contacts.Read |
Permite ao aplicativo ler todos os contatos em todas as caixas de correio sem um usuário conectado. |
Application Contacts.ReadWrite |
MS Graph | Contacts.ReadWrite |
Permite ao aplicativo criar, ler, atualizar e excluir todos os contatos em todas as caixas de correio sem um usuário conectado. |
Application MailboxFolder.Read |
MS Graph | MailboxFolder.Read.All |
Permite que o aplicativo leia todas as pastas de caixa de correio dos usuários sem um usuário conectado. |
Application MailboxFolder.ReadWrite |
MS Graph | MailboxFolder.ReadWrite.All |
Permite que o aplicativo leia e grave todas as pastas da caixa de correio dos usuários sem um usuário conectado. |
Application MailboxItem.Read |
MS Graph | MailboxItem.Read.All |
Permite que o aplicativo leia todos os itens de caixa de correio dos usuários sem um usuário conectado. |
Application MailboxItem.Export |
MS Graph | MailboxItem.Export.All |
Permite que o aplicativo exporte todos os itens de caixa de correio dos usuários sem o usuário conectado. |
Application MailboxItem.ImportExport |
MS Graph | MailboxItem.ImportExport.All |
Permite que o aplicativo exporte e importe todos os itens de caixa de correio dos usuários sem o usuário conectado. |
Application Mail Full Access |
MS Graph |
Mail.ReadWrite, Mail.Send |
Permite que o aplicativo crie, leia, atualize e exclua emails em todas as caixas de correio e envie emails como qualquer usuário sem um usuário conectado. |
Application Exchange Full Access |
MS Graph |
Mail.ReadWrite, Mail.Send, MailboxSettings.ReadWrite, Calendars.ReadWrite, Contacts.ReadWrite |
Sem um usuário conectado: permite que o aplicativo crie, leia, atualize e exclua emails em todas as caixas de correio e envie emails como qualquer usuário. Permite que o aplicativo crie, leia, atualize e exclua as configurações de caixa de correio do usuário em todas as caixas de correio. Permite que o aplicativo crie, leia, atualize e exclua eventos de todos os calendários. Permite que o aplicativo crie, leia, atualize e exclua todos os contatos em todas as caixas de correio. |
Application EWS.AccessAsApp |
EWS | EWS.AccessAsApp |
Permite que o aplicativo use os Serviços Web do Exchange com acesso total a todas as caixas de correio. |
Application SMTP.SendAsApp |
MS Graph | SMTP.SendAsApp |
Permite que o aplicativo use o envio de cliente SMTP para enviar emails para a pasta caixa de saída do usuário. |
Application MailboxConfigItem.Read |
MS Graph | MailboxConfigItem.Read |
Permite que o aplicativo leia objetos UserConfiguration sem um usuário conectado. |
Application MailboxConfigItem.ReadWrite |
MS Graph | MailboxConfigItem.ReadWrite |
Permite que o aplicativo leia, grave, atualize e exclua objetos UserConfiguration sem um usuário conectado. |
Application MailTips.ReadBasic.All |
MS Graph | MailTips.ReadBasic.All |
Permite que o aplicativo acesse apenas metadados de Dicas de Email sem expor o conteúdo de email, sem um usuário conectado |
Você pode notar que essas funções representam permissões do Microsoft Graph com as quais você pode consentir em outro lugar na plataforma de identidade do Azure. Essas permissões têm o mesmo efeito que as permissões do Graph, exceto para essas atribuições de função que permitem acesso granular com escopo de recurso.
Perguntas frequentes
Por que meu aplicativo ainda tem acesso a caixas de correio que não são concedidas pelo escopo que usei no RBAC do Aplicativo do Exchange Online?
Você precisa garantir que removeu as permissões sem escopo em toda a organização atribuídas no Microsoft Entra ID. As permissões atribuídas usando o Aplicativo RBAC atuam além das concessões que você faz no Microsoft Entra ID. As permissões do Microsoft Entra só podem ser restringidas usando Políticas de Acesso ao Aplicativo. Em outras palavras, as permissões atribuídas são uma operação de união entre as permissões do Microsoft Entra ID e as permissões atribuídas no RBAC do Exchange Online. Cada autoridade pode agir de forma independente.
Por exemplo, se sua Entidade de Serviço tiver Mail.Read concedido no Microsoft Entra ID e você configurar uma permissão com Mail.Read escopo de recurso no RBAC do Aplicativo, é importante que você remova a atribuição de Mail.Read do Microsoft Entra ID. Caso contrário, a união de uma concessão sem escopo Mail.Read do Microsoft Entra e uma concessão com Mail.Read escopo de recurso no Aplicativo RBAC resultará em nenhum escopo de recurso eficaz.
Como posso exibir e modificar todas as permissões do aplicativo em uma interface?
Para garantir que os administradores tenham uma visão consolidada das permissões do aplicativo, mostramos essas permissões concedidas no Exchange Online em uma experiência de administrador do Microsoft Entra. Esse recurso está chegando, fique ligado.
Como migrar das Políticas de Acesso ao Aplicativo para o RBAC para Aplicativos?
Com as Políticas de Acesso ao Aplicativo, você tem uma entidade de serviço, consentimento de permissões no Azure e uma política associada a uma entidade de serviço no Exchange Online. Embora você possa reestruturar seu mecanismo de escopo usando Escopos de Gerenciamento do Exchange ou Unidades Administrativas, aqui estão algumas diretrizes sobre como reutilizar grupos em uma Política de Acesso ao Aplicativo como o escopo da concessão do RBAC para Aplicativos. Esse processo não resulta em nenhuma interrupção de uso para seu aplicativo.
Etapas de migração:
Crie um novo escopo de gerenciamento, que aponta para o grupo de escopo da Política de Acesso ao Aplicativo.
Crie o objeto de ponteiro da entidade de serviço.
Atribua as permissões necessárias à entidade de serviço no Exchange Online com a restrição de escopo de gerenciamento.
Remova o consentimento para a permissão no Azure.
Remover a política de acesso ao aplicativo.
Ao criar o escopo de gerenciamento na etapa 1, você usa um filtro de destinatário com o parâmetro
MemberOfGroupde filtro . Veja um exemplo:"MemberOfGroup -eq 'CN=mesga20220818210551,OU=Fabrikam346.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NAMPR00A001,DC=prod,DC=outlook,DC=com'"
Observação
Esse parâmetro de filtro usa o nome distinto do grupo, que você pode localizar usando Get-Group cmdlets.
Limitações:
- Os membros do grupo aninhados são considerados fora do escopo. Somente a associação direta ao grupo faz com que o membro seja considerado no escopo da autorização.
- Grupos do Microsoft 365, Mail-Enabled Grupos de Segurança e Listas de Distribuição são suportados.
Como o RBAC para Aplicativos funciona junto com as Políticas de Acesso ao Aplicativo?
Compatibilidade com a Política de Acesso ao Aplicativo:
O RBAC para Aplicativos substitui as Políticas de Acesso ao Aplicativo.
A interoperabilidade de autorização pode ser descrita da seguinte forma:
As políticas de acesso ao aplicativo restringem SOMENTE as permissões atribuídas no Microsoft Entra ID.
O RBAC para Aplicativos oferece uma expressão alternativa de autorização com um escopo de recurso associado.
Um aplicativo pode ter permissões consentidas do Microsoft Entra e atribuições RBAC. Esperamos esse caso quando um aplicativo tiver (por exemplo) configurações de
Mail.ReadarquivoMail.Send.Os consentimentos de permissão são aditivos.
Exemplo um: consentimentos de 2 sistemas:
- Um aplicativo tem
Mail.Readno Microsoft Entra ID. - Este aplicativo tem como escopo o grupo de segurança habilitado para email 1 usando uma Política de Acesso ao Aplicativo.
- O mesmo aplicativo consentiu
Calendar.Readpara o Escopo de Gerenciamento 1 no RBAC para Aplicativos. - A caixa de correio A está no grupo de segurança 1 habilitado para email.
- A Caixa de Correio B está no escopo do Escopo de Gerenciamento 1.
Acesso do MS Graph a um ponto de extremidade que exige e Mail.ReadCalendar.Read para o Aplicativo 1:
- Caixa de correio de direcionamento A: falha.
- Caixa de correio de direcionamento B: falha.
Esse ponto de extremidade precisa de ambos e Mail.ReadCalendar.Read. Embora o aplicativo tenha essas permissões individualmente em duas caixas de correio separadas, ele não tem ambas as permissões em uma caixa de correio.
Exemplo dois: atribuir a mesma permissão duas vezes:
- Um aplicativo tem
Mail.Readno Microsoft Entra ID. - Este aplicativo tem como escopo o grupo de segurança habilitado para email 1 usando uma política de Acesso ao Aplicativo.
- O mesmo aplicativo consentiu
Mail.Readpara o Escopo de Gerenciamento 1 usando RBAC para Aplicativos. - A caixa de correio A está no grupo de segurança 1 habilitado para email.
- O Escopo de Gerenciamento 1 permite acesso a todas as caixas de correio, exceto a Caixa de Correio A (de acordo com alguns filtros como
Alias -ne mbxa).
Acesso do MS Graph a um ponto de extremidade necessário Mail.Read para o Aplicativo 1:
- Caixa de correio de direcionamento A: permitir.
- Caixa de correio de direcionamento B: permitir.
Enquanto o Mail.Read do Microsoft Entra-only permite acesso à Caixa de Correio A, a atribuição RBAC permite acesso a tudo, exceto A. Com efeito, essa atribuição permite acesso a tudo porque "A e Não A" significa tudo.
Embora tenhamos descrito esses casos extremos para integridade, não esperamos que as Políticas de Acesso ao Aplicativo sejam normalmente usadas com RBAC para Aplicativos. As permissões de toda a organização devem ser atribuídas no Microsoft Entra ID, enquanto as permissões no escopo do recurso devem ser concedidas usando o RBAC para Aplicativos.
Quantos aplicativos têm suporte do RBAC for Applications?
Você pode ter até 10.000 aplicativos por organização usando o RBAC para Aplicativos. Informe-nos se esse limite representa um problema para você. Criamos o RBAC for Applications de uma maneira altamente escalonável para acomodar as necessidades de nossos maiores clientes.
Por que a Descoberta Automática não está funcionando?
Atualmente, o serviço de Descoberta Automática não pode ser acessado ao usar funções de aplicativo RBAC.
Se eu excluir uma entidade de serviço no Microsoft Entra, o que acontece no Exchange?
As entidades de serviço excluídas no Microsoft Entra também são removidas automaticamente no Exchange. Essa remoção exclui todas as atribuições feitas a essas entidades de serviço, mas não afeta os escopos de gerenciamento.
Comentários sobre este recurso
Os comentários sobre esse recurso podem ser compartilhados com exoapprbacpreview@microsoft.como .