Как заставить -AccessTokens работать с командлетом Connect-MicrosoftTeams?

Я перехожу по этой ссылке, чтобы подключиться к Microsoft Teams с помощью токенов доступа:

Https://learn.microsoft.com/en-us/MicrosoftTeams/teams-powershell-application-authentication

Вот код:

$ClientSecret   = 'xxxxx~xx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
$ApplicationID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
$TenantID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
    
$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")

Приложение зарегистрировано в Azure AD, и ему назначены разрешения API, как указано в статье. Я также назначил приложению роль администратора Teams. Токены заполняются корректно.

Запуск кода приводит к следующей ошибке:

Connect-MicrosoftTeams : Object reference not set to an instance of an object.
At line:29 char:1
+ Connect-MicrosoftTeams -AccessTokens @("$graphToken", "$teamsToken")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : AuthenticationError: (:) [Connect-MicrosoftTeams], NullReferenceException
    + FullyQualifiedErrorId : Connect-MicrosoftTeams,Microsoft.TeamsCmdlets.Powershell.Connect.ConnectMicrosoftTeams
 
Connect-MicrosoftTeams : Object reference not set to an instance of an object.
At line:29 char:1
+ Connect-MicrosoftTeams -AccessTokens @("$graphToken", "$teamsToken")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Connect-MicrosoftTeams], NullReferenceException
    + FullyQualifiedErrorId : System.NullReferenceException,Microsoft.TeamsCmdlets.Powershell.Connect.ConnectMicrosoftTeams

Если у кого-то была эта проблема и он успешно решил ее или у вас есть несколько советов, как ее решить, пожалуйста, помогите.

Конечные и Readonly классы в PHP
Конечные и Readonly классы в PHP
В прошлом, когда вы не хотели, чтобы другие классы расширяли определенный класс, вы могли пометить его как final.
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
БЭМ: Конвенция об именовании CSS
БЭМ: Конвенция об именовании CSS
Я часто вижу беспорядочный код CSS, особенно если проект большой. Кроме того, я совершал эту ошибку в профессиональных или личных проектах и...
Революционная веб-разработка ServiceNow
Революционная веб-разработка ServiceNow
В быстро развивающемся мире веб-разработки ServiceNow для достижения успеха крайне важно оставаться на вершине последних тенденций и технологий. По...
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Как добавить SEO(Search Engine Optimization) в наше веб-приложение и как это работает?
Заголовок веб-страницы играет наиболее важную роль в SEO, он помогает поисковой системе понять, о чем ваш сайт.
Конфигурация Jest в angular
Конфигурация Jest в angular
В этой статье я рассказываю обо всех необходимых шагах, которые нужно выполнить при настройке jest в angular.
0
0
81
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я попытался воспроизвести то же самое в своей среде и получил ту же ошибку, что и ниже:

Ошибка обычно возникает, если версия команд Microsoft, которую вы пытаетесь подключить, старше версии 4.7.1-preview.

Чтобы устранить эту ошибку, попробуйте обновить версию Microsoft Teams PowerShell до 4.7.1-preview или более поздней версии, и этот тип проверки подлинности поддерживается только в коммерческих средах.

Get-InstalledModule -Name MicrosoftTeams
Update-Module -Name MicrosoftTeams

После обновления модуля PowerShell я могу успешно подключиться к Microsoft Teams, как показано ниже:

$ClientSecret   = "ClientSecret"
$ApplicationID = "AppID"
$TenantID = "TenantID"

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

Ссылка:

Галерея PowerShell | MicrosoftTeams 4.9.1

Ваш ответ привел меня в правильном направлении для решения проблемы. В моем случае речь не шла об установке новой версии модуля MicrosoftTeams, который уже был у меня на машине (версия 4.9.1). Я заметил, что более старые версии модуля Teams 4.3 и 4.6 все еще зависают от более ранних установок. Удаление этих старых версий помогло. Спасибо.

kshab 11.01.2023 22:39

Другие вопросы по теме

Статическое веб-приложение Azure с настраиваемой проверкой подлинности (Azure AD) имеет цикл входа
Может ли функция Azure читать сведения о пользователе AAD без разрешения приложения (только делегированное разрешение, разрешенное организацией)
Ошибка Недопустимое имя пользователя или пароль в azure AD B2C при добавлении OIDC:ClientId в restAPI перед запуском Login-NonInteractive в настраиваемой политике
Azure devops с собственным агентом: невозможно развернуть в кластере aks
Проблема области в Azure Graph Rest API Java
Создайте подходящее назначение для роли администратора с помощью модуля powershell microsoft.graph.
Что означает ошибка «GroupsClient.BaseClient.Post () Недопустимая операция была включена в следующие измененные ссылки: «члены»»?
Как вызвать REST API Azure CosmosDB в PowerShell с помощью проверки подлинности AAD
Никогда не получаю "@odata.nextLink" в дельта-вызове Azure Active Directory Graph API
Не удается аутентифицировать SQL Server с помощью Azure Active Directory с помощью EFCore.