Soziale Anmeldung mit OAuth 2.0-Protokoll einrichten
Der offizielle Logto Connector für das OAuth 2.0-Protokoll.
Diese Anleitung setzt voraus, dass du ein grundlegendes Verständnis von Logto Connectors hast. Für diejenigen, die damit nicht vertraut sind, verweisen wir auf die Connectors Anleitung, um loszulegen.
Erste Schritte
Der OAuth Connector ermöglicht die Verbindung von Logto zu einem beliebigen sozialen Identitätsanbieter, der das OAuth 2.0-Protokoll unterstützt. Verwende den OAuth Connector, um deiner Anwendung zu ermöglichen:
- Soziale Anmeldebuttons hinzuzufügen
- Benutzerkonten mit sozialen Identitäten zu verknüpfen
- Benutzerprofilinformationen vom sozialen Anbieter zu synchronisieren
- Zugriff auf Drittanbieter-APIs durch sichere Token-Speicherung im Logto Secret Vault für Automatisierungsaufgaben (z. B. Bearbeiten von Google Docs, Verwalten von Kalenderereignissen in deiner App)
Um diese Authentifizierungsfunktionen einzurichten, erstelle zuerst einen OAuth 2.0 Connector in Logto:
- Gehe zu Logto-Konsole > Connector > Sozialer Connector.
- Klicke auf Sozialen Connector hinzufügen, wähle OAuth 2.0, klicke auf Weiter und folge dem Schritt-für-Schritt-Tutorial, um die Integration abzuschließen.
Der OAuth Connector ist eine besondere Art von Connector in Logto, du kannst mehrere auf dem OAuth-Protokoll basierende Connectoren hinzufügen.
Erstelle deine OAuth-App
Wenn du diese Seite öffnest, gehen wir davon aus, dass du bereits weißt, mit welchem sozialen Identitätsanbieter du dich verbinden möchtest. Das Erste, was du tun solltest, ist zu bestätigen, dass der Identitätsanbieter das OAuth-Protokoll unterstützt, da dies eine Voraussetzung für die Konfiguration eines gültigen Connectors ist. Folge dann den Anweisungen des Identitätsanbieters, um die entsprechende App für die OAuth-Autorisierung zu registrieren und zu erstellen.
Konfiguriere deinen Connector
Wir unterstützen AUSSCHLIESSLICH den "Authorization Code"-Grant-Typ aus Sicherheitsgründen, und dieser passt perfekt zum Szenario von Logto.
clientId
und clientSecret
findest du auf der Detailseite deiner OAuth-App.
clientId: Die Client-ID ist ein eindeutiger Bezeichner, der die Client-Anwendung während der Registrierung beim Autorisierungsserver identifiziert. Diese ID wird vom Autorisierungsserver verwendet, um die Identität der Client-Anwendung zu überprüfen und alle autorisierten Zugangstokens mit dieser spezifischen Client-Anwendung zu verknüpfen.
clientSecret: Das Client-Secret ist ein vertraulicher Schlüssel, der der Client-Anwendung vom Autorisierungsserver während der Registrierung ausgestellt wird. Die Client-Anwendung verwendet diesen geheimen Schlüssel, um sich beim Autorisierungsserver zu authentifizieren, wenn Zugangstokens angefordert werden. Das Client-Secret gilt als vertrauliche Information und sollte jederzeit sicher aufbewahrt werden.
tokenEndpointAuthMethod: Die Authentifizierungsmethode für den Token-Endpunkt wird von der Client-Anwendung verwendet, um sich beim Autorisierungsserver zu authentifizieren, wenn Zugangstokens angefordert werden. Um unterstützte Methoden zu entdecken, konsultiere das Feld token_endpoint_auth_methods_supported
, das am OpenID Connect Discovery-Endpunkt des OAuth 2.0-Dienstanbieters verfügbar ist, oder schaue in die entsprechende Dokumentation des OAuth 2.0-Dienstanbieters.
clientSecretJwtSigningAlgorithm (Optional): Nur erforderlich, wenn tokenEndpointAuthMethod
auf client_secret_jwt
gesetzt ist. Der Client-Secret-JWT-Signaturalgorithmus wird von der Client-Anwendung verwendet, um das JWT zu signieren, das während der Token-Anfrage an den Autorisierungsserver gesendet wird.
scope: Der Scope-Parameter wird verwendet, um die Menge an Ressourcen und Berechtigungen anzugeben, auf die die Client-Anwendung zugreifen möchte. Der Scope-Parameter wird typischerweise als durch Leerzeichen getrennte Liste von Werten definiert, die bestimmte Berechtigungen darstellen. Zum Beispiel könnte ein Scope-Wert von "read write" anzeigen, dass die Client-Anwendung Lese- und Schreibzugriff auf die Daten eines Benutzers anfordert.
Du solltest authorizationEndpoint
, tokenEndpoint
und userInfoEndpoint
in der Dokumentation des sozialen Anbieters finden.
authenticationEndpoint: Dieser Endpunkt wird verwendet, um den Authentifizierungsprozess zu starten. Der Authentifizierungsprozess beinhaltet typischerweise, dass sich der Benutzer anmeldet und der Client-Anwendung die Autorisierung erteilt, auf seine Ressourcen zuzugreifen.
tokenEndpoint: Dieser Endpunkt wird von der Client-Anwendung verwendet, um ein Zugangstoken zu erhalten, das zum Zugriff auf die angeforderten Ressourcen verwendet werden kann. Die Client-Anwendung sendet typischerweise eine Anfrage an den Token-Endpunkt mit einem Grant-Typ und einem Autorisierungscode, um ein Zugangstoken zu erhalten.
userInfoEndpoint: Dieser Endpunkt wird von der Client-Anwendung verwendet, um zusätzliche Informationen über den Benutzer zu erhalten, wie z. B. seinen vollständigen Namen, seine E-Mail-Adresse oder sein Profilbild. Der User-Info-Endpunkt wird typischerweise aufgerufen, nachdem die Client-Anwendung ein Zugangstoken vom Token-Endpunkt erhalten hat.
Logto stellt außerdem ein profileMap
-Feld bereit, mit dem Benutzer die Zuordnung von Profilfeldern der sozialen Anbieter anpassen können, da diese in der Regel nicht standardisiert sind. Die Schlüssel sind die standardisierten Benutzprofil-Feldnamen von Logto und die entsprechenden Werte sollten die Feldnamen der sozialen Profile sein. Im aktuellen Stadium berücksichtigt Logto nur 'id', 'name', 'avatar', 'email' und 'phone' aus dem sozialen Profil, wobei nur 'id' erforderlich ist und die anderen optionale Felder sind.
responseType
und grantType
können NUR FESTE Werte mit dem Authorization-Code-Grant-Typ sein, daher machen wir sie optional und Standardwerte werden automatisch ausgefüllt.
Zum Beispiel findest du Google User Profile Response und daher sollte das profileMap
wie folgt aussehen:
{
"id": "sub",
"avatar": "picture"
}
Wir haben einen OPTIONALEN customConfig
-Schlüssel bereitgestellt, um deine individuellen Parameter einzutragen.
Jeder soziale Identitätsanbieter kann seine eigene Variante des OAuth-Standardprotokolls haben. Wenn dein gewünschter sozialer Identitätsanbieter strikt dem OAuth-Standardprotokoll folgt, musst du dich nicht um customConfig
kümmern.
Konfigurationstypen
Name | Typ | Erforderlich |
---|---|---|
authorizationEndpoint | string | true |
userInfoEndpoint | string | true |
clientId | string | true |
clientSecret | string | true |
tokenEndpointResponseType | enum | false |
responseType | string | false |
grantType | string | false |
tokenEndpoint | string | false |
scope | string | false |
customConfig | Record<string, string> | false |
profileMap | ProfileMap | false |
ProfileMap-Felder | Typ | Erforderlich | Standardwert |
---|---|---|---|
id | string | false | id |
name | string | false | name |
avatar | string | false | avatar |
string | false | ||
phone | string | false | phone |
Allgemeine Einstellungen
Hier sind einige allgemeine Einstellungen, die die Verbindung zu deinem Identitätsanbieter nicht blockieren, aber die Authentifizierungserfahrung für Endbenutzer beeinflussen können.
Name und Logo des sozialen Buttons
Wenn du einen Social-Button auf deiner Anmeldeseite anzeigen möchtest, kannst du den Namen und das Logo (Dark Mode und Light Mode) des sozialen Identitätsanbieters festlegen. Dies hilft den Benutzern, die Option zur sozialen Anmeldung zu erkennen.
Name des Identitätsanbieters
Jeder Social Connector hat einen eindeutigen Identity Provider (IdP)-Namen, um Benutzeridentitäten zu unterscheiden. Während gängige Connectoren einen festen IdP-Namen verwenden, benötigen benutzerdefinierte Connectoren einen eindeutigen Wert. Erfahre mehr über IdP-Namen für weitere Details.
Profilinformationen synchronisieren
Im OAuth-Connector kannst du die Richtlinie für das Synchronisieren von Profilinformationen wie Benutzernamen und Avataren festlegen. Wähle aus:
- Nur beim ersten Anmelden synchronisieren: Profilinformationen werden einmalig abgerufen, wenn sich der Benutzer zum ersten Mal anmeldet.
- Immer beim Anmelden synchronisieren: Profilinformationen werden jedes Mal aktualisiert, wenn sich der Benutzer anmeldet.
Tokens speichern, um auf Drittanbieter-APIs zuzugreifen (Optional)
Wenn du auf die APIs des Identitätsanbieters zugreifen und Aktionen mit Benutzerautorisierung durchführen möchtest (entweder über soziale Anmeldung oder Kontoverknüpfung), muss Logto bestimmte API-Berechtigungen erhalten und Tokens speichern.
- Füge die erforderlichen Berechtigungen im scope-Feld gemäß den obigen Anweisungen hinzu.
- Aktiviere Tokens für dauerhaften API-Zugriff speichern im Logto OAuth-Connector. Logto speichert Zugangstokens sicher im Secret Vault.
- Für standardisierte OAuth/OIDC-Identitätsanbieter muss der
offline_access
-Scope enthalten sein, um ein Auffrischungstoken zu erhalten und wiederholte Benutzerzustimmungsaufforderungen zu vermeiden.
Halte dein Client-Secret sicher und veröffentliche es niemals im Client-seitigen Code. Wenn es kompromittiert wird, generiere sofort ein neues in den App-Einstellungen deines Identitätsanbieters.
Den OAuth-Connector nutzen
Sobald du einen OAuth-Connector erstellt und mit deinem Identitätsanbieter verbunden hast, kannst du ihn in deine Endbenutzer-Flows integrieren. Wähle die Optionen, die zu deinen Anforderungen passen:
Social Sign-in-Button aktivieren
- Gehe in der Logto Console zu Anmeldeerfahrung > Registrierung und Anmeldung.
- Füge den OAuth-Connector im Abschnitt Soziale Anmeldung hinzu, damit Benutzer sich mit deinem Identitätsanbieter authentifizieren können.
Erfahre mehr über die soziale Anmeldeerfahrung.
Ein soziales Konto verknüpfen oder trennen
Nutze die Account API, um ein benutzerdefiniertes Account Center in deiner App zu erstellen, das angemeldeten Benutzern ermöglicht, ihre sozialen Konten zu verknüpfen oder zu trennen. Folge dem Account API-Tutorial
Es ist erlaubt, den OAuth-Connector nur für Kontoverknüpfung und API-Zugriff zu aktivieren, ohne ihn für die soziale Anmeldung zu aktivieren.
Auf Identitätsanbieter-APIs zugreifen und Aktionen durchführen
Deine Anwendung kann gespeicherte Zugangstokens aus dem Secret Vault abrufen, um die APIs deines Identitätsanbieters aufzurufen und Backend-Aufgaben zu automatisieren. Die spezifischen Möglichkeiten hängen von deinem Identitätsanbieter und den angeforderten Berechtigungen ab. Siehe die Anleitung zum Abrufen gespeicherter Tokens für den API-Zugriff.
Soziale Identität des Benutzers verwalten
Nachdem ein Benutzer sein soziales Konto verknüpft hat, können Administratoren diese Verbindung in der Logto Console verwalten:
- Navigiere zu Logto Console > Benutzerverwaltung und öffne das Benutzerprofil.
- Unter Soziale Verbindungen findest du den Identitätsanbieter-Eintrag und klickst auf Verwalten.
- Auf dieser Seite können Administratoren die soziale Verbindung des Benutzers verwalten, alle gewährten und synchronisierten Profilinformationen aus dem sozialen Konto einsehen und den Status des Zugangstokens überprüfen.
Einige Identitätsanbieter geben im Access-Token-Response keine spezifischen Scope-Informationen zurück, sodass Logto die Liste der vom Benutzer gewährten Berechtigungen nicht direkt anzeigen kann. Solange der Benutzer jedoch den angeforderten Berechtigungen während der Autorisierung zugestimmt hat, hat deine Anwendung beim Zugriff auf die OAuth-API die entsprechenden Berechtigungen.