Gibt es eine Möglichkeit, eine Liste von Benutzern in einem Keycloak-Realm über REST OHNE mit einem Administratorkonto abzurufen? Vielleicht eine zuweisbare Rolle von der Admin-Konsole? Auf der Suche nach irgendwelchen Ideen.So erhalten Sie Keycloak-Benutzer über REST ohne Administratorkonto
Momentan verwende ich Admin-Anmeldedaten, um ein Zugriffstoken zu erhalten, und benutze dann dieses Token, um Benutzer vom realm/users
-Endpunkt abzurufen.
Erste das Token (aus node.js App via request
):
uri: `${keycloakUri}/realms/master/protocol/openid-connect/token`,
form: {
grant_type: 'password',
client_id: 'admin-cli',
username: adminUsername,
password: adminPassword,
}
das Token verwenden:
uri: `${keycloakUri}/admin/realms/${keycloakRealm}/users`,
headers: {
'authorization': `bearer ${passwordGrantToken}`,
}
Ich möchte allgemeine Benutzerinformationen verwenden können (Benutzernamen, E-Mails, Vollnamen) aus einer Client-Anwendung.
Vielen Dank für Ihre Antwort. Was würdest du anstelle eines Passwortes empfehlen? Die node.js-App, die Benutzer erhalten wird, ist eine rein dev-only-App, die Benutzer lesen muss - sie wird in einem cron-job-Typ auf einem gesicherten Server ausgeführt. Im Moment verwendet es die in einer lokalen JSON-Datei gespeicherten Admin-Creds, um das Lesen durchzuführen. Ich kann diese Admin-Credits in der JSON-Datei für die Creds eines Benutzers mit NUR der Rolle view-users wechseln, wie Sie oben beschrieben haben. Gibt es einen besseren Weg? –
Wenn es ein Cron ist, der auf den Benutzer zugreift, würde ich lieber mit [Client-Berechtigungsnachweis] gehen (https://auth0.com/docs/api-auth/tutorials/client-credentials). Auf diese Weise speichern Sie Ihr Clientgeheimnis im lokalen JSON und loggen sich als CLIENT ein (ich weiß nicht, ob dies im Adapter implementiert ist, aber ansonsten ist es einfach, es manuell zu tun, überprüfen Sie meinen Link). Dann müssen Sie das Token genau so verwalten, wie es für einen Benutzer wäre (Aktualisieren). Siehe auch https://stackoverflow.com/questions/41756879/keycloak-client-credentials-flow-clarification Happy code ;-) –
Danke! Viel Spaß mit dem Kopfgeld :) –