Keycloak récupérer des attributs personnalisés pour KeycloakPrincipal
Dans mon service rest je peux obtenir les informations de l'entité après l'authentification à l'aide de
KeycloakPrincipal kcPrincipal = (KeycloakPrincipal) servletRequest.getUserPrincipal();
déclaration.
Keycloak principal ne fait pas cotain toutes les informations dont j'ai besoin à propos de l'utilisateur authentifié.
Est-il possible de personnaliser mon propre type principal?
Sur le keycloak-serveur-end j'ai développé un utilisateur fournisseur de fédération. J'ai vu que UserModel fait possible d'ajouter un ensemble d'attributs personnalisés pour mon utilisateur.
Est-il possible d'insérer mon entité personnalisée dans ce code?
Est-il possible de récupérer ces attributs de keycloak principal?
Quel est le chemin?
OriginalL'auteur Alex | 2015-09-20
Vous devez vous connecter pour publier un commentaire.
Pour ajouter des attributs personnalisés que vous devez faire trois choses:
La première s'explique très bien ici: https://www.keycloak.org/docs/latest/server_admin/index.html#user-attributes
Ajouter un mappage de revendication:
Accès revendications:
Espère que cette aide et adapté à votre cas d'utilisation. J'ai utilisé ce pour un attribut personnalisé, j'ai ajouté avec un thème personnalisé.
Mon code est: KeycloakAuthenticationToken token = (KeycloakAuthenticationToken) demande. getUserPrincipal(); KeycloakPrincipal principal = (KeycloakPrincipal) jeton.getPrincipal(); IDToken idToken = principal.getKeycloakSecurityContext().getIdToken(); System.err.println("taille "+otherClaims.size()+idToken.getEmail()+idToken.getFamilyName());
avez-vous ajouté les mappages dans keycloak console d'administration en vertu de la client que vous utilisez?
Salut. J'ai le même problème. Je ne peux pas voir l'ajout d'attributs de l'utilisateur. J'ai ajouté la cartographie sous mon client (printemps de démarrage de l'app) et toujours pas de nouveaux attributs sont reçus. Pourriez-vous s'il vous plaît aider? Merci
Le lien est obsolète, correcte est keycloak.org/docs/latest/server_admin/...
OriginalL'auteur lisa p.
Sélectionner des Utilisateurs > Recherche > cliquez sur l'ID > aller à l'onglet attributs > Ajouter un attribut > par exemple: téléphone > Enregistrer
Sélectionner les Clients > cliquez sur l'ID de Client > aller à la Mappeurs Tab > créer mappeur
Obtenir les attributs personnalisés
Merci pour ce commentaire, j'ai passé des heures et des heures parce que je n'avais pas pensé à ça.
Merci pour la solution. Est-il un moyen pour appliquer les attributs personnalisés pour tous les utilisateurs? J'ai particulièrement besoin de faire cela pour tous mes utilisateurs qui sont importés par le biais de mon fournisseur Ldap.
OriginalL'auteur Neeraj Benjwal