Anmeldeerfahrung erklärt
Diese Seite erklärt die Anmeldeerfahrung in Logto und warum sie auf diese Weise gestaltet ist.
Einführung
Die Anmeldeerfahrung ist der Benutzer-Authentifizierungsprozess in Logto. Der Prozess kann wie folgt vereinfacht werden:
- Deine App ruft die Anmeldemethode auf.
- Der Benutzer wird zur Logto-Anmeldeseite weitergeleitet. Bei nativen Apps wird der Systembrowser geöffnet.
- Der Benutzer meldet sich an und wird zurück zu deiner App weitergeleitet (konfiguriert als "Redirect URI" in Logto).
Obwohl der Prozess einfach ist, kann der Weiterleitungsteil manchmal übertrieben erscheinen. Dennoch kann er in vielerlei Hinsicht vorteilhaft und sicher sein. Wir werden die Gründe in den folgenden Abschnitten erklären.
Warum weiterleiten?
Flexibilität
Das Weiterleiten ermöglicht es dir, den Authentifizierungsprozess von deiner App zu entkoppeln. Wenn dein Geschäft wächst, kannst du den gleichen Authentifizierungsprozess beibehalten, ohne deine App zu ändern. Zum Beispiel kannst du Multi-Faktor-Authentifizierung (MFA) hinzufügen oder die Anmeldemethoden ändern, ohne deine App zu berühren.
Unterstützung für mehrere Apps
Wenn du mehrere Apps hast, können sich deine Benutzer einmal anmelden und auf alle Apps zugreifen, ohne sich erneut anmelden zu müssen. Dies ist besonders nützlich für SaaS-Unternehmen oder Unternehmen mit mehreren Diensten.
Native Apps
Für native Apps ist das Weiterleiten zum Systembrowser eine sichere Möglichkeit, Benutzer zu authentifizieren, und bietet integrierte Unterstützung sowohl für iOS als auch Android.
- iOS: Apple bietet ASWebAuthenticationSession für sichere Authentifizierung.
- Android: Google stellt Custom Tabs für ein nahtloses Erlebnis bereit.
Sicherheit
Im Hintergrund ist Logto ein OpenID Connect (OIDC) Anbieter. OIDC ist ein weit verbreiteter Standard für Benutzer-Authentifizierung.
Logto erzwingt strenge Sicherheitsmaßnahmen, wie PKCE, und deaktiviert unsichere Flows wie den impliziten Flow. Das Weiterleiten ist eine sichere Möglichkeit, Benutzer zu authentifizieren und kann viele gängige Angriffe verhindern.
Was, wenn ich einige Anmeldekomponenten in meiner App anzeigen muss?
Manchmal möchte dein Team möglicherweise einige Anmeldekomponenten in der App anzeigen, wie z. B. einen "Mit Google anmelden" Button. Dies kann durch die Verwendung der "Direktanmeldung" Funktion in Logto erreicht werden.
Wie funktioniert das?
Angenommen, du hast zwei Call-to-Action-Buttons in deiner App: "Loslegen" und "Mit Google anmelden". Diese Buttons sind so konzipiert, dass sie:
- "Loslegen": Zur normalen Anmeldeseite weiterleiten.
- "Mit Google anmelden": Zur Google-Anmeldeseite weiterleiten.
Beide Aktionen müssen den Anmeldeprozess abschließen und zurück zu deiner App weiterleiten.
Prozess des Klickens auf "Loslegen"
In diesem Fall ist die Anmeldeerfahrung dieselbe wie die Standarderfahrung. Der Benutzer wird zur Logto-Anmeldeseite und dann zurück zu deiner App weitergeleitet.
Wenn du soziale Anmeldemethoden (z. B. Google, Facebook) in Logto konfiguriert hast, kann der Benutzer zur entsprechenden Anmeldeseite weitergeleitet werden. In der Darstellung zeigen wir nur den allgemeinen Ablauf zur Vereinfachung.
Prozess des Klickens auf "Mit Google anmelden"
In diesem Fall wird der Benutzer automatisch zur Google-Anmeldeseite weitergeleitet, ohne mit der Logto-Anmeldeseite zu interagieren. Die Geschwindigkeit dieser automatischen Weiterleitung ist fast sofort, sodass Benutzer die Weiterleitung möglicherweise nicht bemerken.
Zusammenfassend ist die Direktanmeldefunktion eine Möglichkeit, einige Interaktionen in der Anmeldeerfahrung zu automatisieren, ohne das Sicherheitsniveau zu ändern.
Verwende Direktanmeldung in deiner App
Um die Direktanmeldung zu verwenden, musst du den Parameter direct_sign_in
übergeben, wenn du die Anmeldemethode aufrufst. Der Wert sollte aus einem bestimmten Format bestehen, das Logto erkennt. Zum Beispiel sollte der Wert für die Anmeldung mit Google social:google
sein.
In einigen offiziellen Logto SDKs gibt es eine spezielle Option für die Direktanmeldung. Hier ist ein Beispiel für die Verwendung der Direktanmeldung im @logto/client
JavaScript SDK:
client.signIn({
redirectUri: 'https://some-redirect-uri',
directSignIn: { method: 'social', target: 'google' },
});
Für weitere Details siehe Direktanmeldung.
Wir führen diese Funktion schrittweise in allen offiziellen Logto SDKs ein. Wenn du sie in deinem SDK nicht siehst, kontaktiere uns bitte.
Ich benötige, dass meine Benutzer ihre Anmeldedaten in meiner App eingeben
Wenn du benötigst, dass deine Benutzer ihre Anmeldedaten (wie E-Mail und Passwort) direkt in deiner App eingeben, anstatt zu Logto weitergeleitet zu werden, können wir dir derzeit nicht helfen. Historisch gesehen gab es einen "Resource Owner Password Credentials" Grant, aber dieser wird jetzt als unsicher angesehen und wurde in OAuth 2.1 formell veraltet.
Um mehr über die Sicherheitsrisiken des ROPC-Grant-Typs zu erfahren, lies unseren Blogbeitrag Warum du den ROPC-Grant-Typ veralten solltest.