Я ищу способ запустить New-CsOnlineSession из веб-приложения, используя токен oauth. WebApp будет отвечать за аутентификацию пользователя. Это будет использовать Microsoft Modern Authentication, которая будет обрабатывать двухфакторную аутентификацию и согласие.
Я зарегистрировал приложение на портале Azure и получил разрешение на олицетворение пользователя для Skype For Business Powershell Server Application
.
Как только я подключаюсь с токеном, полученным с помощью WebApp, я получаю ошибка в том, что используется не та аудитория.
Ниже приведена стенограмма моего сеанса PowerShell. После того, как у меня это работает в powershell, идея заключается в том, что WebApp будет выполнять команды powershell, поэтому любой способ сделать это, когда PowerShell запрашивает учетные данные, не будет работать.
PS C:\WINDOWS\system32> $token = ConvertTo-SecureString -String $oauthtoken -AsPlainText -Force
PS C:\WINDOWS\system32> $session = New-CsOnlineSession -OAuthAccessToken $token -Verbose
VERBOSE: OAuthAccessToken is provided.
VERBOSE: Determining domain to administer
VERBOSE: AdminDomain = 'mydomain.onmicrosoft.com'
VERBOSE: Discovering PowerShell endpoint URI
VERBOSE: TargetUri = 'https://admin2e.online.lync.com/OcsPowershellOAuth'
VERBOSE: AuthUri = 'https://login.windows.net/common/oauth2/authorize', ClientId = 7716031e-6f8b-45a4-b82b-922b1af0fbb4
VERBOSE: Validating authentication token.
New-CsOnlineSession : OAuthAccessToken has invalid audience https://teamsconfigapi-int.trafficmanager.net, expected https://admin2e.online.lync.com/OcsPowershellOAuth.
At line:1 char:12
+ $session = New-CsOnlineSession -OAuthAccessToken $token -Verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,New-CsOnlineSession