Wie kann ich ein Bash-Skript programmieren, was sich in eine Webseite mit den richtigen Zugangsdaten einloggt?
Grüße,
ich würde gerne ein Bash-Skript programmieren, was sich in eine Webseite mit den richtigen Zugangsdaten einloggt.
Ich habe einen Link, aber der wird weitergeleitet an realms/prod-leg/protocol/openid-connect/auth?client_id=crm-frontend-app&redirect_uri=http und ich verstehe nicht, warum oder was das ist.
Ich habe etwas über OpenID Connect gelesen, dass das etwas zum Authentifizieren ist, aber wie muss ich das dann ich mein Bash einbauen?
Ich hoffe, mir kann da jemand helfen.
1 Antwort
ob das mit openID funktioniert weis ich nicht, sollte aber grundsätzlich so funktionieren
Habe mal erstmal den Ansatz genommen das du die Homepage selber eingeben musst.
Der Bereich Konfiguration muss von dir entsprechend angepasst werden.
#!/bin/bash
# Konfiguration
CLIENT_ID="dein_client_id"
CLIENT_SECRET="dein_client_secret"
AUTHORIZATION_SERVER="https://dein-authorization-server"
REDIRECT_URI="https://deine-redirect-uri"
SCOPE="openid profile"
TOKEN_URL="$AUTHORIZATION_SERVER/realms/prod-leg/protocol/openid-connect/token"
# Schritt 1: Den Benutzer zur Anmeldeseite weiterleiten (manuell)
echo "Bitte gehen Sie zu folgender URL, um sich anzumelden:"
echo "$AUTHORIZATION_SERVER/realms/prod-leg/protocol/openid-connect/auth?client_id=$CLIENT_ID&redirect_uri=$REDIRECT_URI&response_type=code&scope=$SCOPE"
# Schritt 2: Manuelle Eingabe des Authorization Codes nach der Anmeldung
echo "Geben Sie den erhaltenen Authorization Code ein:"
read AUTH_CODE
# Schritt 3: Token anfordern
RESPONSE=$(curl -X POST "$TOKEN_URL" \
-d "client_id=$CLIENT_ID" \
-d "client_secret=$CLIENT_SECRET" \
-d "code=$AUTH_CODE" \
-d "redirect_uri=$REDIRECT_URI" \
-d "grant_type=authorization_code")
# Extrahieren des Access Tokens
ACCESS_TOKEN=$(echo "$RESPONSE" | jq -r '.access_token')
# Zeige das Access Token an
echo "Access Token: $ACCESS_TOKEN"
# Optional: Verwende das Access Token für eine API-Anfrage
API_URL="https://api.deinservice.com/endpoint"
curl -H "Authorization: Bearer $ACCESS_TOKEN" "$API_URL"
CLIENT_ID="dein_client_id"
CLIENT_SECRET="dein_client_secret"
Diese beiden Werte erhältst du, wenn du eine Anwendung (Client) bei dem Authorization Server registrierst, den du verwenden möchtest.
AUTHORIZATION_SERVER="https://dein-authorization-server"
Dies ist die URL des Authorization Servers, der den OpenID/OAuth 2.0-Flow unterstützt. Die URL hängt davon ab, welchen Identity Provider du verwendest.
REDIRECT_URI="https://deine-redirect-uri"
Die Redirect URI ist die URL, an die der Authorization Server den Benutzer nach erfolgreicher Authentifizierung und Autorisierung weiterleitet.
SCOPE="openid profile"
Der Scope gibt an, welche Berechtigungen du von der API anforderst.
TOKEN_URL="$AUTHORIZATION_SERVER/realms/prod-leg/protocol/openid-connect/token"
Die URL für den Token-Endpunkt ist in der Regel eine feste URL des Authorization Servers.
Dann scheiterst du bereits an den Basics und ich weis nicht ob die Pläne mit dem Skript bereits das richtige sind
wie gesagt ich hab keine möglichkeit an den client secret zu gelangen weil ich nicht der besitzer/admin dieser webseite bin
mein ziel ist es pdfs ab zu fangen und jedes mal wenn eine neue in meinem mieterportal rein kommt, würde die automatisch in meine nextcloud geladen und da hatte ich die idee ein bash zu programmieren was sich mit meinen persönlichen zugangsdaten in die website einloggt und dann in den dokumenten ordner switched und dann alle pdfs prüft und die neuen dann einmal runterlädt und in meine extcloud verschiebt und dazu noch n cron job der das im hintergrund zB alle 6h ausführt
Achsooo
ich schaue mal ob ich mir da was aus den Fingern saugen kann.
Das sollte mit curl gehen
https://portal.leg-wohnen.de/app => https://leg-crm.aareon.com/app/ => https://portal.leg-wohnen.de/realms/prod-leg/protocol/openid-connect/auth?client_id=crm-frontend-app&redirect_uri=https%3A%2F%2Fportal.leg-wohnen.de%2Fapp%2F&sta..... so sehen die links aus ich werde quasi von seite zu seite geschickt bis ich dann dieses auth ding dazu bekomme
#!/bin/bash
# Konfiguration
MIETERPORTAL_URL="https://dein-mieterportal.de"
LOGIN_URL="$MIETERPORTAL_URL/login"
DOCUMENTS_URL="$MIETERPORTAL_URL/dokumente"
NEXTCLOUD_URL="https://deine-nextcloud.de/remote.php/webdav/"
NEXTCLOUD_USER="dein_nextcloud_user"
NEXTCLOUD_PASS="dein_nextcloud_pass"
USERNAME="dein_username"
PASSWORD="dein_passwort"
COOKIE_FILE="cookies.txt"
# Login in das Mieterportal
curl -c $COOKIE_FILE -d "username=$USERNAME&password=$PASSWORD" $LOGIN_URL
# PDF Links auf der Dokumentenseite abrufen
curl -b $COOKIE_FILE $DOCUMENTS_URL -o documents_page.html
grep -oP 'href="\K[^"]+\.pdf' documents_page.html > pdf_links.txt
# PDFs herunterladen
while read pdf_link; do
FULL_PDF_URL="$MIETERPORTAL_URL/$pdf_link"
curl -b $COOKIE_FILE -O $FULL_PDF_URL
done < pdf_links.txt
# PDFs nach Nextcloud hochladen
for pdf_file in *.pdf; do
curl -u $NEXTCLOUD_USER:$NEXTCLOUD_PASS -T "$pdf_file" "$NEXTCLOUD_URL$pdf_file"
done
# Aufräumen: Temporäre Dateien löschen
rm -f documents_page.html pdf_links.txt
Die Links musst du entsprechend anpassen
das ist ja das problem dass link/login nicht klappt
genau dieser konfigurations part da weiß ich nicht was ich eingeben muss ist es einfach nur copy passt aus dem browser?