keycloak~授權功能的使用
keycloak提供了(le)完善的(de)授(shou)權(quan)功能,即在kc端對資(zi)(zi)源(yuan)服務器的(de)各種資(zi)(zi)源(yuan)進(jin)行管理,然后就可以完成(cheng)對它們的(de)管控,這(zhe)些資(zi)(zi)源(yuan)可以根據kc的(de)用戶、角色、組等信息進(jin)行授(shou)權(quan)。
資源服務器客戶端配置
- 以springboot接口KC為例,說一下它的配置文件
keycloak:
auth-server-url: //192.168.xx.xx:8080/auth
realm: fabao
resource: democlient # client-id
client-key-password: ec0fd1c6-68b0-4c39-a9fa-c3be25c8ef01 #客戶端密鑰
credentials.secret: ec0fd1c6-68b0-4c39-a9fa-c3be25c8ef01 #客戶端密鑰,policy-enforcer-config.enforcement-mode: ENFORCING時,需要添加這個值
principal-attribute: preferred_username # principal.getName()返回為用戶名
policy-enforcer-config:
enforcement-mode: ENFORCING #kc遠程授權方式
security-constraints:
- auth-roles:
- "*"
security-collections:
- name:
patterns:
- /*
kc遠程集中授權圖
- 流程圖

- 策略與權限

- 資源與權限scope

kc服務端-資源服務器配置
- 需要為當前客戶端,添加它的uma_protected角色

- 開啟遠程授權

- 添加資源

- 添加策略

- 添加權限,實現了為資源綁定策略

說明
上面各圖中,配置了資源admin-resource,路徑是admin開頭的uri;配置了策略admin,包換ROLE_ADMIN角色的人;配置了admin-permission權限,讓它綁定了admin策略,最后把它綁定到資源admin-resource上面。








