2016-11-04 4 views
7

Ich habe zwei Webapps. Jeder hat Frontend (AngularJS) und Backend (Java). Jedes Frontend verfügt über eine eigene Datei mit dem Schlüssel keycloak.json für den öffentlichen Zugriffstyp. Jedes Back-End verfügt über eine eigene Schlüssel-Zugriffsschlüssel-Konfiguration keycloak.json. Jede Frontend-App funktioniert gut mit einem eigenen Backend. Meine Aufgabe besteht darin, REST-Aufrufe voneinander zu machen (Backend zu Backend). Wie könnte ich das erreichen? Denn auf jedem Backend werden REST-Dienste durch Überprüfung der Token-Gültigkeit geschützt.Backend zur Backend-Kommunikation über REST mit Keycloak geschützten Backends

+0

Gute Frage! Ich denke, ein geeigneterer Ort, um diese Art von Fragen zu stellen, ist die offizielle [Keycloak Benutzer-Mailingliste] (https://lists.jboss.org/mailman/listinfo/keycloak-user). – Yuri

Antwort

0

Wenn alle diese Back-End-Dienste durch einen Schlüsselcloak gesichert sind, sehen Sie sich die KeycloakRestTemplate-Erweiterung von RestTemplate im Spring-Schlüsselcloak-Adapter an. KeycloakRestTemplate wird als Teil der keycloak-spring-security-adapter jar-Abhängigkeit importiert.

Im Wesentlichen verwendet es KeycloakClientRequestFactory und fügt Autorisierungsheader (für den aktuell authentifizierten Prinzipal) intern allen Serviceanforderungen für Serviceaufrufe hinzu.

https://github.com/keycloak/keycloak/blob/master/adapters/oidc/spring-security/src/main/java/org/keycloak/adapters/springsecurity/client/KeycloakRestTemplate.java

+0

Aber wenn ich nicht Frühling benutze? Was zu tun als? – Eldar

+0

@Eldar, natürlich musst du den Frühling nicht benutzen. Sie können das Zugriffstoken von der ursprünglichen Anforderung von der Benutzeroberfläche zum Back-End nehmen und es einfach in den Header der ausgehenden Anforderung an einen anderen Back-End-Dienst einfügen. Wenn nicht Rest Restemplate, wie machen Sie diesen Dienst zum Serviceanruf? –

+0

Ich habe das ohne Glück versucht. Das zweite Backend löst die Ausnahme "Token-Aussteller ist anders" aus. Zwei Projekte haben unterschiedliche Subdomänennamen: backend1.project.com und backend2.project.com – Eldar

Verwandte Themen