Configurar autenticação baseada em certificados ou autenticação somente de app
Uma integração inicial é necessária para autenticação usando objetos de aplicação. A aplicação e a entidade de serviço são usadas de forma intercambiável, mas uma aplicação é como um objeto de classe, enquanto uma entidade de serviço é como uma instância da classe.
Para obter mais informações sobre objetos principais de serviço e aplicação no Azure Active Directory, consulte Objetos principais de serviço e aplicativo no Azure Active Directory. Para obter um fluxo visual detalhado sobre como criar aplicações no Azure AD, consulte Criar uma aplicação e entidade de serviço do Azure Active Directory que possa acessar recursos do.
- Registre a aplicação no Azure AD.
- Atribua permissões de API à aplicação.
Para que o objeto de aplicação acesse recursos, ele precisa ter a permissão de aplicação
Exchange.ManageAsAppeMail.ReadWrite. - Gere um certificado autoassinado e conceda acesso à chave privada.
Crie e configure um certificado X.509 autoassinado, que é usado para autenticar sua aplicação em relação ao Azure AD, ao solicitar o token de acesso somente da aplicação. Os certificados de próxima geração (CNG) não são compatíveis com a autenticação somente de aplicativo com o Exchange. Os certificados CNG são criados por padrão nas versões modernas do Windows. Você deve usar um certificado de um provedor de chaves CSP.
(-Provider = 'Provedor de criptografia forte da Microsoft'). - Anexe o certificado à aplicação do Azure AD.
- Atribua funções do Azure AD à aplicação.
A aplicação precisa ter a função
Administrador de conformidade doAzure AD atribuída. - Crie uma nova entidade de serviço.
Etapa 1: registrar a aplicação no Azure AD
- Abra o portal do Azure AD.
- Na caixa Pesquisar na parte superior da página, digite Registros de app.
- Selecione Registros de app nos resultados na seção Serviços.
Como alternativa, você pode navegar até a página Registros de aplicações usando https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade.
- Na página Registros de aplicações, selecione Novo registro.
- Na páginaRegistrar uma aplicação, defina as seguintes configurações:
Campo Descrição Nome Insira algo descritivo. Por exemplo, ExO PowerShell CBA. Tipos de conta compatíveis Verifique se Contas somente neste diretório organizacional ( <YourOrganizationName> somente - locatário único) está selecionado. Para tornar a aplicação multilocatária para cenários delegados do Exchange Online, selecione o valor Contas em qualquer diretório organizacional (Qualquer diretório do Azure AD - Multilocatário).
- Depois de concluir o registro do aplicativo, selecione Registrar e feche a página do aplicativo.
Etapa 2: atribuir permissões de API à aplicação
Os procedimentos nesta seção substituem todas as permissões padrão que foram configuradas automaticamente para o novo app. O app não precisa das permissões padrão que foram substituídas.
- Na página do aplicativo, selecione Manifesto em Gestão.
- Na página Manifesto, localize a entrada
requiredResourceAccess(na linha 47 ou próximo a ela). - Modifique os valores de
resourceAppId,resourceAccess idetipo de resourceAccessconforme mostrado no seguinte snippet de código:"requiredResourceAccess": [ { "resourceAppId": "00000002-0000-0ff1-ce00-000000000000", "resourceAccess": [ { "id": "dc50a0fb-09a3-484d-be87-e023b12c6440", "type": "Role" } ] }, { "resourceAppId": "00000003-0000-0000-c000-000000000000", "resourceAccess": [ { "id": "e2a3a72e-5f79-4c64-b1b1-878b674786c9", "type": "Role" } ] } ], - Selecione Salvar.
- Na página Manifesto, selecione Permissões de API em Gestão.
- Na página Permissões de API, preencha os campos.
Campo Descrição Nome da API/permissões Verifique se o valor Exchange.ManageAsAppeMail.ReadWriteé mostrado.Status O valor incorreto atual é Não concedido para<Organization> , e este valor precisa ser alterado. Selecione Conceder consentimento ao administrador para<Organization> , leia a caixa de diálogo de confirmação que é aberta e selecione Sim.
O valor de Status agora deve ser Concedido para<Organization> .
- Feche a página de permissões de API atual (não a guia do navegador) para retornar à página de registros da aplicação.
Etapa 3: gerar um certificado autoassinado e conceder acesso à chave privada
- Use os cmdlets New-SelfSignedCertificate, Export-Certificatee Export-PfxCertificate em uma sessão elevada (executar como administrador) do Windows PowerShell para solicitar um certificado autoassinado e exportá-lo para
.cere.pfx(SHA1 por padrão). Por exemplo:# Create certificate $mycert = New-SelfSignedCertificate -DnsName "snowsecops.onmicrosoft.com" -CertStoreLocation "cert:\LocalMachine\My" -NotAfter (Get-Date).AddYears(2) -KeySpec KeyExchange -Provider "Microsoft Strong Cryptographic Provider" # Generate password fro private key $mypwd = ConvertTo-SecureString -String '<password>' -Force -AsPlainText # Export certificate to .pfx file $mycert | Export-PfxCertificate -FilePath mycert.pfx -Password $mypwd # Export certificate to .cer file $mycert | Export-Certificate -FilePath mycert.cer - Forneça acesso de chave privada ao usuário do serviço MID usando as seguintes etapas:
- Abra o MMC (Microsoft Management Console).
- No Console de gestão Microsoft (MMC), navegue até .
(Se o MMC não tiver nenhum item de menu, adicione-o navegando até .
- Clique com o botão direito do mouse no certificado que você gerou.
- Expandir
- Adicione o usuário do serviço MID à lista de acessadores.
Etapa 4: anexar o certificado à aplicação do Azure AD
- Na guia Aplicações de propriedade na página Registro de aplicações no final da Etapa 2, selecione sua aplicação.
Se você precisar voltar para a página Registro de aplicações, use https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/%7E/RegisteredApps, verifique se a guia Aplicações próprias está selecionada e selecione sua aplicação.
- Selecione Certificados e segredos em Gerenciar.
- Na página Certificados e segredos que é aberta, selecione Carregar certificado.
- Navegue até o certificado autoassinado (arquivo
.cer) que você criou na Etapa 3. - Depois de concluir, selecione Adicionar.
O certificado agora é mostrado na seção Certificados.
- Anote
CertificateThumbprinte feche a página atual de certificados e segredos.
Etapa 5: atribuir funções do Azure AD à aplicação
- Abra o portal do Azure AD.
- No campo Pesquisar na parte superior da página, procure Funções e Administradores.
- Selecione Funções e administradores do Azure AD nos resultados na seção Serviços.
Como alternativa, você pode navegar até a página de funções e administradores do Azure AD usando https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade.
- Na página Funções e administradores do Azure AD, localize e selecione uma das funções compatíveis clicando no nome da função (não na caixa de seleção) nos resultados.
Encontre e selecione a função de Administrador de Conformidade.
- Na página Atribuições, selecione Adicionar atribuições.
- No pop-up Adicionar atribuições, localize e selecione o app que você criou na Etapa 1.
- Depois de concluir, selecione Adicionar.
- Volte para a página Atribuições e verifique se a função foi atribuída ao app.
Etapa 6: criar uma nova entidade de serviço
- Execute o seguinte comando para armazenar os detalhes da aplicação do Azure que você registrou na Etapa 1 (<AppName> ) em uma variável:
Install-Module -Name AzureAD Import-Module -Name AzureAD Connect-AzureAD $AADApp = Get-AzureADServicePrincipal -SearchString"<AppName>"Para obter informações detalhadas de sintaxe e parâmetro, consulte Get-AzureADServicePrincipal.
- Na mesma janela do PowerShell, conecte-se ao PowerShell de Segurança e Conformidade:
Import-Module ExchangeOnlineManagement Connect-IPPSSession -CertificateThumbPrint "<Your_Certificate_ThumbPrint>" -AppID $AADApp.AppId -Organization "<Your_organization>Execute os seguintes comandos para criar um objeto principal de serviço para a aplicação do Azure:New-ServicePrincipal -AppId $AADApp.AppId -ObjectId $AADApp.ObjectId -DisplayName "<Descriptive Name>"Para obter informações detalhadas de sintaxe e parâmetro, consulte New-ServicePrincipal.