2017-06-29 4 views
0

Ich bekomme es, dass Oauth wird verwendet, um einer Anwendung von Drittanbietern Zugriff auf Benutzerdaten (wie Fotos auf seinem Facebook-Konto) zu ermöglichen, ohne seine Facebook-Anmeldeinformationen an die Anwendung von Drittanbietern freizugeben . Wenn Sie beispielsweise versuchen, ein Online-Fotobearbeitungstool zu verwenden und ein Foto von Facebook laden möchten, wird in Facebook eine Meldung angezeigt, in der Sie gefragt werden, ob Sie der Anwendung wirklich erlauben möchten, auf Ihre Daten zuzugreifen. An diesem Punkt gibt Facebook nur ein temporäres Zugriffs-Token zurück und die App kann damit auf Ihre Facebook-Fotos zugreifen. (da ich weiß, dass der Umfang für dieses Zugriffstoken so ist, dass es nur die Berechtigung hat, nur auf die Fotos des jeweiligen Benutzers zuzugreifen) Ja, diese Art von Setup ist erforderlich, weil Sie einer Drittanbieteranwendung nicht so vertrauen können, dass sie sie verschenkt Ihre Anmeldeinformationen.Wann Oauth und API-Schlüssel Authentifizierung Typen

Angenommen, irgendwie anstelle von oauth, verwendet Facebook API-Schlüssel-Authentifizierung. Das würde bedeuten, dass alle Drittanbieter-Anwendungen, die die Facebook-API abonniert haben, bereits einen Schlüssel haben, mit dem sie auf die Datenquellen von Facebook zugreifen können. So kann die App Sie direkt zu Ihren Facebook-Fotos führen und Facebook wird Sie nicht darüber informieren versuchen, auf Ihre privaten Daten zuzugreifen. Dieser Ansatz eignet sich nicht für eine API, die sensible Benutzerdaten offenlegt, aber für APIs, die nicht so benutzerspezifische (wie Google Maps) Daten offenlegen, sollte der API-Schlüsselansatz ausreichen, oder?

Also meine Frage ist, was sind die Kriterien, um zu entscheiden, welcher Authentifizierungstyp verwendet werden sollte? Und freue mich über Feedback, wenn mein Verständnis falsch ist.

Antwort

0

Hier sind 2 der Standard 4 Oauth2 Flüsse, die für die Szenarien, die Sie erwähnen, sorgen.

  • Autorisierungscode
  • Client-Credentials.

Ihr Facebook-Beispiel Mit über Sie so denken könnten:

für Ihr „Oauth“ Szenario

Use Authorization-Code fließen, wo Ihre Anwendung Bedürfnisse Genehmigung delegierten einen Benutzer Facebook-Fotos zuzugreifen. Dies bedeutet, dass der Benutzer sich anmelden und Zugriff auf Ihre App gewähren muss und Ihre App muss einen API-Schlüssel (Client-ID) von Facebook ausgestellt haben.

Verwenden Sie den Client-Credentials-Flow für Ihr "API Key" -Szenario. Dies ist der Fall, wenn Ihre App Zugriff auf beispielsweise öffentliche Facebook-Seiten/Informationen benötigt und daher keine spezielle Benutzerzustimmung benötigt und nur ihren API-Schlüssel (Client-ID Client Secret)

verwenden kann
Verwandte Themen