... | ... | @@ -8,11 +8,26 @@ Keycloak propose plusieurs fonctionnalités qui pourraient servir dans ce but : |
|
|
Permettrait de définir des ressources de type groupe, et d'assigner des permissions à l'utilisateur sur celles-ci. Nécéssite de requêter le serveur d'autorisation depuis l'application.
|
|
|
|
|
|
|
|
|
Solution en cours de développement :
|
|
|
**Solution en cours de développement :**
|
|
|
|
|
|
* à l'initialisation du serveur, un groupe 'admins' est créé si non existant
|
|
|
* lorsqu'un groupe 'toto' est créé dans la boite, on crée automatiquement les groupes suivants dans Keycloak : 'member_toto', 'animator_toto' et 'admin_toto' (realm) ainsi que des rôles du même nom (dans le client laboite)
|
|
|
* lorsqu'un rôle sur un groupe est ajouté/supprimé dans laboite, on ajoute/enlève le groupe correspondant dans Keycloak
|
|
|
* Rqe: en modifiant le tokenClaimName des mappers du scope 'roles' dans Keycloak, on peut controller le nom de l'attribut qui recevra les roles de l'utilisateur à la connexion.
|
|
|
|
|
|
|
|
|
\ No newline at end of file |
|
|
**Pour tester :**
|
|
|
|
|
|
renseigner le login/pwd d'un admin Keycloack dans les settings de laboite
|
|
|
vérifier dans les logs que le client s'initialise bien (au premier lancement, un message doit indiquer la création du groupe admins dans Keycloak):
|
|
|
|
|
|
I20200630-15:42:55.041(2)? Keycloak: client ID found (4777b0f9-a749-40e9-9a89-d00a65cb4ee3)
|
|
|
I20200630-15:42:55.047(2)? Keycloak: API client initialized
|
|
|
|
|
|
Se connecter à laboite avec un compte keycloak
|
|
|
Créer un nouveau groupe
|
|
|
s'assigner comme menbre du groupe
|
|
|
|
|
|
Dans l'interface admin de keycloak, vérifier que :
|
|
|
* 3 groupes ont été créés pour le groupe en question (member_<group>, animator_<group>, admin_<group>)
|
|
|
* 3 rôles correspondants ont été créés dans le client laboite (ou autre nom, vérifier le nom du client configuré dans les settings)
|
|
|
* éditer l'utilisateur en question, aller sur "Role Mappings" et entrer le nom du client dans "Client Roles". Dans "effective roles", l'utilisateur devrait avoir admin_<group> et member_<group>. |
|
|
\ No newline at end of file |