Zum Hauptinhalt springen

Drittanbieter-App (OAuth / OIDC)

Die Drittanbieteranwendungsintegration von Logto ermöglicht es dir, Logto als Identitätsanbieter (IdP) für externe Anwendungen zu nutzen.

Ein Identitätsanbieter (IdP) ist ein Dienst, der Benutzeridentitäten überprüft und deren Anmeldedaten verwaltet. Nach der Bestätigung der Identität eines Benutzers generiert der IdP Authentifizierungstoken oder Assertions und ermöglicht dem Benutzer den Zugriff auf verschiedene Anwendungen oder Dienste, ohne sich erneut anmelden zu müssen.

Im Gegensatz zu den Anwendungen, die du im Leitfaden Logto in deine Anwendung integrieren erstellt hast und die von dir entwickelt und vollständig kontrolliert werden, sind Drittanbieteranwendungen unabhängige Dienste, die von externen Entwicklern oder Geschäftspartnern entwickelt werden.

Dieser Integrationsansatz eignet sich hervorragend für gängige Geschäftsszenarien. Du kannst es Benutzern ermöglichen, auf Partneranwendungen mit ihren Logto-Konten zuzugreifen, ähnlich wie Unternehmensbenutzer sich bei Slack mit Google Workspace anmelden. Du kannst auch eine offene Plattform aufbauen, auf der Drittanbieteranwendungen die Funktion „Mit Logto anmelden“ hinzufügen können, ähnlich wie „Mit Google anmelden“.

Logto ist ein Identitätsdienst, der auf dem OpenID Connect (OIDC)-Protokoll basiert und sowohl Authentifizierung (Authentication) als auch Autorisierung (Authorization) bereitstellt. Dadurch ist die Integration einer OIDC-Drittanbieteranwendung genauso unkompliziert wie bei einer traditionellen Webanwendung.

Da OIDC auf OAuth 2.0 aufbaut und eine Authentifizierungsschicht hinzufügt, kannst du Drittanbieteranwendungen auch über das OAuth-Protokoll integrieren.

Drittanbieteranwendung in Logto erstellen

  1. Gehe zu Konsole > Anwendungen.
  2. Klicke auf die Schaltfläche „Anwendung erstellen“. Wähle „Drittanbieter-App“ als Anwendungstyp und eines der folgenden Integrationsprotokolle:
    • OIDC / OAuth
  3. Wähle einen Anwendungstyp basierend auf dem Typ der Drittanbieteranwendung:
    • Traditionelle Webanwendung: Serverseitig gerenderte Anwendungen (z. B. Node.js, PHP, Java), die ein Client-Geheimnis sicher im Backend speichern können.
    • Single Page App (SPA): Clientseitig gerenderte Anwendungen (z. B. React, Vue, Angular), die vollständig im Browser laufen und keine Geheimnisse sicher speichern können.
    • Native: Mobile oder Desktop-Anwendungen (z. B. iOS, Android, Electron), die auf Benutzergeräten laufen.
  4. Gib einen Namen und eine Beschreibung für deine Anwendung ein und klicke auf die Schaltfläche „Erstellen“. Eine neue Drittanbieteranwendung wird erstellt.

Alle erstellten Drittanbieteranwendungen werden auf der Anwendungsseite unter dem Tab „Drittanbieter-Apps“ katalogisiert. Diese Anordnung hilft dir, sie von deinen eigenen Anwendungen zu unterscheiden und alle Anwendungen an einem Ort zu verwalten.

Integrationsanleitung

Anwendungskonfigurationen finden

Auf der Anwendungsdetailseite findest du die Client-ID, das Client-Geheimnis (nur für traditionelle Webanwendungen) und die OIDC-Endpunkte, die für die Integration benötigt werden.

Wenn der Drittanbieterdienst OIDC-Discovery unterstützt, gib einfach den Discovery-Endpunkt an. Andernfalls klicke auf Endpunktdetails anzeigen, um alle Endpunkte einschließlich Autorisierungsendpunkt und Token-Endpunkt anzuzeigen.

Integration mit Diensten, die Drittanbieter-IdP unterstützen

Wenn du einen Dienst oder ein Produkt verbindest, das nativ die Konfiguration eines externen Identitätsanbieters unterstützt (z. B. Enterprise-SaaS-Plattformen, Kollaborationstools), ist die Einrichtung unkompliziert:

  1. Öffne die IdP- oder SSO-Konfigurationsseite des Dienstes.
  2. Kopiere die Client-ID (und das Client-Geheimnis, falls erforderlich) aus Logto und füge sie in die Konfiguration des Dienstes ein.
  3. Gib den Discovery-Endpunkt an, wenn der Dienst OIDC-Auto-Discovery unterstützt, oder kopiere manuell den Autorisierungsendpunkt und den Token-Endpunkt.
  4. Kopiere die Redirect-URI von der Konfigurationsseite des Dienstes und füge sie zu den erlaubten Redirect-URIs deiner Logto-Anwendung hinzu.
  5. Konfiguriere die Berechtigungen (scopes), falls der Dienst dies zulässt. Da Logto ein OIDC-Anbieter ist, solltest du den openid-Scope einschließen, wenn du Benutzer authentifizieren möchtest (ermöglicht Zugriff auf ein ID-Token und den UserInfo-Endpunkt). Der openid-Scope ist optional, wenn du nur auf OAuth-Ressourcen zugreifen möchtest.

