azure-ad-graph-api – AuthenticationContex缺少方法AcquireToken和CreateAuthorizationHeader

我尝试使用Azure AD.

这是我使用的代码:

Add-Type -Path      "D:\GraphAPI\Microsoft.IdentityModel.Clients.ActiveDirectory.2.14.201151115\lib\net45\Microsoft.IdentityModel.Clients.ActiveDirectory.dll" 


# Change these three values to your application and tenant settings
$clientID = "CLIENT ID for application"
$clientSecret = "KEY for application"
$tenant = "tenant domain name"

# Static values
$resAzureGraphAPI = "https://graph.windows.net";
$serviceRootURL = "https://graph.windows.net/$tenant"
$authString = "https://login.windows.net/$tenant";

# Creates a context for login.windows.net (Azure AD common authentication)
  [Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext]$AuthContext = [Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext]$authString

# Creates a credential from the client id and key
[Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential]$clientCredential = New-Object -TypeName "Microsoft.IdentityModel.Clients.ActiveDirectory.ClientCredential"($clientID, $clientSecret)

# Requests a bearer token
$authenticationResult = $AuthContext.AcquireTokenAsync($resAzureGraphAPI,     $clientCredential);

# Output the token object
Write-Host -ForegroundColor Yellow "Token object:"
$authenticationResult | Format-List

# Example to get all users
Write-Host -ForegroundColor Yellow "Getting all users"
$users = Invoke-RestMethod -Method GET -Uri "$serviceRootURL/users?api-version=1.5" -Headers @{Authorization=$authenticationResult.CreateAuthorizationHeader()} -ContentType "application/json"
$users.value | Format-Table UserPrincipalName,DisplayName

但我有两个错误

方法调用失败,因为[Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContex]不包含名为“AcquireToken”的方法

方法调用失败,因为[Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContex]不包含名为“CreateAuthorizationHeader”的方法

你能帮我解决一下这个错误吗?

谢谢或者你的帮助

斯特凡

最佳答案 对于迟到的回复感到抱歉,但我刚才遇到了同样的问题并找到了你的问题.我注意到在版本3.10.305231913(最新版本)的Microsoft.IdentityModel.Clients.ActiveDirectory.XML中,这些方法完全缺失,其他一些方法.我通过以下方式获取版本2.26.305102204:

.\nuget.exe install Microsoft.IdentityModel.Clients.ActiveDirectory -Version 2.26.305102204

在这个旧版本中,一切似乎都已到位.

点赞