Jetzt teilnehmen:Online-Umfrage zur Verbesserung von DRACOONMehr Infos

Authentifizierung für automatische Scripte

Kommentare

1 Kommentar

  • Offizieller Kommentar
    Avatar
    Michael Netter

    Wir sind uns bewusst, dass viele unserer Kunden Skripte und Automatisierungen auf Basis von DRACOON entwickelt haben. Bezüglich des Authentifizierungs-/Autorisierungsworkflows setzt DRACOON zukünftig ausschließlich auf den offenen Standard OAuth 2.0. In OAuth existiert für das von Ihnen beschriebene Szenario ein eigener Flow: der two-legged OAuth-Flow. Dieser ist nicht-interaktiv und erlaubt es, wie bisher im Skript die Zugangsdaten zu hinterlegen.

    Um diesen OAuth-Flow zu nutzen, legen Sie als Config-Manager in den Systemeinstellungen > Apps einen neuen OAuth Client an. Wichtig ist, dass Sie als grant_type "Password" festlegen.

    Anschließend führen Sie folgenden Request aus, um einen Access Token zu erhalten:

    Beispiel: cURL Access Token Request:

    curl -X POST \
      https://[DRACOON_HOSTNAME]/oauth/token \
      -H 'Authorization: Basic [BASE64_ENCODED [CLIENT_ID]:[CLIENT_SECRET]]' \
      -H 'Content-Type: application/x-www-form-urlencoded' \
      -d 'grant_type=password&username=[USER_NAME]&password=[PASSWORD]'

    Beispiel: PowerShell Access Token Request:

    $Uri = "https://[DRACOON_HOSTNAME]/oauth/token"

    $Username = "[USER_NAME]"
    $Password = "[PASSWORD]"

    $ClientId = "[CLIENT_ID]"
    $ClientSecret = "[CLIENT_SECRET]"

    $Base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $ClientId,$ClientSecret)))

    $Body = @{ "grant_type" = "password"; "username" = $Username; "password" = $Password }
    $Response = Invoke-WebRequest -URI $Uri -Method Post -ContentType "application/x-www-form-urlencoded" -Body $Body -Headers @{Authorization=("Basic {0}" -f $Base64AuthInfo)}

    $Content = ConvertFrom-Json $Response.content
    $Token = $Content.access_token
    Write-Output $Token

    Danach können Sie den Access Token verwenden, um authentifizierte Requests an die API zu senden. Hier ein Beispiel zum Abrufen der Accountinformationen in cURL und PowerShell:

    Beispiel: cURL Request account information:

    curl -X GET \
    https://[DRACOON_HOSTNAME]/api/v4/user/account \
    -H 'Authorization: Bearer [ACCESS_TOKEN]'

    Beispiel: PowerShell Request account information:

    $Uri = "https://[DRACOON_HOSTNAME]/api/v4/user/account"
    $Token = "[ACCESS_TOKEN]"

    $Response = Invoke-WebRequest -URI $Uri -Method Get -ContentType "application/json" -Headers @{Authorization=("Bearer {0}" -f $Token)}

    $Content = ConvertFrom-Json $Response.content
    Write-Output $Content

    Ich hoffe, diese Informationen helfen Ihnen weiter.

    Aktionen für Kommentare Permalink

Bitte melden Sie sich an, um einen Kommentar zu hinterlassen.