Beste Authentifizierungsmethode, um API-Zugriff auf die Rails-App zu gewähren

8

Ich möchte einen authentifizierten API-Zugang zu meiner Web-App anbieten. Die Verbraucher eines solchen Dienstes sind typischerweise andere Websites / Dienste.

Was wäre die beste Methode zur Authentifizierung dieser Benutzer? OAuth, OpenID, HTTP-Authentifizierung?

    
cbrulak 12.01.2011, 18:38
quelle

2 Antworten

8

Wie so oft in unserer Branche lautet die Antwort auf "Was ist das Beste?" ist "es kommt darauf an." :)

  • HTTP-Authentifizierung - Wenn Sie Kunden bereits über eine ID und ein Passwort bei Ihrem Dienst anmelden möchten, müssen Sie wahrscheinlich nur minimale Arbeit leisten, damit dies gut funktioniert mit deiner API. Wenn Ihre API im Grunde genommen nur für einen Zweck bestimmt ist und keine detaillierten Berechtigungen erfordert, können Sie hier etwas schnell arbeiten.

  • API-Token - Wenn Sie möchten, dass sich Kunden problemlos authentifizieren können, ohne ein Passwort anzugeben (denken Sie an Unternehmen, die einen Service erstellen, der mit Ihrer API interagiert; Ich möchte, dass das Entwicklungsteam die Kennwörter kennt, usw.), dann ist es wahrscheinlich der schnellste Weg, ein zufälliges API-Token à la GitHub an das Benutzerkonto anzuhängen. Als Bonus können Sie eine Methode zum Neugenerieren des API-Tokens bereitstellen, ohne das Kontopasswort ändern zu müssen.

  • OAuth - Wenn Sie mehrere Berechtigungen haben oder feinere Kontrolle darüber haben möchten, wie und wann ein Client auf Ihre API zugreifen kann, ist OAuth eine gute Wahl (OAuth2 ist viel einfacher zu bedienen mit, IMO und unterstützt mehrere Methoden zum Erhalten eines Zugriffstokens ) . Darüber hinaus verfügen viele Sprachen über Bibliotheken, Edelsteine ​​usw., die es ihnen ermöglichen, den OAuth-Workflow zu vereinfachen.

Michelle Tilley 02.04.2011, 01:46
quelle
0

Ich würde sagen, die beste Methode ist oAuth. Es ist flexibler und kann für weitere Anwendungen unabhängig verwendet werden. Ich verwende oAuth, um meine Clients (Anwendungen) zu authentifizieren.

;)

    
hkairi 25.03.2011 21:40
quelle