Есть ли проблема с моим запросом для получения моего токена?
Я пытаюсь получить маркер oauth из своего Azure AD с помощью Powershell.
Я пытаюсь сгенерировать свой токен в текстовый файл, чтобы увидеть результат первого шага моего запроса.
Я пытаюсь получить токен AzureDigitalTwins. Константа, которую вы видите в $resourceId, предоставляется Microsoft для запроса AzureDigitalTwins. И вот мой сценарий:
# Load ADAL methods
Add-Type -Path ".\MyPath\Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
$resultToken = ".\TokenTest.txt"
# Conf here
$aadInstance = "https://login.microsoftonline.com/"
$tenantId = "myTenantID"
$applicationId = "myAppID"
$applicationSecretKey = "myAppSecret"
$resourceId = "0b07f429-9f4b-4714-9392-cc5e8e80c8b0"
# Get an Access Token with ADAL
$authContext = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext($aadInstance + $tenantId)
$clientCredential = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential($applicationId, $applicationSecretKey)
$authenticationResult = $authContext.AcquireTokenAsync($resourceId, $clientCredential)
($token = $authenticationResult.AccessToken) | Out-File $resultToken
После запуска скрипта мой текстовый файл пуст, но я не получаю ошибки.
Я использую точно такой же код в C# для получения токена, и он работает отлично, но не в Powershell.
Есть ли проблема с этим? Спасибо за ваши ответы.
1 ответ
Нашел ответ! Просто нужно добавить.GetAwaiter().GetResult() к методу AcquireTokenAsync!
$authenticationResult = $authContext.AcquireTokenAsync($resourceId, $clientCredential).GetAwaiter().GetResult()