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 deinen Nutzern ermöglichen, Partneranwendungen mit ihren Logto-Konten zu nutzen – ähnlich wie Unternehmensnutzer sich bei Slack mit Google Workspace anmelden. Du kannst auch eine offene Plattform aufbauen, auf der Drittanbieteranwendungen eine „Mit Logto anmelden“-Funktion 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 einfach wie bei einer klassischen Webanwendung.

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

Zwei Wege, eine Drittanbieter-App anzubinden

  • Registriere die App in Logto (dieser Leitfaden): Du erstellst die Anwendung und konfigurierst deren Berechtigungen und Weiterleitungs-URIs. Verwende dies, wenn du deine Partner kennst.
  • Dynamische App: Clients verbinden sich ohne vorherige Registrierung, indem sie eine öffentliche HTTPS-URL verwenden, die ihr eigenes Metadaten-Dokument als Client-ID bereitstellt. Verwende dies, wenn sich beliebige Clients verbinden können, z. B. MCP-Clients und KI-Agenten.

Beide Methoden können gleichzeitig verwendet werden.

Erstelle eine Drittanbieteranwendung in Logto

  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:
    • Traditionelles Web: 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 „Erstellen“. Es wird eine neue Drittanbieteranwendung erstellt.

Alle erstellten Drittanbieteranwendungen werden auf der Seite „Anwendungen“ 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.

Um einzuschränken, welche Benutzer sich bei einer Drittanbieteranwendung anmelden können, konfiguriere die App-spezifische Zugangskontrolle im Tab Regeln der Anwendung.

Integrationsleitfaden

Finde die Anwendungskonfigurationen

Auf der Detailseite der Anwendung 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 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 Scopes, falls der Dienst dies zulässt. Da Logto ein OIDC-Anbieter ist, füge den openid-Scope hinzu, wenn du Benutzer authentifizieren möchtest (gewährt Zugriff auf ein ID-Token und den UserInfo-Endpunkt). Der openid-Scope ist optional, wenn du nur OAuth-Ressourcenzugriff benötigst.

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

Integration über OAuth / OIDC-Protokoll

Wenn eine Drittanbieteranwendung sich programmatisch mit Logto als IdP integrieren muss, sollte sie den Standard-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 Authorization Code Flow für vollständige Implementierungsdetails.

Wichtige Schritte:

  1. Autorisierung initiieren: Benutzer zum Autorisierungsendpunkt von Logto weiterleiten mit client_id, redirect_uri, response_type=code und scope.
  2. Callback verarbeiten: Den Autorisierungscode (code) aus der Weiterleitung empfangen.
  3. Token austauschen: Vom 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ätebeschränkten Geräten laufen (z. B. Smart-TVs, Spielkonsolen, CLI-Tools), ist der standardmäßige, weiterleitungsbasierte Authorization Code Flow möglicherweise nicht praktikabel. In diesen Fällen kann die Anwendung stattdessen den OAuth 2.0 Device Authorization Grant 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 Scopes 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 für die Benutzerautorisierung weitergeleitet.

Alle von der Drittanbieteranwendung angeforderten Berechtigungen für Benutzerprofile, API-Ressourcen-Berechtigungen, Organisationsberechtigungen und Organisationsmitgliedschaftsinformationen 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 Schritte

FAQs

Logto verwendet rollenbasierte Zugangskontrolle (RBAC), um Benutzerberechtigungen zu verwalten. Auf dem Zustimmungsbildschirm werden nur Scopes (Berechtigungen) angezeigt, die dem Benutzer bereits durch seine Rollen zugewiesen wurden. Wenn eine Drittanbieter-App Scopes 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 bestimmten Scopes.
  • Weisen Sie Benutzern Rollen entsprechend ihrem Zugriffsbedarf zu.
  • Benutzer erben die Scopes automatisch von ihren Rollen.

Anwendungsfall: Apache Answer integrieren, um eine Community für deine Nutzer zu starten

Logto als Drittanbieter-Identitätsanbieter (IdP) verwenden