我正在尝试使用Powershell从我的Azure AD获取oauth令牌。
我尝试将令牌生成到文本文件中,以查看请求的第一步的结果。
我正在尝试获取Azure Digital Twins令牌。 Microsoft在$ 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中却没有。
这有问题吗? 感谢您的回答。
答案 0 :(得分:2)
找到答案! 只需将.GetAwaiter()。GetResult()添加到AcquireTokenAsync方法中即可!
$authenticationResult = $authContext.AcquireTokenAsync($resourceId, $clientCredential).GetAwaiter().GetResult()