查询以获取令牌是否有问题?

时间:2019-05-22 14:33:38

标签: azure powershell azure-active-directory azure-digital-twins

我正在尝试使用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中却没有。

这有问题吗? 感谢您的回答。

1 个答案:

答案 0 :(得分:2)

找到答案! 只需将.GetAwaiter()。GetResult()添加到AcquireTokenAsync方法中即可!

$authenticationResult = $authContext.AcquireTokenAsync($resourceId, $clientCredential).GetAwaiter().GetResult()