Envoi d'une requête HTTP avec authentification de base

PowerShell:
Envoi d'une requête HTTP avec authentification de base

How to:

Pour envoyer une requête HTTP avec authentification de base en PowerShell, suivez ces étapes :

# Encodez vos identifiants
$credPair = "username:password"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($credPair))

# Préparez l'en-tête d'autorisation
$headers = @{
    Authorization = "Basic $encodedCreds"
}

# Envoyez la requête
$response = Invoke-RestMethod -Uri 'https://your-api-endpoint.com/resource' -Method Get -Headers $headers

# Affichez la réponse (exemple d'objet retourné)
$response

Exemple de résultat :

status       : 200
statusText   : OK
data         : { ... } 

Deep Dive

Historiquement, l’authentification de base est une des méthodes les plus simples pour sécuriser l’accès à des ressources HTTP. Cependant, elle n’est plus considérée comme très sûre alone, surtout si les données ne sont pas envoyées via HTTPS. L’encodage Base64 des identifiants peut être facilement décodé si intercepté.

Des alternatives plus sécurisées comme OAuth 2.0 ou les clés API sont souvent préférées. Pourtant, l’authentification de base peut être utile pour des tests rapides ou des interactions avec des serveurs internes où le niveau de sécurité requis n’est pas élevé.

L’implémentation en PowerShell, surtout dans sa dernière version, utilise Invoke-RestMethod. Cette cmdlet facilite la création de requêtes Web complexes et la gestion des réponses. Les headers personnalisés, comme l’en-tête d’authentification dans notre exemple, sont ajoutés au tableau $headers qui est passé à l’appel de la cmdlet.

See Also