2

因此,我使用 Keycloak 3.2.1 并将 google 添加为社交登录提供程序。到目前为止,身份验证工作正常。现在我尝试尝试(基于角色的)授权。

所以我登录(使用 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.resourceAccessjs 适配器的 Object 是空的。现在,我在管理控制台中看到了该用户,并且可以手动向他添加客户端角色。然后它们按预期显示在 .resourceAccess 中作为关键产品应用程序的数组。不过,我想在第一次登录时自动执行此操作。

比如:“用户使用 social-login-provider 登录产品应用程序。登录时,我会自动将角色附加到他和他的令牌,并在 js-adapter 的 resourceAccess 中返回它们”。

因此,对于作为身份提供者的谷歌,我激活了“第一个代理登录”-在管理 ui 中流动,但我看不到任何选项可以说“将客户端角色 x,y,... 添加到从身份提供者映射的每个用户首次登录”。有可能以某种方式做到这一点吗?遗憾的是,在文档或 tuts 和 vids 中还没有找到任何东西。

4

1 回答 1

3

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

于 2017-10-23T04:23:20.133 回答