2017-08-11 2 views
0

Ich implementiere gerade ein node.js-Modul für Keycloak, das intern die keycloak auth utils verwendet. Für eine feinkörnige Autorisierung sollte es möglich sein, die entitlements abzurufen. Dies funktioniert wie ein Zauber für "clientId + clientSecret" JWTs.Keycloak-Berechtigung für signierte JWTs erhalten

Zusätzlich sollte es möglich sein, diese Berechtigungen für signed JWTs abzurufen. Wenn Sie den Schlüssel zu meiner Keycloak-Instanz hochladen und den JWT mit dem privaten Schlüssel signieren, wird er mit Hilfe des Servers und des gespeicherten öffentlichen Schlüssels erfolgreich validiert. Der signierte JWT ist definitiv gültig (natürlich habe ich den Authentifikator des Clients geändert).

Die Frage ist: Als ich die signierten JWT der Berechtigung Endpunkt passiere ich die folgende Fehlermeldung erhalten:

{ 
    "error": "invalid_bearer_token", 
    "error_description": "Could not obtain bearer access_token from request." 
} 

Die Anfrage:

curl -k -L -H 'Content-Type: application/json' -H 'Authorization: bearer <signed_jwt>' '<realm_url>/authz/entitlement/foobar' 

Nun ist die Frage: Ist es möglich, um Berechtigungen für signierte JWTs abzurufen, und wenn ja, wie? Was ist meine Schuld?

Danke!

Antwort

0

Die Lösung besteht darin, den kid Header während der Signierung des Tokens aufzunehmen.

Verwandte Themen