2017-01-21 3 views
0

Ich schreibe eine API, die OAuth 2.0 password flow verwendet, um Benutzer zu authentifizieren. Wenn eine Anforderung für ein Zugriffstoken verweigert wird, scheint es für einen Client keine Möglichkeit zu geben, festzustellen, ob das Kennwort falsch oder abgelaufen ist.OAuth 2.0-Kennwortablauf beim Abrufen eines Zugriffstokens

invalid_grant: Von the spec, sollte ein Fehlercode von invalid_grant in beiden Fällen zurückgegeben werden die dafür vorgesehenen Genehmigungserteilung (zB Berechtigungscode, Ressourceneigentümer Anmeldeinformationen) oder Aktualisierungs-Token ungültig ist, abgelaufen ist, widerrufen, nicht mit Der Umleitungs-URI, der in der Autorisierungsanforderung verwendet oder an einen anderen Client ausgegeben wurde.

Ist es akzeptabel, die error_description auf der Antwort zu verwenden, zu erklären, dass das Passwort so abgelaufen ist, dass der Kunde die notwendigen Maßnahmen ergreifen kann, und wenn nicht, was ist der Standardansatz für die mit OAuth Ablauf Passwort Handhabung?

Antwort

0

"Leaking", dass der Grund für einen solchen Fehler wie "Passwort war falsch oder abgelaufen" ist keine Best Practice für die Authentifizierung.

Ich würde vorschlagen, dass der "Server" den Grund für den Fehler protokollieren und die Informationen nicht an den Anforderer zurückgeben.

+0

Ich stimme zu, dass es ein Sicherheitsrisiko sein könnte, den Grund für eine fehlgeschlagene Anmeldung zurückzugeben. Wie kann dann eine Client-Anwendung mit einem Login-Formular zwischen der Anzeige der Fehlermeldung "Login failed" oder der Weiterleitung des Benutzers auf die Update-Passwort-Seite wählen? – Coder1095

+0

IMHO sollte der Client keine Anmeldeseite hosten. Die Anmeldeseite würde von der IDP gehostet (Google oder Facebook oder ...) und sie würden wissen, welche Weiterleitung ausgeführt werden muss. Wenn Sie eine Authentifizierung benötigen, sollten Sie OpenID Connect und NOT OAuth verwenden. https://oauth.net/articles/authentication/ – jwilleke

Verwandte Themen