Authentification basée sur l’application dans le module PowerShell Teams

L’authentification basée sur l’application est désormais prise en charge dans le module PowerShell Teams avec

  • Versions 4.7.1-preview ou ultérieures dans les environnements commerciaux & GCC.
  • Versions 5.0.1-preview ou ultérieures dans les environnements GCC High & DoD.

Applets de commande prises en charge

Toutes les applets de commande sont désormais prises en charge, à l’exception des applets de commande mentionnées ci-dessous.

  • New-Team
  • [Get|Définir|Nouveau|Sync]-CsOnlineApplicationInstance
  • *PolicyPackage*
  • *-CsTeamsShiftsConnection*
  • *-CsBatchTeamsDeployment*
  • [Get|Set]-CsTeamsSettingsCustomApp
  • Get-MultiGeoRegion

Exemples

Les exemples suivants montrent comment utiliser le module PowerShell Teams avec l’authentification Microsoft Entra basée sur l’application :

  • Se connecter à l’aide d’une empreinte numérique de certificat :

    Connect-MicrosoftTeams -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
    

    Lorsque vous utilisez le paramètre CertificateThumbprint, le certificat doit être installé sur l’ordinateur sur lequel vous exécutez la commande. Le certificat doit être installé dans le magasin de certificats utilisateur.

  • Se connecter à l’aide d’un objet de certificat :

    Connect-MicrosoftTeams -Certificate <%X509Certificate2 object%> -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
    

    Lorsque vous utilisez le paramètre Certificate, le certificat n’a pas besoin d’être installé sur l’ordinateur sur lequel vous exécutez la commande. Le certificat peut être stocké à distance & extrait lors de l’exécution du script. Le paramètre Certificate est disponible à partir du module PowerShell Teams version 4.9.2-preview ou ultérieure.

  • Se connecter à l’aide de jetons d’accès :

    Les jetons d’accès peuvent être récupérés via le point de terminaison login.microsoftonline.com. Il nécessite deux jetons d’accès : les ressources « MS Graph » et « API Administration client Skype et Teams ».

    $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")
    

Comment cela fonctionne-t-il ?

Le module PowerShell Teams récupère le jeton basé sur l’application à l’aide de l’ID d’application, de l’ID de locataire et de l’empreinte numérique du certificat. Un rôle d’annuaire est attribué à l’objet d’application approvisionné à l’intérieur de Microsoft Entra ID, qui est retourné dans le jeton d’accès. Le contrôle d’accès en fonction du rôle (RBAC) de la session est configuré à l’aide des informations de rôle d’annuaire disponibles dans le jeton.

Configurer l’authentification basée sur l’application

Une intégration initiale est requise pour l’authentification à l’aide d’objets d’application. L’application et le principal de service sont utilisés indifféremment, mais une application est comme un objet de classe tandis qu’un principal de service est comme un instance de la classe. Pour en savoir plus sur ces objets, consultez Application et objets de principal de service dans Microsoft Entra ID.

Les exemples d’étapes de création d’applications dans Microsoft Entra ID sont mentionnés ci-dessous. Pour obtenir des instructions détaillées, reportez-vous à cet article.

  1. Inscrivez l’application dans Microsoft Entra ID.
  2. Attribuez des autorisations d’API à l’application.
    • Pour les applets de commande *-Cs , l’autorisation Microsoft API Graph nécessaire est Organization.Read.All.
    • Pour les applets de commande Non*-Cs, les autorisations microsoft API Graph nécessaires sont Organization.Read.All, User.Read.All, Group.ReadWrite.All, AppCatalog.ReadWrite.All, TeamSettings.ReadWrite.All, Channel.Delete.All, ChannelSettings.ReadWrite.AllChannelMember.ReadWrite.All.
  3. Générez un certificat auto-signé.
  4. Attachez le certificat à l’application Microsoft Entra.
  5. Attribuez Microsoft Entra rôles à l’application. Reportez-vous à cette procédure Attribuer un rôle , mais recherchez l’application au lieu d’un utilisateur.

Les rôles RBAC appropriés doivent être attribués à l’application. Étant donné que les applications sont approvisionnées dans Microsoft Entra ID, vous pouvez utiliser l’un des rôles intégrés pris en charge.