>> See here for instructions on how to create a similar script for emulating a Daemon Client Application using the Client Credential Flow.
PowerShell允許.NET程序集加載到您的權利的命令行。這意味着您可以加載ADAL (Azure Active Directory Authentication Libraries)並使用它來真正簡化身份驗證體驗。從ADAL獲得令牌後,只需使用Invoke-RestMethod
cmdlet撥打AAD Graph API即可。
首先,您需要下載並保存ADAL的.NET dll。下載鏈接可以在on Nuget找到。
注意:我們在這裏特別使用ADAL v2。
你可以用一個文件提取像7Z,WinZip的,等提取.nupkg的內容...
從\lib\net45\
提取內容,並將它們複製到工作目錄。我把這些文件放在他們自己的「ADAL」文件夾中,以便將它們分開。
那麼你應該能夠創建一個新的PowerShell腳本如下:
# Load ADAL
Add-Type -Path ".\ADAL\Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
# Output Token and Response from AAD Graph API
$accessToken = ".\Token.txt"
$output = ".\Output.json"
# Application and Tenant Configuration
$clientId = "<AppIDGUID>"
$tenantId = "<TenantID>"
$resourceId = "https://graph.windows.net"
$redirectUri = New-Object system.uri("<ReplyURL>")
$login = "https://login.microsoftonline.com"
# Get an Access Token with ADAL
$authContext = New-Object Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext ("{0}/{1}" -f $login,$tenantId)
$authenticationResult = $authContext.AcquireToken($resourceId, $clientID, $redirectUri)
($token = $authenticationResult.AccessToken) | Out-File $accessToken
# Call the AAD Graph API
$headers = @{
"Authorization" = ("Bearer {0}" -f $token);
"Content-Type" = "application/json";
}
Invoke-RestMethod -Method Get -Uri ("{0}/{1}/users?api-version=1.6" -f $resourceId, $tenantId) -Headers $headers -OutFile $output
注意:您將需要更新的應用程序ID,租戶ID,並在此腳本回復網址。我還預先配置了AAD Graph API調用以返回租戶中的用戶,但您可以將此REST調用更改爲任何您想要的。
成功運行該腳本後,你應該得到2個新的文件在您的工作目錄:包含您的編碼的JSON訪問令牌,它可以像this網站使用base64解碼的文本文件,並用一個JSON文件來自AAD Graph API的響應。
讓我知道這是否有幫助!