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
範例
下列範例說明如何搭配 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"
當您使用憑證參數時,該憑證不需要安裝在您執行命令的計算機上。 憑證可以遠端儲存 & 執行腳本時擷取。 憑證參數可從 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 ID 內布建的應用程式物件已指派目錄角色給該物件,該角色會以存取令牌傳回。 會話的角色型存取控制 (RBAC) 是使用 token 中提供的目錄角色信息來設定。
設定應用程式型驗證
使用應用程式對象進行驗證時需要初始上線。 應用程式與服務主體會交替使用,但應用程式就像是類別物件,而服務主體就像是類別的實例。 您可以在 Microsoft Entra ID 中的應用程式與服務主體物件深入瞭解這些物件。
以下提及在 Microsoft Entra ID 中建立應用程式的範例步驟。 如需詳細步驟,請參閱 這篇文章。
- 在 Microsoft Entra ID 中註冊應用程式。
- 指派 API 許可權給應用程式。
- 針對 *-Cs Cmdlet - 需要Microsoft 圖形 API 許可權。
Organization.Read.All
- 針對非 *-Cs Cmdlet - 所需的Microsoft 圖形 API 許可權為、、、
AppCatalog.ReadWrite.All
、ChannelMember.ReadWrite.All
Channel.Delete.All
ChannelSettings.ReadWrite.All
TeamSettings.ReadWrite.All
Group.ReadWrite.All
User.Read.All
Organization.Read.All
- 注意 - 不需要為「Skype 和 Teams 租使用者 管理員 API」設定任何 API 許可權。 設定此許可權可能會導致失敗。
- 針對 *-Cs Cmdlet - 需要Microsoft 圖形 API 許可權。
- 產生自我簽署憑證。
- 將憑證附加至 Microsoft Entra 應用程式。
- 指派 Microsoft Entra 角色給應用程式。 請參閱此 指派角色 程式,但搜尋應用程式而不是使用者。
應用程式需要指派適當的 RBAC 角色。 由於應用程式是在 Microsoft Entra ID 中布建,因此您可以使用任何支援的內建角色。