OAuth
Was ist OAuth?
Ein offenes Protokoll, mit dem sich eine sichere Autorisierung in einer einfachen und Standardmethode von Web-, Mobil- und Desktop -Anwendungen aus DOCs ermöglicht
- Der Hauptgrund, warum OAuth ursprünglich eingerichtet wurde, war es, die Daten eines Anwendungszugriffs zuzulassen, ohne ihm das Kennwort des Benutzers geben zu müssen. Ein typisches Beispiel: Denken Sie daran, wann all diese Apps von Drittanbietern nach Ihrem E -Mail + -Kennwort fragen würden, um auf Ihren Google Mail -Kontakt usw. zuzugreifen? Offensichtliche Sicherheitsverletzungen als Apps könnten Ihr Passwort ändern und in der Lage sein, Ihr Passwort zu ändern. Einige Anwendungen würden das Kennwort der Benutzer in Klagegelte (offensichtliches Sicherheitsrisiko) speichern. Nur so konnten Benutzer Zugriff widerrufen, um die Passwörter zu ändern
- Die Hauptunterscheidungsfunktion von OAuth besteht darin, dass Benutzer, anstatt Benutzer Kennwörter in die App von Drittanbietern einzugeben, auf den OAuth-Server (die primäre Anwendung) umgeleitet werden, um ihr Kennwort einzugeben, und dann an die Drittanbieter-App, die Zugriff sucht, zurückgeleitet wird.
- Andere Anwendungsfälle von OAuth nach seinem ersten Anwendungsfall waren Organisationen, die Apps für ihre eigenen APIs erstellten. Ein typisches Beispiel: Wenn Sie sich bei einem Google -Dienst (YouTube, Google Mail usw.) anmelden, melden Sie sich nicht direkt in den Dienst an. Sie werden an den OAuth -Server von Google (Accocts.google.com) umgeleitet, wo Sie sich nach der Authentifizierung anmelden und dann zum Google -Dienst umgeleitet haben.
- Nutzen besteht darin, die Passwortverwaltung aus Sicherheitsgründen zu zentralisieren.
- Ein weiterer Vorteil der Zentralisierung besteht darin, dass die Authentifizierung für alle Benutzer/Dienste einfach aufgerüstet wird
OAuth 2
- Es gab einige Anwendungsfälle wie in mobilen Anwendungen, bei denen die erste Implementierung von OAuth nicht sicher verwendet werden konnte.
- Das Ziel von OAuth 2 war es, auf OAuth 1 für mobile Anwendungen aufzubauen und Aspekte zu vereinfachen, die für API -Verbraucher verwirrend waren.
- Das Problem mit OAuth 2 war, dass es Konflikte zwischen dem Web- und Enterprise -Mitwirkenden des Protokolls gab. Viele der Konfliktbereiche wurden in verschiedene Dokumente gesteckt, sodass im Protokoll viele Lücken im Kerndokument als Rahmen bezeichnet wurden).
- Das Ergebnis ist, dass die Web -Implementierung für OAuth 2 komplex und verwirrend sein kann, da Sie Informationen aus verschiedenen Entwürfen synthetisieren müssen
- Implementierungsprobleme:
- Standard erfordert keinen Token -Typ
- erfordert keine spezifischen Stipendiktypen
- gibt keine Anleitung zur Token -String -Größe
Erstellen einer OAuth 2 -Anwendung
- Erstellen Sie ein Entwicklerkonto auf der Website des Dienstes und geben Sie grundlegende Informationen zur App (Name, Website, Logo usw.) ein.
- Sie erhalten eine
client_id und client_secret (manchmal), die Ihre App verwendet, um mit dem Dienst zu interagieren. - Kritisch, um einen oder mehrere Umleitungs -URLs zu registrieren (wobei der OAuth 2 -Dienst den Benutzer nach dem Genehmigung der Anwendung zurückgibt), um zu vermeiden, dass böswillige Apps erstellt werden, die Benutzerdaten stehlen können.
- Die Umleitungs -URL muss ein HTTPS -Endpunkt sein, um einen Angreifer vom Abfangen des Autorisierungscodes bereitzustellen und eine Sitzung zu entführen
- Anstatt mehrere Umleitungs -URLs für verschiedene Anwendungszustände zu registrieren, bietet OAuth 2 einen " Status " -Parameter, mit dem ein App -Status codiert werden kann.
- Der Parameter ist eine Zeichenfolge, die zurückgegeben wird, nachdem der Benutzer autorisiert wurde, sie in die App an den richtigen Ort zu bringen. Die Statuszeichenfolge sollte mit einer Methode wie JWT verschlüsselt werden.
- Der ursprünglich generierte Status wird in der Sitzung gespeichert, nachdem der Benutzer autorisiert und in die Client -Anwendung weitergeleitet wird. Der OAuth -Server vergleicht die Statuszeichenfolge mit dem, was ursprünglich in der Sitzung gespeichert wurde
Andere Konzepte, die ich gelernt habe
Locken
- Stands für Client -URL ist ein Befehlszeilen -Tool, mit dem Entwickler Daten auf und von einem Server übertragen können. Lassen Sie Sie mit einem Server mit einem Server kommunizieren, indem Sie URL (Speicherort) und Daten angeben, die Sie senden möchten.
- Unterstützt verschiedene Protokolle (HTTP, HTTPS) und läuft auf fast jeder Plattform. Damit ist es ideal, um die Kommunikation auf nahezu jedem Gerät zu testen
- Vorteile:
- Sehr tragbar und vergleichbar mit fast Betriebssystem und Gerät
- nützlich zum Testen von Endpunkten
- Kann ausführlich sein und daher zum Debuggen hilfreich sein
- Gute Fehlerprotokollierung
Ausführen eines Python -Skripts im Web ohne Framework wie Flask oder Django
- Sie müssten zunächst das Python -Skript als CGI -Skript einrichten
- CGI steht für die Common Gateway Interface. Es ermöglicht Anwendungen, mit anderen Anwendungen im Internet zu kommunizieren
- Erstellen Sie zuerst einen CIG-BIN-Ordner und verschieben Sie Ihr Python-Skript dort
- Verwenden Sie dann Pythons eingebaute
http.server um einen einfachen HTTP-Server auszuführen - Führen Sie
python -m http.server --cgi aus dem Verzeichnis aus, das CGI -bin enthält, um den HTTP -Server im CGI -Modus zu starten. - Navigieren Sie zu
http://localhost:8000/cgi-bin/your-script.py um das CGI-Skript auszuführen. - In
your-script.py muss print("Content-type:text/htmlrnrn") enthalten
Shebang (Hashbang)
- Ein besonderer Code in Form eines
#! Zu Beginn der ausführbaren Dateien in UNIX-ähnlichen Betriebssystemen. - Gibt den Pfad zum ausführbaren Interpreter an, mit dem das Skript ausgeführt werden sollte.
- ZB ein schäbisch wie
#!/usr/bin/env python zu Beginn eines Python -Skripts fordert das System an, den Python -Interpreter in usr/bin/env python zu verwenden, um das Skript auszuführen.
Ressourcen
- OAuth -Dokumentation
- Was ist OAuth und warum ist es wichtig? - Oktadev auf YouTube
- OAuth 2 Server
- IBM: Was ist Curl?