Der Dienst übernimmt den OAuth / OIDC-Flow automatisch, sobald er konfiguriert ist.

Integration über OAuth / OIDC-Protokoll

Wenn eine Drittanbieteranwendung programmgesteuert mit Logto als IdP integriert werden soll, sollte sie den Standard-Autorisierungscode-Flow (Authorization Code Flow) implementieren. Wir empfehlen, eine OAuth 2.0 / OIDC-Clientbibliothek für deine Programmiersprache zu verwenden, um die Implementierung zu erleichtern.

Traditionelle Webanwendungen sind vertrauliche Clients, die ein Client-Geheimnis sicher auf dem Backend-Server speichern können. Siehe Autorisierungscode-Flow (Authorization Code Flow) für vollständige Implementierungsdetails.

Wichtige Schritte:

  1. Autorisierung initiieren: Benutzer zum Autorisierungsendpunkt von Logto mit client_id, redirect_uri, response_type=code und scope weiterleiten.
  2. Callback verarbeiten: Den Autorisierungscode (code) aus der Weiterleitung empfangen.
  3. Token austauschen: Von deinem Backend aus einen POST an den Token-Endpunkt mit dem Code, client_id und client_secret senden.

Integration über Device Flow

Für native Drittanbieteranwendungen, die auf gerätebasierten, eingabebeschränkten Geräten laufen (z. B. Smart-TVs, Spielkonsolen, CLI-Tools), ist der standardmäßige, umleitungsbasierte Autorisierungscode-Flow möglicherweise nicht praktikabel. In diesen Fällen kann die Anwendung stattdessen den OAuth 2.0 Device Authorization Grant (Device Flow) verwenden.

Beim Device Flow zeigt das Gerät einen Benutzer-Code und eine Verifizierungs-URL an. Der Benutzer besucht die URL auf einem separaten Gerät (Handy, Laptop), gibt den Code ein und schließt die Authentifizierung dort ab. Das Gerät fragt den Token-Endpunkt von Logto ab, bis die Autorisierung abgeschlossen ist.

hinweis:

Bevor du den Device Flow implementierst, stelle sicher, dass du die erforderlichen Berechtigungen für deine Drittanbieteranwendung in der Logto-Konsole konfiguriert hast. Drittanbieter-Apps, die nicht aktivierte Berechtigungen anfordern, wird der Zugriff verweigert.

Siehe den Device Flow Quick Start für vollständige Implementierungsdetails.

Aus Sicherheitsgründen werden alle OIDC-Drittanbieteranwendungen nach der Authentifizierung durch Logto zu einem Zustimmungsbildschirm (Consent Screen) für die Benutzerautorisierung weitergeleitet.

Alle von Drittanbietern angeforderten Berechtigungen für Benutzerprofile, API-Ressourcen-Berechtigungen, Organisationsberechtigungen und Informationen zur Organisationsmitgliedschaft werden auf dem Zustimmungsbildschirm angezeigt.

Diese angeforderten Berechtigungen werden den Drittanbieteranwendungen erst gewährt, nachdem der Benutzer auf die Schaltfläche „Autorisieren“ geklickt hat.

consent screen

Weitere Aktionen

FAQs

Logto verwendet rollenbasierte Zugangskontrolle (RBAC), um Benutzerberechtigungen zu verwalten. Auf dem Zustimmungsbildschirm werden nur Berechtigungen (Scopes) angezeigt, die dem Benutzer bereits über seine Rollen zugewiesen wurden. Wenn eine Drittanbieter-App Berechtigungen anfordert, die der Benutzer nicht besitzt, werden diese ausgeschlossen, um eine unbefugte Zustimmung zu verhindern.

So verwaltest du dies:

  • Definiere globale Rollen oder Organisationsrollen mit spezifischen Berechtigungen.
  • Weisen Sie Benutzern Rollen entsprechend ihrem Zugriffsbedarf zu.
  • Benutzer erben automatisch die Berechtigungen ihrer Rollen.

Anwendungsfall: Integriere Apache Answer, um eine Community für deine Benutzer zu starten

Logto als Drittanbieter-Identitätsanbieter (IdP) verwenden