>> See here for instructions on how to create a similar script for emulating a Daemon Client Application using the Client Credential Flow.
PowerShell vous permet de charger des assemblages .NET à droite dans votre ligne de commande. Cela signifie que vous pouvez charger ADAL (Azure Active Directory Authentication Libraries) et l'utiliser pour vraiment simplifier l'expérience d'authentification. Une fois que vous avez acquis un jeton d'ADAL, vous pouvez simplement utiliser l'applet de commande Invoke-RestMethod
pour effectuer des appels à l'API AAD Graph.
Vous devez d'abord télécharger et enregistrer les dlls .NET pour ADAL. Le lien de téléchargement peut être trouvé on Nuget.
Remarque: Nous utilisons spécifiquement ADAL v2 ici.
Vous pouvez extraire le contenu du .nupkg avec un extracteur de fichiers comme 7z, WinZip, etc ...
extraire le contenu de \lib\net45\
et les copier dans votre répertoire de travail. J'ai mis les fichiers dans leur propre dossier "ADAL", pour le garder séparé.
alors vous devriez être en mesure de créer un nouveau script PowerShell qui suit:
# 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
Note: Vous devez mettre à jour l'ID App, ID locataire et Répondre URL dans ce script. J'ai également préconfiguré l'appel de l'API AAD Graph pour renvoyer les utilisateurs dans mon locataire, mais vous pouvez changer cet appel REST pour ce que vous voulez.
Après avoir exécuté avec succès le script, vous devriez obtenir 2 nouveaux fichiers dans votre répertoire de travail: Un fichier texte qui contient votre jeton d'accès encodée JSON, qui peuvent être base64 décodés sur des sites comme this, et un fichier JSON avec le réponse de l'API AAD Graph. Faites-moi savoir si cela aide!