Autenticazione basata su applicazioni nel modulo di Teams PowerShell
L'autenticazione basata su applicazioni è ora supportata nel modulo di PowerShell di Teams con
- Versioni 4.7.1-preview o successive in ambienti commerciali & GCC.
- Versioni 5.0.1-preview o successive negli ambienti GCC High & DoD.
Cmdlet supportati
Tutti i cmdlet sono ora supportati, ad eccezione dei cmdlet indicati di seguito.
- New-Team
- [Ottieni|Imposta|Nuovo|Sync]-CsOnlineApplicationInstance
- *PolicyPackage*
- *-CsTeamsShiftsConnection*
- *-CsBatchTeamsDeployment*
- [Ottieni|Set]-CsTeamsSettingsCustomApp
- Get-MultiGeoRegion
Esempi
Gli esempi seguenti illustrano come usare il modulo di Teams PowerShell con l'autenticazione basata su app Microsoft Entra:
Connettersi usando un'identificazione personale del certificato:
Connect-MicrosoftTeams -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
Quando si usa il parametro CertificateThumbprint, il certificato deve essere installato nel computer in cui si esegue il comando. Il certificato deve essere installato nell'archivio certificati utente.
Connettersi usando un oggetto certificato:
Connect-MicrosoftTeams -Certificate <%X509Certificate2 object%> -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
Quando si usa il parametro Certificate, non è necessario installare il certificato nel computer in cui si esegue il comando. Il certificato può essere archiviato in remoto & recuperato durante l'esecuzione dello script. Il parametro Certificato è disponibile nel modulo di Teams PowerShell versione 4.9.2-preview o successiva.
Connettersi usando i token di accesso:
I token di accesso possono essere recuperati tramite l'endpoint login.microsoftonline.com. Richiede due token di accesso: risorse "MS Graph" e "Skype and Teams Tenant Amministrazione API".
$ClientSecret = "…" $ApplicationID = "00000000-0000-0000-0000-000000000000" $TenantID = "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY" $graphtokenBody = @{ Grant_Type = "client_credentials" Scope = "https://graph.microsoft.com/.default" Client_Id = $ApplicationID Client_Secret = $ClientSecret } $graphToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $graphtokenBody | Select-Object -ExpandProperty Access_Token $teamstokenBody = @{ Grant_Type = "client_credentials" Scope = "48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default" Client_Id = $ApplicationID Client_Secret = $ClientSecret } $teamsToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $teamstokenBody | Select-Object -ExpandProperty Access_Token Connect-MicrosoftTeams -AccessTokens @("$graphToken", "$teamsToken")
Come funziona?
Il modulo PowerShell di Teams recupera il token basato sull'app usando l'ID applicazione, l'ID tenant e l'identificazione personale del certificato. All'oggetto applicazione di cui viene eseguito il provisioning all'interno di Microsoft Entra ID è assegnato un ruolo di directory, che viene restituito nel token di accesso. Il controllo degli accessi basato sui ruoli (RBAC) della sessione viene configurato usando le informazioni sul ruolo di directory disponibili nel token.
Configurare l'autenticazione basata sull'applicazione
Per l'autenticazione tramite oggetti applicazione è necessario un onboarding iniziale. L'entità applicazione e l'entità servizio vengono usate in modo intercambiabile, ma un'applicazione è simile a un oggetto di classe mentre un'entità servizio è come un'istanza della classe. Per altre informazioni su questi oggetti, vedere Oggetti entità applicazione e servizio in Microsoft Entra ID.
Di seguito sono riportati i passaggi di esempio per la creazione di applicazioni in Microsoft Entra ID. Per la procedura dettagliata, vedere questo articolo.
- Registra l'applicazione in Microsoft Entra ID.
- Assegnare autorizzazioni API all'applicazione.
- Per i cmdlet *-Cs - L'autorizzazione di Microsoft API Graph necessaria è
Organization.Read.All
. - Per i cmdlet non *-Cs - Le autorizzazioni di Microsoft API Graph necessarie sono
Organization.Read.All
, ,User.Read.All
,Group.ReadWrite.All
,AppCatalog.ReadWrite.All
TeamSettings.ReadWrite.All
,Channel.Delete.All
,ChannelSettings.ReadWrite.All
, .ChannelMember.ReadWrite.All
- Nota: non è necessario configurare le autorizzazioni API per "API tenant di Skype e Teams Amministrazione". La configurazione di questa autorizzazione potrebbe causare errori.
- Per i cmdlet *-Cs - L'autorizzazione di Microsoft API Graph necessaria è
- Generare un certificato autofirma.
- Allegare il certificato all'applicazione Microsoft Entra.
- Assegnare Microsoft Entra ruoli all'applicazione. Fare riferimento a questa procedura Assegnare un ruolo , ma cercare l'applicazione invece di un utente.
All'applicazione devono essere assegnati i ruoli RBAC appropriati. Poiché il provisioning delle app viene eseguito in Microsoft Entra ID, è possibile usare uno dei ruoli predefiniti supportati.