0

因此,我使用Keycloak 3.2.1并将Google添加为社交登录提供程序。身份验证到目前为止效果很好现在我尝试尝试(基于角色的)授权。在第一次登录时将IDC中的客户特定角色自动添加到IDP中,并使用keycloak作为身份代理

所以我登录(使用js-adapter)并查看了令牌,但没有映射(如名称或角色)。 jwt.io只是告诉我:

{ 
    "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": {} 
} 

keycloak.resourceAccess js适配器的对象是空的。现在,我在管理控制台中看到用户,并且可以手动将客户角色添加到他。然后,按照预期,它们将作为关键产品应用的数组显示在.resourceAccess中。不过,我想在首次登录时自动执行此操作。

Like:“用户使用social-login-provider登录product-app。登录时,我会自动将角色附加到他和他的令牌,并将它们返回到js-adapter的resourceAccess中。

因此,对于谷歌作为身份提供者我激活了“第一个经纪人登录” - 在管理员用户界面流,但我没有看到任何选择像“添加clientroles x,y,...到每个用户映射首次登录时从身份提供商处获得“。以某种方式可以做到这一点吗?遗憾的是,在文档或者tuts和vids中没有发现任何东西。

回答

0

在Keycloak的管理控制台下的菜单项“角色”中,您会看到一个“默认角色”选项卡。您可以在其中选择要自动分配给新用户的全局角色和/或客户端特定角色。

相关问题