it-swarm.com.de

Was ist ein API-Token?

Ich versuche herauszufinden, wie ich die Benutzerauthentifizierung für meine mobile Anwendung (iOS Android) und API (PHP) am besten handhaben kann.

Nach meinen Recherchen gibt es folgende Optionen:

Basisauthentifizierung über HTTPS - Überprüfen Sie bei jeder Anfrage den Benutzernamen/das Kennwort des Benutzers.

Sessions - Sende eine Session ID mit jeder Anfrage; Server behält Status bei. So sendet die App bei nachfolgenden Anfragen Benutzernamen/Passwort und Serverprüfungen für einen angemeldeten Benutzer, genau wie meine Website.

API-Token - Die mobile App sendet einen Benutzernamen/ein Passwort und erhält einen Token zurück. Anschließend hängt sie diesen an nachfolgende Anforderungen an. Token in DB gespeichert und bei jeder Anforderung überprüft.

Ich vermute, dass meine Erklärung der API-Token falsch ist, da sie mit den Sitzungen identisch zu sein scheinen, da ich die Sitzungs-IDs in der Datenbank speichere.

  1. Könnte meine Erklärung der API-Token korrigiert werden. Wofür sind sie? Wie unterscheiden sie sich von Sitzungs-IDs?
  2. Was sind die Vorteile von API-Token?
  3. Ist oAuth (wenn wir seine Verwendung vereinfachen würden) nur ein Protokoll zum Erstellen von "API-Token"?
26
paul

Ich bin kein Experte, aber ich gebe Ihnen ein paar Cent, die ich abgeholt habe:

1) API-Tokens sind ein allgemeiner Begriff. Normalerweise ist ein API-Token eine eindeutige Kennung einer Anwendung, die Zugriff auf Ihren Dienst anfordert. Ihr Dienst generiert ein API-Token, das die Anwendung beim Anfordern Ihres Dienstes verwenden kann. Sie können dann das von ihnen bereitgestellte Token demjenigen zuordnen, das Sie zur Authentifizierung gespeichert haben.

Eine Sitzungs-ID kann verwendet werden, ihr Zweck unterscheidet sich jedoch vom API-Token. Die Sitzungs-ID ist keine Form der Authentifizierung, sondern ein Ergebnis der Autorisierung. In der Regel wird eine Sitzung eingerichtet, sobald ein Benutzer zur Verwendung einer Ressource (z. B. Ihres Dienstes) berechtigt wurde. Daher wird eine Sitzungs-ID erstellt, wenn einem Benutzer Zugriff auf eine Ressource gewährt wird. Ein API-Token ist die Form der Authentifizierung, die einem Benutzernamen/Passwort ähnelt.

2) API-Token ersetzen das Senden einer Kombination aus Benutzername und Kennwort über HTTP, das nicht sicher ist. Es besteht jedoch immer noch das Problem, dass jemand das API-Token nehmen und stattdessen verwenden könnte.

3) In gewisser Weise ja. Dies ist eine Methode, um API-Token "frisch" zu halten. Anstatt dasselbe API-Token weiterzugeben, fordern Sie ein Zugriffstoken an, wenn Sie einen Dienst verwenden möchten. Die OAuth 2.0-Schritte lauten wie folgt:
A) Anforderung, die an den Dienst gesendet wurde, mit Anmeldeinformationen
B) Eine erfolgreiche Antwort gibt einen Code zurück
C) Eine weitere Serviceanforderung erfolgt mit dem Code
D) Eine erfolgreiche Antwort gibt das Zugriffstoken zum Signieren jeder API-Anforderung von dann bis zum Abschluss zurück.

Viele der größeren Dienstanbieter verwenden derzeit OAuth= 2.0. Dies ist keine perfekte Lösung, aber wahrscheinlich die sicherste, am weitesten verbreitete API-Sicherheitsmethode, die derzeit verwendet wird.

24