Autenticazione solo app per script automatici in PowerShell di Exchange Online e PowerShell conformità & sicurezza
Gli scenari di controllo e creazione di report di Microsoft 365 spesso coinvolgono script automatici in PowerShell per Exchange Online e in PowerShell per Sicurezza e conformità. In passato, l'accesso automatico richiedeva di archiviare il nome utente e la password in un file locale o in un insieme di credenziali segreto a cui si accede in fase di esecuzione. Tuttavia, come tutti sappiamo, l'archiviazione delle credenziali utente in locale non è una buona procedura di sicurezza.
L'autenticazione basata su certificati (CBA) o l'autenticazione solo app, come descritto in questo articolo, supporta scenari di script e automazione automatica usando le app Microsoft Entra e i certificati autofirmati.
Nota
Si sapeva che è possibile connettersi a PowerShell di Exchange Online usando identità gestite in Azure? Vedere Usare le identità gestite di Azure per connettersi a PowerShell di Exchange Online.
Le funzionalità e le procedure descritte in questo articolo richiedono le versioni seguenti del modulo PowerShell di Exchange Online:
- PowerShell per Exchange Online (Connect-ExchangeOnline): versione 2.0.3 o successiva.
- Security & Compliance PowerShell (Connect-IPPSSession): versione 3.0.0 o successiva.
Per istruzioni su come installare o aggiornare il modulo, vedere Installare e gestire il modulo PowerShell di Exchange Online. Per istruzioni su come usare il modulo nell'automazione di Azure, vedere Gestire i moduli in Automazione di Azure.
Le connessioni API REST nel modulo PowerShell V3 di Exchange Online richiedono i moduli PowerShellGet e PackageManagement. Per altre informazioni, vedere PowerShellGet per le connessioni basate su REST in Windows.
Se le procedure descritte in questo articolo non funzionano, verificare di non avere versioni beta dei moduli PackageManagement o PowerShellGet installate eseguendo il comando seguente:
Get-InstalledModule PackageManagement -AllVersions; Get-InstalledModule PowerShellGet -AllVersions
.In Exchange Online PowerShell non è possibile usare le procedure descritte in questo articolo con i cmdlet di Gruppo di Microsoft 365 seguenti:
È possibile usare Microsoft Graph per sostituire la maggior parte delle funzionalità di tali cmdlet. Per altre informazioni, vedere Uso dei gruppi in Microsoft Graph.
In PowerShell sicurezza & conformità non è possibile usare le procedure descritte in questo articolo con i cmdlet di Gruppo di Microsoft 365 seguenti:
Gli scenari delegati sono supportati in Exchange Online. Il metodo consigliato per la connessione con la delega consiste nell'usare GDAP e il consenso all'app. Per altre informazioni, vedere Usare il modulo PowerShell v3 di Exchange Online con GDAP e Consenso app. È anche possibile usare applicazioni multi-tenant quando le relazioni CSP non vengono create con il cliente. I passaggi necessari per l'uso di applicazioni multi-tenant vengono descritti nelle istruzioni regolari in questo articolo.
Usare l'opzione SkipLoadingFormatData nel cmdlet Connect-ExchangeOnline se viene visualizzato l'errore seguente quando si usa Windows PowerShell SDK per la connessione:
The term 'Update-ModuleManifest' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Come funziona?
Il modulo PowerShell di Exchange Online usa la libreria di autenticazione di Active Directory per recuperare un token solo app usando l'ID applicazione, l'ID tenant (organizzazione) e l'identificazione personale del certificato. All'oggetto applicazione di cui è stato effettuato il provisioning all'interno di Microsoft Entra ID è assegnato un ruolo di directory, che viene restituito nel token di accesso. Il controllo degli accessi in base al ruolo (RBAC) della sessione viene configurato utilizzando le informazioni sul ruolo della directory disponibili nel token.
Esempi di connessione
Gli esempi seguenti illustrano come usare il modulo PowerShell di Exchange Online con l'autenticazione solo app:
Importante
Nei comandi di connessione seguenti usare il dominio primario .onmicrosoft.com
per l'organizzazione come valore del parametro Organization .
I comandi di connessione seguenti includono molte delle stesse opzioni disponibili come descritto in Connettersi a PowerShell di Exchange Online e Connettersi a PowerShell per la sicurezza & conformità. Ad esempio:
Gli ambienti Microsoft 365 GCC High o Microsoft 365 DoD richiedono i parametri e i valori aggiuntivi seguenti:
-
Connect-ExchangeOnline in GCC High:
-ExchangeEnvironmentName O365USGovGCCHigh
. -
Connect-IPPSSession in GCC High:
-ConnectionUri https://ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/common
. -
Connect-ExchangeOnline in DoD:
-ExchangeEnvironmentName O365USGovDoD
. -
Connect-IPPSSession in DoD:
-ConnectionUri https://l5.ps.compliance.protection.office365.us/powershell-liveid/ -AzureADAuthorizationEndpointUri https://login.microsoftonline.us/common
.
-
Connect-ExchangeOnline in GCC High:
Se un comando Connect-IPPSSession presenta un prompt di accesso, eseguire il comando :
$Global:IsWindows = $true
prima del comando Connect-IPPSSession .
Connettersi usando un'identificazione personale del certificato:
Nota
Il parametro CertificateThumbprint è supportato solo in Microsoft Windows.
Il certificato deve essere installato nel computer in cui si esegue il comando. Il certificato deve essere installato nell'archivio certificati utente.
PowerShell per Exchange Online
Connect-ExchangeOnline -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
PowerShell per Sicurezza e conformità:
Connect-IPPSSession -CertificateThumbPrint "012THISISADEMOTHUMBPRINT" -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
Connettersi usando un oggetto certificato:
Il certificato non deve essere installato nel computer in cui si esegue il comando. È possibile archiviare l'oggetto certificato in remoto. Il certificato viene recuperato quando viene eseguito lo script.
PowerShell per Exchange Online
Connect-ExchangeOnline -Certificate <%X509Certificate2 Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
PowerShell per Sicurezza e conformità:
Connect-IPPSSession -Certificate <%X509Certificate2 Object%> -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
Connettersi usando un certificato locale:
Nota
L'uso di un comando ConvertTo-SecureString per archiviare la password del certificato in locale elimina lo scopo di un metodo di connessione sicuro per gli scenari di automazione. L'uso di un comando Get-Credential per richiedere la password del certificato in modo sicuro non è ideale per gli scenari di automazione. In altre parole, non esiste un modo automatizzato e sicuro per connettersi usando un certificato locale.
PowerShell per Exchange Online
Connect-ExchangeOnline -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (Get-Credential).password -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
PowerShell per Sicurezza e conformità:
Connect-IPPSSession -CertificateFilePath "C:\Users\navin\Desktop\automation-cert.pfx" -CertificatePassword (Get-Credential).password -AppID "36ee4c6c-0812-40a2-b820-b22ebd02bce3" -Organization "contosoelectronics.onmicrosoft.com"
Configurare l'autenticazione solo app
Per l'autenticazione usando gli oggetti applicazione è necessaria una procedura di onboarding iniziale. L'applicazione e l'entità servizio vengono usati in modo intercambiabile, ma un'applicazione è simile a un oggetto classe, mentre un'entità servizio è come un'istanza della classe. Per altre informazioni, vedere Oggetti applicazione e entità servizio in Microsoft Entra ID.
Per un flusso visivo dettagliato sulla creazione di applicazioni in Microsoft Entra ID, vedere https://aka.ms/azuread-app.
Assegnare autorizzazioni API all'applicazione.
Per impostazione predefinita, un oggetto applicazione dispone dell'autorizzazione API delegataMicrosoft Graph>User.Read . Per consentire all'oggetto applicazione di accedere alle risorse in Exchange, è necessaria l'autorizzazione api applicazioneOffice 365 Exchange Online>Exchange.ManageAsApp.
Generare un certificato autofirmato
Per l'autenticazione solo app in Microsoft Entra ID, in genere si usa un certificato per richiedere l'accesso. Chiunque abbia il certificato e la relativa chiave privata può usare l'app con le autorizzazioni concesse all'app.
Creare e configurare un certificato X.509 autofirmato, usato per autenticare l'applicazione in base all'ID Microsoft Entra, richiedendo al tempo stesso il token di accesso solo app.
Questa procedura è simile alla generazione di una password per gli account utente. Il certificato può essere autofirmato. Vedere questa sezione più avanti in questo articolo per istruzioni sulla generazione di certificati in PowerShell.
Nota
Crittografia: i certificati CNG (Next Generation) non sono supportati per l'autenticazione solo app con Exchange. I certificati CNG vengono creati per impostazione predefinita nelle versioni moderne di Windows. È necessario usare un certificato di un provider chiave CSP. Questa sezione illustra due metodi supportati per creare un certificato CSP.
Assegnare i ruoli di Microsoft Entra all'applicazione
È necessario che siano assegnati i ruoli RBAC appropriati per l'applicazione. Poiché il provisioning delle app viene eseguito in Microsoft Entra ID, è possibile usare uno dei ruoli predefiniti supportati.
Passaggio 1: Registrare l'applicazione in Microsoft Entra ID
Nota
Nota: in caso di problemi, controllare le autorizzazioni necessarie per verificare che l'account possa creare l'identità.
Aprire l'interfaccia di amministrazione di Microsoft Entra all'indirizzo https://portal.azure.com/.
Nella casella Cerca nella parte superiore della pagina iniziare a digitare Registrazioni app e quindi selezionare Registrazioni app dai risultati nella sezione Servizi .
In alternativa, per passare direttamente alla pagina Registrazioni app , usare https://portal.azure.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade.
Nella pagina Registrazioni app selezionare Nuova registrazione.
Nella pagina Registrare un'applicazione, configurare le seguenti impostazioni:
Nome: inserire un nome descrittivo. Ad esempio, ExO PowerShell CBA.
Tipi di account supportati: verificare che sia selezionata solo l'opzione Account in questa directory organizzativa (<solo NomeOrganizzazione> - Tenant singolo).
Nota
Per rendere l'applicazione multi-tenant per gli scenari delegati di Exchange Online , selezionare il valore Account in qualsiasi directory organizzativa (Qualsiasi directory Di Microsoft Entra - Multi-tenant).To make the application multi-tenant for Exchange Online delegate scenarios, select the value Accounts in any organizational directory (Any Microsoft Entra directory - Multitenant).
URI di reindirizzamento (facoltativo): questa impostazione è facoltativa. Se è necessario usarlo, configurare le impostazioni seguenti:
- Piattaforma: selezionare Web.
- URI: immettere l'URI in cui viene inviato il token di accesso.
Nota
Non è possibile creare credenziali per le applicazioni native, perché non è possibile usare applicazioni native per le applicazioni automatizzate.
Al termine della pagina Registrazioni app , selezionare Registra.
Viene visualizzata la pagina Panoramica dell'app appena registrata. Lasciare aperta questa pagina. La vedrai nel passaggio successivo.
Passaggio 2: assegnare autorizzazioni API all'applicazione
Scegliere uno dei metodi seguenti in questa sezione per assegnare le autorizzazioni API all'app:
- Selezionare e assegnare le autorizzazioni API dal portale.
- Modificare il manifesto dell'app per assegnare le autorizzazioni API. (Le organizzazioni Microsoft 365 GCC High e DoD devono usare questo metodo)
Selezionare e assegnare le autorizzazioni API dal portale
Nella pagina Panoramica dell'app selezionare Autorizzazioni API nella sezione Gestisci .
Nella pagina Autorizzazioni API dell'app selezionare Aggiungi un'autorizzazione.
Nel riquadro a comparsa Richiedi autorizzazioni API visualizzato selezionare la scheda API usate dall'organizzazione , iniziare a digitare Office 365 Exchange Online nella casella Di ricerca e quindi selezionarla dai risultati.
Nel riquadro a comparsa Tipo di autorizzazioni richiesto dall'applicazione selezionareAutorizzazioni applicazione.
Nell'elenco delle autorizzazioni visualizzato espandere Exchange, selezionare Exchange.ManageAsApp e quindi selezionare Aggiungi autorizzazioni.
Tornare alla pagina delle autorizzazioni dell'API per le app, verificare che Office 365 Exchange Online>Exchange.ManageAsApp sia elencato e contenga i valori seguenti:
Tipo: Applicazione.
Consenso amministratore richiesto: Sì.
Stato: il valore non corretto corrente non viene concesso per <l'organizzazione>.
Modificare questo valore selezionando Concedi consenso amministratore per <l'organizzazione>, leggendo la finestra di dialogo di conferma visualizzata e quindi selezionando Sì.
Il valore Status è ora Concesso per <l'organizzazione>.
Per la voce predefinitaUser.Read di Microsoft Graph>, selezionare ...>Revocare il consenso amministratore e quindi selezionare Sì nella finestra di dialogo di conferma visualizzata per restituire Stato al valore vuoto predefinito.
Chiudere la pagina Autorizzazioni API (non la scheda del browser) per tornare alla pagina Registrazioni app. Usare la pagina Registrazioni app in un passaggio successivo.
Modificare il manifesto dell'app per assegnare autorizzazioni API
Nota
Le procedure in questa sezione aggiungono le autorizzazioni predefinite esistenti per l'app (autorizzazioni User.Read delegate in Microsoft Graph) con le autorizzazioni Exchange.ManageAsApp necessarie in Office 365 Exchange Online.
Nella pagina Panoramica dell'app selezionare Manifesto nella sezione Gestisci .
Nella pagina Manifesto dell'app trovare la
requiredResourceAccess
voce (nella riga 42 o verso la riga 42) e fare in modo che la voce sia simile al frammento di codice seguente:"requiredResourceAccess": [ { "resourceAppId": "00000002-0000-0ff1-ce00-000000000000", "resourceAccess": [ { "id": "dc50a0fb-09a3-484d-be87-e023b12c6440", "type": "Role" } ] }, { "resourceAppId": "00000003-0000-0000-c000-000000000000", "resourceAccess": [ { "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d", "type": "Scope" } ] } ],
Nota
Gli ambienti Microsoft 365 GCC High o DoD hanno accesso solo a PowerShell security & Compliance. Usare i valori seguenti per la
requiredResourceAccess
voce:"requiredResourceAccess": [ { "resourceAppId": "00000007-0000-0ff1-ce00-000000000000", "resourceAccess": [ { "id": "455e5cd2-84e8-4751-8344-5672145dfa17", "type": "Role" } ] }, { "resourceAppId": "00000003-0000-0000-c000-000000000000", "resourceAccess": [ { "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d", "type": "Scope" } ] } ],
Al termine della pagina Manifesto , selezionare Salva.
Sempre nella pagina Manifesto selezionare Autorizzazioni API nella sezione Gestisci .
Nella pagina Autorizzazioni API verificare che Office 365 Exchange Online>Exchange.ManageAsApp sia elencato e contenga i valori seguenti:
Tipo: Applicazione.
Consenso amministratore richiesto: Sì.
Stato: il valore non corretto corrente non viene concesso per <l'organizzazione> per la voce Office 365 Exchange Online>Exchange.ManageAsApp .
Modificare il valore Stato selezionando Concedi consenso amministratore per <l'organizzazione>, leggendo la finestra di dialogo di conferma visualizzata e quindi selezionando Sì.
Il valore Status è ora Concesso per <l'organizzazione>.
Per la voce predefinitaUser.Read di Microsoft Graph>, selezionare ...>Revocare il consenso amministratore e quindi selezionare Sì nella finestra di dialogo di conferma visualizzata per restituire Stato al valore vuoto predefinito.
Chiudere la pagina Autorizzazioni API (non la scheda del browser) per tornare alla pagina Registrazioni app. Usare la pagina Registrazioni app in un passaggio successivo.
Passaggio 3: generare un certificato autofirmato
Creare un certificato x.509 autofirmato usando uno dei metodi seguenti:
(Consigliato) Usare i cmdlet New-SelfSignedCertificate, Export-Certificate e Export-PfxCertificate in una sessione di Windows PowerShell con privilegi elevati (eseguita come amministratore) per richiedere un certificato autofirmato ed esportarlo in
.cer
e.pfx
(SHA1 per impostazione predefinita). Ad esempio:# Create certificate $mycert = New-SelfSignedCertificate -DnsName "contoso.org" -CertStoreLocation "cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(1) -KeySpec KeyExchange # Export certificate to .pfx file $mycert | Export-PfxCertificate -FilePath mycert.pfx -Password (Get-Credential).password # Export certificate to .cer file $mycert | Export-Certificate -FilePath mycert.cer
Usare lo script Create-SelfSignedCertificate per generare certificati SHA1.
.\Create-SelfSignedCertificate.ps1 -CommonName "MyCompanyName" -StartDate 2021-01-06 -EndDate 2022-01-06
Passaggio 4: Collegare il certificato all'applicazione Microsoft Entra
Dopo aver registrato il certificato con l'applicazione, è possibile usare la chiave privata (file con estensione.pfx
) o l'identificazione personale per l'autenticazione.
Nella scheda Applicazioni di proprietà della pagina Di registrazione app dalla fine del passaggio 2 selezionare l'applicazione.
Se è necessario tornare alla pagina di registrazione delle app , usare https://portal.azure.com/#view/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/~/RegisteredApps, verificare che sia selezionata la scheda Applicazioni di proprietà e quindi selezionare l'applicazione.
Nella pagina dell'applicazione visualizzata selezionare Certificati & segreti nella sezione Gestione .
Nella pagina Certificati & segreti selezionare Carica certificato.
Nella finestra di dialogo visualizzata, passare al certificato autofirmato (file
.cer
) creato nel Passaggio 3.Al termine, selezionare Aggiungi.
Il certificato SharePointSSL verrà visualizzato nella sezione Certificati.
Chiudere la pagina Certificati e segreti e la pagina Registrazioni app e tornare alla pagina https://portal.azure.com/ principale. Tale pagina verrà usata nel passaggio successivo.
Passaggio 4b: Solo scenari delegati di Exchange Online: Concedere il consenso amministratore per l'app multi-tenant
Se è stato creato il multi-tenant dell'applicazione per gli scenari delegati di Exchange Online nel passaggio 1, è necessario concedere il consenso dell'amministratore all'autorizzazione Exchange.ManageAsApp in modo che l'applicazione possa eseguire cmdlet in Exchange Online in ogni organizzazione tenant. A tale scopo, generare un URL di consenso amministratore per ogni tenant del cliente. Prima che qualcuno usi l'applicazione multi-tenant per connettersi a Exchange Online nell'organizzazione tenant, un amministratore del tenant del cliente deve aprire l'URL seguente:
https://login.microsoftonline.com/<tenant-id>/adminconsent?client_id=<client-id>&scope=https://outlook.office365.com/.default
-
<tenant-id>
è l'ID tenant del cliente. -
<client-id>
è l'ID dell'applicazione multi-tenant. - L'ambito predefinito viene usato per concedere le autorizzazioni dell'applicazione.
Per altre informazioni sulla sintassi dell'URL, vedere Richiedere le autorizzazioni a un amministratore di directory.
Passaggio 5: Assegnare i ruoli di Microsoft Entra all'applicazione
Sono disponibili due opzioni:
- Assegnare i ruoli di Microsoft Entra all'applicazione
- Assegnare gruppi di ruoli personalizzati all'applicazione usando le entità servizio: questo metodo è supportato solo quando ci si connette a PowerShell di Exchange Online o a Security & Compliance PowerShell in modalità API REST. Security & Compliance PowerShell supporta la modalità API REST nella versione 3.2.0 o successiva.
Nota
È anche possibile combinare entrambi i metodi per assegnare le autorizzazioni. Ad esempio, è possibile usare i ruoli di Microsoft Entra per il ruolo "Amministratore destinatario exchange" e assegnare anche il ruolo controllo degli accessi in base al ruolo personalizzato per estendere le autorizzazioni.
Per le applicazioni multi-tenant negli scenari delegati di Exchange Online , è necessario assegnare le autorizzazioni in ogni tenant del cliente.
Assegnare i ruoli di Microsoft Entra all'applicazione
I ruoli microsoft entra supportati sono descritti nella tabella seguente:
Ruolo | Exchange Online PowerShell |
Sicurezza e conformità PowerShell |
---|---|---|
Amministratore conformità | ✔ | ✔ |
Amministratore di Exchange¹ | ✔ | |
Amministratore destinatario di Exchange | ✔ | |
Amministratore globale¹ ² | ✔ | ✔ |
Lettore globale | ✔ | ✔ |
Amministratore helpdesk | ✔ | |
Amministratore della sicurezza¹ | ✔ | ✔ |
Ruolo con autorizzazioni di lettura per la sicurezza | ✔ | ✔ |
¹ I ruoli Amministratore globale e Amministratore di Exchange forniscono le autorizzazioni necessarie per qualsiasi attività in PowerShell di Exchange Online. Ad esempio:
- Gestione destinatari.
- Funzionalità di sicurezza e protezione. Ad esempio, protezione da posta indesiderata, antimalware, anti-phishing e i report associati.
Il ruolo di amministratore della sicurezza non dispone delle autorizzazioni necessarie per le stesse attività.
² Microsoft consiglia di usare i ruoli con il minor numero di autorizzazioni. L'uso di account con autorizzazioni inferiori consente di migliorare la sicurezza per l'organizzazione. Amministratore globale è un ruolo con privilegi elevati che deve essere limitato agli scenari di emergenza quando non è possibile usare un ruolo esistente.
Per istruzioni generali sull'assegnazione di ruoli in Microsoft Entra ID, vedere Assegnare ruoli di Microsoft Entra agli utenti.
Nota
I passaggi seguenti sono leggermente diversi per PowerShell per Exchange Online e PowerShell per Sicurezza e conformità. Vengono mostrati i passaggi per entrambi gli ambienti. Per configurare i ruoli per entrambi gli ambienti, ripetere i passaggi descritti in questa sezione.
Nell'interfaccia di amministrazione di Microsoft Entra in iniziare a https://portal.azure.com/digitare ruoli e amministratori nella casella Di ricerca nella parte superiore della pagina e quindi selezionare Ruoli e amministratori di Microsoft Entra dai risultati nella sezione Servizi .
In alternativa, per passare direttamente alla pagina Ruoli e amministratori di Microsoft Entra , usare https://portal.azure.com/#view/Microsoft_AAD_IAM/AllRolesBlade.
Nella pagina Ruoli e amministratori trovare e selezionare uno dei ruoli supportati facendo clic nome del ruolo (non sulla casella di controllo) nei risultati.
PowerShell di Exchange Online: ad esempio, trovare e selezionare il ruolo di amministratore di Exchange .
PowerShell per la sicurezza & conformità: ad esempio, trovare e selezionare il ruolo Amministratore conformità .
Nella pagina Assegnazioni visualizzata selezionare Aggiungi assegnazioni.
PowerShell per Exchange Online
PowerShell per Sicurezza e conformità:
Nel riquadro a comparsa Aggiungi assegnazioni, trovare e selezionare l’app creata nel Passaggio 1.
Al termine del riquadro a comparsa Aggiungi assegnazioni , selezionare Aggiungi.
Tornare alla pagina Assegnazioni , verificare che il ruolo sia stato assegnato all'app.
PowerShell per Exchange Online
PowerShell per Sicurezza e conformità:
Assegnare gruppi di ruoli personalizzati all'applicazione usando entità servizio
Nota
È necessario connettersi a PowerShell di Exchange Online o a PowerShell per la sicurezza & conformità prima di completare i passaggi per creare una nuova entità servizio. La creazione di una nuova entità servizio senza connettersi a PowerShell non funzionerà (l'ID app di Azure e l'ID oggetto sono necessari per creare la nuova entità servizio).
Questo metodo è supportato solo quando ci si connette a PowerShell di Exchange Online o a PowerShell per la sicurezza & conformità in modalità API REST. Security & Compliance PowerShell supporta la modalità API REST nella versione 3.2.0 o successiva.
Per informazioni sulla creazione di gruppi di ruoli personalizzati, vedere Creare gruppi di ruoli in Exchange Online e Creare gruppi di ruoli di collaborazione & posta elettronica nel portale di Microsoft Defender. Il gruppo di ruoli personalizzato assegnato all'applicazione può contenere qualsiasi combinazione di ruoli predefiniti e personalizzati.
Per assegnare gruppi di ruoli personalizzati all'applicazione usando entità servizio, seguire questa procedura:
In Microsoft Graph PowerShell eseguire i comandi seguenti per archiviare i dettagli dell'applicazione Microsoft Entra registrata nel passaggio 1 in una variabile:
Connect-MgGraph -Scopes AppRoleAssignment.ReadWrite.All,Application.Read.All $<VariableName1> = Get-MgServicePrincipal -Filter "DisplayName eq '<AppName>'"
Ad esempio:
Connect-MgGraph -Scopes AppRoleAssignment.ReadWrite.All,Application.Read.All $AzureADApp = Get-MgServicePrincipal -Filter "DisplayName eq 'ExO PowerShell CBA'"
Per informazioni dettagliate sulla sintassi e sui parametri, vedere Get-MgServicePrincipal.
Nella stessa finestra di PowerShell connettersi a PowerShell di Exchange Online o a PowerShell per la sicurezza & conformità ed eseguire i comandi seguenti per:
- Creare un oggetto entità servizio per l'applicazione Microsoft Entra.
- Archiviare i dettagli dell'entità servizio in una variabile da usare nel passaggio successivo.
New-ServicePrincipal -AppId $<VariableName1>.AppId -ObjectId $<VariableName1>.Id -DisplayName "<Descriptive Name>" $<VariableName2> = Get-ServicePrincipal -Identity "<Descriptive Name>"
Ad esempio:
New-ServicePrincipal -AppId $AzureADApp.AppId -ObjectId $AzureADApp.Id -DisplayName "SP for Azure AD App ExO PowerShell CBA" $SP = Get-ServicePrincipal -Identity "SP for Azure AD App ExO PowerShell CBA"
Per informazioni dettagliate sulla sintassi e sui parametri, vedere New-ServicePrincipal.
In PowerShell di Exchange Online o PowerShell security & Compliance eseguire il comando seguente per aggiungere l'entità servizio come membro del gruppo di ruoli personalizzato:
Add-RoleGroupMember -Identity "<CustomRoleGroupName>" -Member <$<VariableName2>.Identity | $<VariableName2>.ObjectId | $<VariableName2>.Id>
Ad esempio:
Add-RoleGroupMember -Identity "Contoso View-Only Recipients" -Member $SP.Identity
Per informazioni dettagliate sulla sintassi e sui parametri, vedere Add-RoleGroupMember.