0

Donc, j'utilise Keycloak 3.2.1 et j'ai ajouté google comme fournisseur de connexion sociale. L'authentification fonctionne bien jusqu'à présent. Maintenant, j'essaie d'expérimenter avec l'autorisation (basée sur le rôle). Donc, je me suis connecté (en utilisant js-adaptateur) et j'ai regardé le jeton, mais il n'y a pas de mappages tels que le nom ou les rôles. jwt.io me montrer ceci:Ajoute automatiquement des rôles spécifiques aux clients aux données d'utilisateur de IDP lors de la première connexion avec keycloak en tant que courtier d'identité

{ 
    "jti": "8a3584e9-678d-4d5c-b1a1-f5a795d49ecb", 
    "exp": 1507886130, 
    "nbf": 0, 
    "iat": 1507885830, 
    "iss": "http://localhost:8080/auth/realms/social-auth", 
    "aud": "product-app", 
    "sub": "7bd7197c-f9af-4b54-b052-993e52467be1", 
    "typ": "Bearer", 
    "azp": "product-app", 
    "nonce": "87cd2e86-4f26-4371-9c08-9401dad85e45", 
    "auth_time": 1507885830, 
    "session_state": "0102a459-48f8-4b03-9004-7e1efb125f65", 
    "acr": "1", 
    "allowed-origins": [ 
    "http://localhost:8088" 
    ], 
    "resource_access": {} 
} 

et l'objet keycloak.resourceAccess de l'adaptateur js est vide. Maintenant, je vois l'utilisateur dans ma console d'administration et il est possible de lui ajouter manuellement les rôles du client. Ensuite, ils apparaissent dans .resourceAccess en tant que tableau pour l'application-produit clé comme prévu. Néanmoins, je voudrais le faire automatiquement lors de la première connexion. Comme: «L'utilisateur se connecte à l'application-produit avec le fournisseur de connexion sociale.A la connexion, j'attache automatiquement des rôles à lui et à son jeton et je les renvoie dans resourceAccess de js-adapter». Donc, pour google en tant que fournisseur d'identité, j'ai activé "first broker login" - flux dans admin ui, mais je ne vois aucune option pour dire quelque chose comme "ajouter clientroles x, y, ... à chaque utilisateur mappé du fournisseur d'identité lors de la première connexion ". Est-il possible de le faire d'une manière ou d'une autre? Je n'ai pas encore trouvé quelque chose dans les docs ou les tuts et vids, malheureusement.

Répondre

0

Dans la console d'administration de Keycloak, sous l'élément de menu "Rôles", vous trouverez un onglet "Rôles par défaut". Vous pouvez y sélectionner des rôles globaux et/ou des rôles spécifiques au client à attribuer automatiquement aux nouveaux utilisateurs.