因此,我使用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中沒有發現任何東西。