2016-05-10 4 views
0

Ich habe eine Weintraube API, die einige Endpunkte und Doorkeeper zur Autorisierung bereitstellt. Standardmäßig ermöglicht Doorkeeper die Vergabe von Autorisierungscodes sowie die Erteilung von Client-Anmeldeinformationen. Also kann ich nur mit diesen beiden Grants ein Zugriffs-Token anfordern.Doorkeeper - Limit Grant-Typen auf spezifischen Endpunkt

Ich frage mich, ob es einen Weg in doorkeeper gibt, um den Grant-Typ zu begrenzen oder zumindest zu erhalten, der verwendet wird, um ein bereitgestelltes Zugriffstoken anzufordern?

Wenn zum Beispiel jemand ein Token mit dem Berechtigungscode grant anfordert, wenn er eine Ressource auf der API anfordert, möchte ich wissen, dass er den Berechtigungscode verwendet hat, um seinen Token zu erhalten. Ich kann dann für jede Anfrage prüfen, ob das gegebene Token aus einer Autorisierungscode-Zuteilung stammt oder nicht, und die Ressource bereitstellen oder nicht.

Ich weiß, dass Anwendungsbereiche spezifische Autorisierung behandeln, aber ich wollte wissen, ob es eine Lösung für dieses Problem gibt. Dies ist möglicherweise kein echtes Problem, ich vermisse etwas aus der OAuth-Spezifikation, daher sind alle Kommentare willkommen!

Antwort

1

Zugriffstoken, die vom Client Credentials-Flow ausgegeben werden, sind keinem Ressourcenbesitzer zugeordnet. So können Sie in Ihrem Anwendungsfall feststellen, ob ein Zugriffstoken durch den Autorisierungscode-Fluss oder den Client-Anmeldeinformationsfluss ausgegeben wurde, indem Sie prüfen, ob das Zugriffstoken einem Ressourcenbesitzer zugeordnet ist oder nicht.

+0

Sie haben Recht, darüber habe ich nach dem Stellen dieser Frage nachgedacht, aber was ist mit anderen Zuschüssen? Implizite Erteilung und Passwort gewähren? – wRadion

+0

Es hängt von der Implementierung des Türhüters ab, ob Sie den Berechtigungstyp erhalten können, mit dem ein Zugriffs-Token ausgegeben wurde. Wenn die aktuelle Implementierung keine solche Funktion bietet, müssen Sie die Implementierung von Doorkeeper ändern. Zumindest die offizielle Spezifikation ([RFC 7662] (https://tools.ietf.org/html/rfc7662)), ein Zugriffstoken zu untersuchen, deckt Ihren Anwendungsfall nicht ab. –

+0

Ich wusste nicht, dass Token Introspection RFC, danke dafür! Wenn ich das richtig verstehe, ist es auch nutzlos, den Grant-Typ zu kennen, von dem das Token stammt. Daher liegt meine Idee hinter der Implementierung falsch. Daher werde ich nur Autorisierungsbereiche verwenden, um die eingehenden Anforderungen zu filtern und entsprechend darauf zu antworten. Danke für deine Hilfe! Ihre Antwort ist eigentlich die einzige Antwort, die jemand auf diese Frage geben kann, also werde ich sie als die akzeptierte Antwort markieren. – wRadion