Est-il possible de filtrer les groupes autorisés dans le paramétrage du AUTH_PROVIDER keycloack via les userinfo_mappings
“groups”: [ “realm.roles”, “groups” ]
Pour n’autoriser que les groupes commençant par AAAA%
La wildcard AAAA* du paramètre USER_SYNC_GROUPS_INCLUDE sert à synchroniser via API keycloak tous les groupes “commençant par AAAA” en base locale.
Dans le mapping du AUTH_PROVIDER, les groupes listés dans le mapping des “groups” sont ajoutés au profil s’ils sont présents dans le service “userinfo” du protocole d’authent. Il n’y a pas de wildcard prévue.
Sans présumer de la réponse de @Francois pour le cas particulier de KeyCloak, dans le cas général dans un preLoadGrant il y a la possibilité d’exploiter le contenu de la session info pour implémenter des règles (ex: l’attributions de droits) en fonction de ce qui est retourné par l’IdP:
@Override
public void preLoadGrant(Grant g) {
AppLog.info(g.getSessionInfo().toString(), g);
}
Si je comprends bien, tu souhaites que les groups qui sont montés dans le profil puissent avoir une wildcard sans avoir besoin de tous les lister dans le paramètre.
actuellement il faut être explicite dans le AUTH_PROVIDER mapping :
"groups": [ "AAAA1", "AAAA2", "AAAA3", "AAAA4" ]
syntaxe plus générique :
"groups": [ "AAAA*" ]
Attention au nom des groupes, il est préférable d’avoir des “_” et non des espaces pour respecter la regexp de Simplicité sur les nommages techniques.
Nota : Simplicité ne va pas créer les groupes, pour la synchronisation auto via API Keycloack des users+groups il y a d’autres paramètres.
Peux tu nous donner ton paramétrage AUTH_PROVIDER pour keycloak avec la syntaxe actuelle et celle que tu souhaites ?
et également le userinfo que tu récupères (avec les realm.roles ou les groups)
et aussi le paramètre KEYCLOAK_SYNC
Je ne vois pas très bien à quel niveau tu souhaites positionner un wilcard ?
car le paramètre “groups” donne juste les chemins dans le userinfo du système d’authent où se trouve le/les groupes à charger.
A mon avis il va falloir ajouter un autre paramètre au niveau AUTH_PROVIDER pour filtrer, ou réutiliser le paramètre d’import prefix de KEYCLOAK_SYNC.