2016-06-25 6 views
4

Ich lese die oauth2 specs und ich bin verwirrt von unauthorized_client und access_denied Fehlercodes. Sie scheinen die gleiche Fehlerbedingung auszudrücken, nicht wahr? Auf den ersten Blick (nach Fehlercode) dachte ich, dass einer für einen Authentifizierungsfehler und der andere für einen Autorisierungsfehler ist, aber es handelt sich tatsächlich beide um einen Autorisierungsfehler, der in einen http 403-Statuscode übersetzt werden würde.Was ist der Unterschied zwischen unauthorized_client und access_denied

unauthorized_client 
     The client is not authorized to request an access token 
     using this method. 

access_denied 
     The resource owner or authorization server denied the 
     request. 
+0

unauthorized_client kommt, wenn Ihr clientId und clientSecret nicht passend sehen können. access_denied kommt, wenn Sie ein legitimer Benutzer sind, aber keine Berechtigung haben, bestimmte Operationen auszuführen. – Azim

+0

Sollte kein Authentifizierungsfehler auftreten, wenn die Anmeldeinformationen (clientId und clientSecret) nicht übereinstimmen? Warum wäre unauthorized_client? Die Beschreibung besagt auch, dass "der Client nicht berechtigt ist, ein Zugriffstoken anzufordern", nicht dass der Client und das Geheimnis falsch sind. Übrigens gibt es einen spezifischen Fehler für falsch übereinstimmende Anmeldeinformationen: 'invalid_grant' -' Die angegebene Berechtigungsgewährung (z. B. Autorisierungscode, Anmeldeinformationen des Ressourceneigentümers) oder Aktualisierungstoken ist ungültig, abgelaufen, widerrufen stimmt nicht mit dem in der Autorisierungsanforderung verwendeten Umleitungs-URI überein oder oder wurde an einen anderen Kunden ausgegeben " – themihai

Antwort

2

unauthorized_client: Im praktischen Sinne könnte dieser Fehler kommen:

  • Wenn Client für Umfang anfordert, die nicht
  • erlaubt ist
  • Sie Angenommen werden Refresh-Token Fluss geht aber Client-Konfiguration auf dem Server erlaubt das nicht.
  • Ähnliche Usecases, in denen Client versucht, etwas zu tun, das nicht wie pro Client-Konfiguration auf Authz-Server zulässig ist Jetzt tritt das Problem mit dem Fehler auf, der mit Client ist.

access_denied Dies kann auftreten, wenn Ihr Kunde OK ist aber

  • Ressourcen Besitzer abgebrochen den OAuth-Flow (zum Beispiel, wenn Sie einige Client Google trifft dann auf eine Zustimmung Seite auftritt, wo können entweder ermöglichen oder den Zugang)

  • verweigern Wenn Ressource-Server aus irgendeinem Grund glaubt, dass dieser Client den Zugriff gewährt werden soll

Wie Sie, dass access_denied wird verursacht entweder durch Ressourceneigentümer oder Server und nicht wegen der Client

Ich hoffe, das hilft