
Ich muss meine Anwendung (ab jetzt „Logic“ genannt) autorisieren, um Benutzer eines Keycloak-Bereichs zu verwalten. „Logic“ authentifiziert sich bereits gegenüber diesem Bereich mit einem Client-Anmeldeinformationen-Zugriffstyp, sodass der Code bereits funktioniert.
Jetzt muss ich in der Keycloak-Verwaltungskonsole meinem Client die richtige Rolle hinzufügen, damit „Logic“ berechtigt ist, jeden von Keycloak bereitgestellten API-Endpunkt zum Verwalten der Realm-Benutzer aufzurufen.
In der Realm-Clientliste gibt es einen Client mit dem Namen realm-management
, den Keycloak standardmäßig für jeden Realm bereitstellt. Dieser Client kann den gesamten Realm verwalten, nicht nur dessen Benutzer, und er verfügt aus diesem Grund über eine Liste mit Client-Rollen. manage-users
ist eine der Rollen in dieser Liste und es ist die Rolle, die ich meinem anderen Client zuweisen muss (den ich logic
in Keycloak benannt habe). Mit anderen Worten, meine „Logic“-Anwendung verwendet die Keycloak-Client-ID, logic
um sich zu authentifizieren, und ich muss die manage-users
Rolle dem logic
Client hinzufügen.
Das Problem besteht darin, dass in meinen Client( logic
)-Rolleneinstellungen dieselben Rollen, die unter realm-management
„Client“ aufgeführt sind, überhaupt nicht aufgeführt sind und die Liste nur uma_protection
die folgende Rolle enthält:
Wenn ich nach „manage-users“ suchte, indem ich es in das Suchfeld eingab, wurde es nicht angezeigt. Wenn ich in der Rollenliste des realm-management
Clients auf diese Rolle klicke, wird angezeigt, dass keineBenutzerhabe diese Rolle und kann sie hinzufügen zuBenutzer, aber nicht zuKunden, auch wenn diese Rolle tatsächlich in einemKlient( realm-management
).
Das Erstellen einer neuen Rolle in meinem logic
Client mit demselben Namen manage-users
ist möglich, aber ich bin mir nicht sicher, ob das der richtige Weg ist. Ich meine, warum sollte ich eine vorhandene Rolle duplizieren? Das riecht nach etwas Falschem.
Können Sie mir bitte den richtigen Weg erklären, um die manage-users
Rolle zu einemKlientin Keycloak 23?
Antwort1
ich endlichhabe eine Antwortvon einem Mitglied der offiziellen Keycloak-Support-Community, und ich melde das hier, nur für den Fall, dass andere meine Frage hier finden.
dasniko schrieb:
Wenn Ihr Client bereits den Client-Anmeldeinformationen-Flow verwendet, sind „Dienstkonten“ aktiviert. Sie müssenzuordnendie
realm-management.manage-users
Rolle dem Servicekonto im entsprechenden Reiter Ihres Clients zu. Auf diese Weise erhält der entsprechende Servicekontobenutzer, der in Keycloak dafür verantwortlich ist, dass der Client-Anmeldeinformationsfluss funktioniert, die richtige Rolle und sollte in der Lage sein, Ihre Benutzer zu verwalten.
Die Rollen können gefunden werden, indem Sie den Filter „Nach Clients filtern“ anstelle von „Nach Realm-Rollen filtern“ auswählen.