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

Teams PowerShell 模組現在支援應用程式型驗證

  • 版本 4.7.1-preview 或更新版本,在商業 & GCC 環境中。
  • 版本 5.0.1-preview 或更新版本,位於 GCC High & DoD 環境中。

支援 Cmdlet

除了以下所述的 Cmdlet 以外,現在支援所有 Cmdlet。

  • New-Team
  • [取得|Set|新增|Sync]-CsOnlineApplicationInstance
  • *PolicyPackage*
  • *-CsTeamsShiftsConnection*
  • *-CsBatchTeamsDeployment*
  • [取得|Set]-CsTeamsSettingsCustomApp
  • Get-MultiGeoRegion

範例

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

  • 使用憑證縮圖連線:

    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"
    

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

  • 使用 Access Token 連線:

    存取令牌可透過 login.microsoftonline.com 端點擷取。 它需要兩個 Access Token – “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標識碼內布建的應用程式物件已指派目錄角色給該物件,該角色會以存取令牌傳回。 會話的角色型存取控制 (RBAC) 是使用 token 中提供的目錄角色信息來設定。

設定應用程式型驗證

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

以下提及以 Microsoft Entra ID 建立應用程式的範例步驟。 如需詳細步驟,請參閱 這篇文章

  1. 以Microsoft Entra識別元註冊應用程式。
  2. 指派 API 許可權給應用程式。
    • 針對 *-Cs Cmdlet - 需要的 Microsoft 圖形 API 權限為 Organization.Read.All
    • 針對非 *-Cs Cmdlet - 需要的 Microsoft 圖形 API 許可權為、、、、、、Channel.Delete.AllUser.Read.AllChannelSettings.ReadWrite.AllTeamSettings.ReadWrite.AllChannelMember.ReadWrite.AllAppCatalog.ReadWrite.AllGroup.ReadWrite.AllOrganization.Read.All
  3. 產生自我簽署憑證。
  4. 將憑證附加至 Microsoft Entra 應用程式。
  5. 指派 Microsoft Entra 角色給應用程式。 請參閱此 指派角色 程式,但搜尋應用程式而不是使用者。

應用程式需要指派適當的 RBAC 角色。 由於應用程式是以 Microsoft Entra 識別碼布建,因此您可以使用任何支援的內建角色。