Een HTTP-verzoek verzenden met basisauthenticatie

PowerShell:
Een HTTP-verzoek verzenden met basisauthenticatie

Hoe te:

Hier is hoe je een server netjes om gegevens vraagt met een ‘alsjeblieft’ in de vorm van basisauthenticatie:

# De inloggegevens voorbereiden
$user = 'JouwGebruikersnaam'
$pass = 'JouwWachtwoord'
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))

# De koppen instellen
$headers = @{
    Authorization = "Basic $encodedCreds"
}

# De URL waar je aanklopt
$url = 'https://api.voorbeeld.com/data'

# Nu, laten we de oproep doen
$response = Invoke-RestMethod -Uri $url -Method Get -Headers $headers

# De resultaten uitvoeren
$response

Een voorbeelduitvoer kan er als volgt uitzien, ervan uitgaande dat de respons in JSON-formaat is:

{
    "name": "John Doe",
    "email": "[email protected]"
}

Diepere Duik

Basisauthenticatie is ouderwets en gaat terug naar de vroege dagen van het internet toen iedereen elkaar kende. Hoewel het nog steeds wordt gebruikt, is het op zichzelf niet superveilig - het is alsof je je geheime clubwachtwoord op een ansichtkaart verzendt. Tegenwoordig verzenden we het meestal over HTTPS om het te versleutelen, wat is alsof je die ansichtkaart in een gesloten doos stopt.

Alternatieven? Genoeg. Je hebt API-sleutels, OAuth, bearer tokens… de lijst gaat maar door. Elk komt met zijn eigen handdrukken en geheime woorden.

Wat de implementatie betreft, met PowerShell, converteer je je gebruikersnaam en wachtwoord naar een formaat dat het HTTP-protocol kan begrijpen - base64. Maar onthoud, base64 is geen encryptie; het is gewoon tekst die zich vermomt. Elke snuffelaar kan het onthullen, tenzij het over HTTPS wordt verzonden.

Zie Ook