共用方式為


Teams PowerShell 模組中的應用程式型驗證

Teams PowerShell 模組現在支援應用程式型驗證,並具有

  • 商業 & GCC 環境中的 4.7.1-preview 版或更新版本。
  • GCC High & DoD 環境中的 5.0.1 預覽版或更新版本。

支援的 Cmdlet

現在支援所有 Cmdlet,但下面提到的 Cmdlet 除外。

  • New-Team
  • Set-CsOnlineApplicationInstance
  • [獲取|新|Sync]-CsOnlineApplicationInstance (僅在 GCC High & DoD 環境中不受支援)
  • *保單包*
  • *-CsTeamsShifts連線*
  • *-CsBatchTeams部署*
  • Set-CsTeamsSettingsCustomApp
  • Get-MultiGeoRegion
  • Get-AllM365TeamsApps
  • [獲取|更新】-M365TeamsApp
  • Get-M365UnifiedCustomPendingApps
  • [獲取|Update]-M365UnifiedTenantSettings
  • Update-M365UnifiedCustomPendingApp

範例

下列範例示範如何搭配 Microsoft Entra 應用程式型驗證使用 Teams PowerShell 模組:

  • 使用憑證指紋連線:

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

    當您使用 CertificateThumbprint 參數時,必須在您執行命令的電腦上安裝憑證。 憑證應該安裝在使用者憑證存放區中。

  • 使用憑證物件連線:

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

    當您使用 Certificate 參數時,不需要在執行命令的電腦上安裝憑證。 憑證可以遠端儲存 & 在執行指令碼時擷取。 憑證參數可從 Teams PowerShell 模組 4.9.2-preview 版或更新版本取得。

  • 使用存取權杖連線:

    存取權杖可透過 login.microsoftonline.com 端點擷取。 它需要兩個存取權杖 – 「MS Graph」和「Skype 和 Teams 租用戶管理員 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")
    

它是如何運作的?

Teams PowerShell 模組會使用應用程式識別碼、租用戶識別碼和憑證指紋來擷取應用程式型權杖。 在 Microsoft Entra ID 內佈建的應用程式物件已指派目錄角色,該角色會在存取權杖中傳回。 工作階段的角色型存取控制 (RBAC) 是使用權杖中可用的目錄角色資訊來設定。

設定應用程式型驗證

使用應用程式物件進行驗證需要初始上線。 應用程式和服務主體可以互換使用,但應用程式就像類別物件,而服務主體就像類別的實例。 您可以在 Microsoft Entra ID 中的應用程式和服務主體物件中深入瞭解這些物件。

下面提到了在 Microsoft Entra ID 中創建應用程序的示例步驟。 有關詳細步驟,請參閱 本文

  1. 在 Microsoft Entra ID 中註冊應用程式。

  2. 將 API 權限指派給應用程式。

    Cmdlet 需要 Microsoft 圖形 API 權限
    * All Organization.Read.All
    非 *-Cs Cmdlet User.Read.All, Group.ReadWrite.All, AppCatalog.ReadWrite.All, TeamSettings.ReadWrite.All, Channel.Delete.All, ChannelSettings.ReadWrite.All, ChannelMember.ReadWrite.All
    所有 (只有在與管理單位一起使用時才會) RoleManagement.Read.Directory
    *-CsGroupPolicyAssignment、*-CsGroupPolicyPackageAssignment 只有在與系統管理單位搭配使用時 () GroupMember.Read.All

    備註

    不需要為「Skype 和 Teams 租用戶管理員 API」設定任何 API 權限。 設定此權限可能會導致失敗。

  3. 產生自我簽署憑證。

  4. 將憑證附加至 Microsoft Entra 應用程式。

  5. Microsoft Entra 角色指派給應用程式。 請參閱此 指派角色 程序,但搜尋應用程式而非使用者。

應用程式必須指派適當的 RBAC 角色。 由於應用程式是在 Microsoft Entra ID 中佈建的,因此您可以使用任何支援的內建角色。