Zum Hauptinhalt springen

API-Ressourcen

API-Ressourcen, auch bekannt als Ressourcenindikatoren, geben die Zielservices oder -ressourcen an, die angefordert werden sollen, in der Regel eine URI-Formatvariable, die die Identität der Ressource darstellt. Dies ist ein Schlüsselkonzept im Logto-Autorisierungssystem, da es den Endpunkt definiert, den die Autorisierungsrichtlinie schützen soll.

Ressourcenindikator

  • Ein Ressourcenwert gibt den Zielservice oder die Zielressource an, auf die zugegriffen werden soll.
  • Sein Wert MUSS eine absolute URI sein.
  • Die URI DARF KEINE Fragmentkomponente enthalten.
  • Sie SOLLTE KEINE Abfragekomponente enthalten.
  • Du SOLLTES die spezifischste URI bereitstellen, die für die vollständige API oder die Menge der Ressourcen, auf die zugegriffen werden soll, möglich ist.

In der Praxis kann ein Client eine Basis-URI oder die Anwendung oder Ressource kennen, mit der interagiert werden soll. Es wäre angemessen, diese als Wert des Ressourcenparameters zu verwenden.

Zum Beispiel die Basis-URI der Logto Management API.

https://tenantId.logto.app/api

Standardmäßig ist diese API-Ressource in deinem Logto-Dienst vorregistriert. Alle Management APIs unter dieser URI sind durch Logto geschützt.

Logto API-Ressourcen-Schema

EigenschaftsnameEigenschaftsbeschreibungErforderlich
API-NameEin benutzerfreundlicher Name, der dir helfen kann, die API-Ressource zu identifizieren.true
API-IdentifierDer eindeutige API-Ressourcenindikator-Wert, mit den oben aufgeführten Einschränkungen.
Logto wird ihn verwenden, um die angeforderte API-Ressource zu identifizieren und die Autorisierungstoken entsprechend zu gewähren.true
Token-Ablaufzeit (in Sekunden)Die Ablaufzeit, die für Zugangstoken festgelegt ist. Der Standardablaufwert ist 3600.false
Standard-APIPro Mandant kann nur null oder eine Standard-API festgelegt werden.
Wenn eine Standard-API festgelegt ist, kann der Ressourcenparameter in der Authentifizierungsanfrage weggelassen werden. Nachfolgende Token-Austausche verwenden diese API standardmäßig als Zielgruppe, was zur Ausgabe von JWTs führt.false
hinweis

Anfragen mit einem abgelaufenen Zugangstoken sollten eingeschränkt werden. Dies wird implementiert, um deine API vor einem missbrauchten Token zu schützen. Je größer der Wert ist, desto länger überlebt ein ausgegebenes Zugangstoken, und desto anfälliger wird deine API.

Standard-API

hinweis

Diese Funktion ist hauptsächlich für Anwendungen gedacht, die OIDC-Ressourcenindikatoren NICHT unterstützen, z. B. ChatGPT-Plugins.

Logto nutzt RFC 8707: Ressourcenindikatoren für OAuth 2.0, um rollenbasierte Zugangskontrolle (RBAC) zu implementieren. Obwohl es eine der Funktionen von OAuth 2.0 ist, wird es noch nicht weit verbreitet unterstützt.

In Logtos Implementierung muss jede benutzerdefinierte Berechtigung (Berechtigung) mit einer API-Ressource verknüpft sein. Andernfalls wird sie als OpenID Connect (oder OAuth) Berechtigung behandelt. Im Allgemeinen beeinflusst dies deinen Autorisierungsprozess nicht. Wenn du jedoch mit Drittanbieter-Apps integrierst, die keine Unterstützung für RFC 8707 bieten (z. B. ChatGPT-Plugins), kann es Herausforderungen geben, da die anfängliche Autorisierungsanfrage möglicherweise keinen resource-Parameter enthält. Folglich wird Logto immer Opake Zugangstoken ausgeben.

Um dieses Problem zu lösen, kannst du eine API-Ressource als standardmäßige Ressource auf Mandantenebene festlegen. Sobald dies geschehen ist:

  • Logto wird die Standard-API-Ressource verwenden, wenn kein resource-Parameter in der Authentifizierungsanfrage vorhanden ist.
  • Wenn die openid-Berechtigung enthalten ist, wird ein Opakes Zugangstoken für den Userinfo-Endpunkt ausgegeben, wenn kein resource-Parameter in nachfolgenden Token-Anfragen vorhanden ist.
  • Wenn die openid-Berechtigung nicht enthalten ist, wird ein JWT-Zugangstoken für die Standard-API-Ressource ausgegeben, wenn kein resource-Parameter in nachfolgenden Token-Anfragen vorhanden ist.

Durch die Festlegung einer Standard-API-Ressource kannst du eine reibungslose Integration mit Apps sicherstellen, die keine RFC 8707-Unterstützung bieten, während du die entsprechenden Zugangskontrollen beibehältst.

Registriere die API-Ressourcen in Logto

Um ein zielgruppenbeschränktes Zugangstoken von Logto zu erhalten, registriere zuerst deine Backend-APIs, um Logtos zielgruppenbeschränkte Zugangstoken zu aktivieren. Wenn eine Autorisierungsanfrage empfangen wird, wird Logto die registrierten API-Ressourcen identifizieren und den Zugang entsprechend gewähren.

Um deine APIs zu registrieren, navigiere zu Konsole > API-Ressourcen. Du wirst eine integrierte Ressource mit dem API-Identifier angezeigt sehen, der als https://[your-tenant-id].logto.app/api angezeigt wird. Diese Ressource umfasst alle Management APIs von Logto und stellt sicher, dass sie geschützt und nur für autorisierte Benutzer von Logto zugänglich sind.

Klicke auf die Schaltfläche API-Ressource erstellen und folge dem interaktiven Formular, um deine eigenen API-Ressourcen zu erstellen:

  • Ein menschenlesbarer API-Name, der dir besser helfen kann, diese Entität zu identifizieren.
  • Ein eindeutiger API-Identifier im URI-Format. Er repräsentiert die Identität der API-Ressource.

Die neue API wird in der Liste angezeigt, sobald sie erstellt wurde. Du kannst sie auf der API-Detailseite verwalten oder löschen, indem du auf die Entität klickst.