11 votes

Comment obtenir des utilisateurs à partir de l'API REST de Keycloak ?

Bonjour, j'essaie d'utiliser l'API Keycloak mais je ne comprends pas très bien comment elle fonctionne. Je veux obtenir tous les utilisateurs d'un royaume. J'obtiens donc d'abord un jeton en utilisant ce point de terminaison : /realms/master/protocol/openid-connect/token avec ces paramètres dans le corps de la demande :

  • client_id
  • type de subvention
  • nom d'utilisateur
  • mot de passe
  • secret du client

La première question est la suivante : quel client dois-je utiliser ?

Puis j'appelle ce point final : /admin/realms/master/users avec le jeton dans l'en-tête d'autorisation, mais j'obtiens un code d'état 403 et je ne comprends pas pourquoi.

Gracias

17voto

Konrad Points 171

Vous avez besoin de deux étapes

  • Obtenez d'abord un jeton d'accès du client admin-cli du domaine principal.

  • Ensuite, appelez l'api admin rest avec le jeton d'accès, définissez Bearer comme préfixe dans l'en-tête en-tête d'autorisation.

    get an access token

    curl -X POST \ https://<HOST>/auth/realms/master/protocol/openid-connect/token \ -H 'Accept: application/json' \ -H 'Content-Type: application/x-www-form-urlencoded' \ -H 'cache-control: no-cache' \ -d 'grant_type=password&username=<USERNAME>l&password=<PASSWORD>&client_id=admin-cli'

    get all users of gateway realm, use the token from above and use Bearer as prefix

    curl -X GET \ https://<HOST>/auth/admin/realms/gateway/users \ -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkI...' \ -H 'cache-control: no-cache'

13voto

Jan Garaj Points 1999

403 = probablement vous n'avez pas la permission de voir les utilisateurs. Vous devez définir Client Roles pour l'utilisateur utilisé et attribuer view-users rôle :

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X