2017-10-17 5 views
0

Ich benutze Keycloak mit einem AngularJs-Client und einem REST-Java-Backend (mit Play Framework 2.6).Keycloak force refresh token

Ich verwende openid-connect. Der Client ist mit Zugriffstyppublic konfiguriert, während der REST-Server als bearer-only konfiguriert ist. Ich verwende die Keycloak JS adapter mit dem Client und die Keycloak Java adapter mit dem REST-Server.

Authentifizierung funktioniert gut. Mit dem java admin-cli vom REST-Server ich bin eine attribute für den Benutzer hinzufügen und mit einer benutzerdefinierten mapper diese attribute wird direkt in der Access token hinzugefügt.

Das Problem ist, dass wenn ich dieses Attribut hinzufüge oder aktualisiere ich den aktualisierten Wert in Access token nicht sehen kann. Ich kann es nur nach einem Logout sehen - Login oder laden des Clients.

Wie kann ich die Aktualisierung des Zugriffstokens vom REST-Server erzwingen? Es gibt andere Strategien, um das aktualisierte Attribut im Access Token zu sehen?

Antwort

1

In einem bearer-only ist es nicht möglich, das Token zu aktualisieren. Verwenden Sie auf der Client-Seite keycloak.updateToken()? Andere Option besteht darin, den user-info Endpunkt von Ihrem REST-Server anzurufen, aber nicht sicher, dass Sie interessiert sind, da er nicht im Token enthalten ist.

+0

Ich habe eine Lösung gefunden, die das Token mit 'keycloak.updateToken()' auf dem Client aktualisiert. – Atropo