基于dcm4chee搭建的PACS系统讲解(二)添加Keycloak鉴权
前一篇章中介绍搭建简单的PACS系统,但考虑到系统上线后的安全性,需要加入权鉴,于是开启Keycloak研究之路~ 放一个 官方的安装指导手册
其中需要五个docker服务
- Slapd
- PostgreSQL
- Archive
- Keycloak
- MariaDB
docker编排
安装篇完全参考官方操作,无踩坑~
version: "3"
services:
ldap:
image: dcm4che/slapd-dcm4chee:2.6.6-32.0
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "389:389"
- "636:636"
environment:
STORAGE_DIR: /storage/fs1
volumes:
- /var/local/dcm4chee-arc/ldap:/var/lib/openldap/openldap-data
- /var/local/dcm4chee-arc/slapd.d:/etc/openldap/slapd.d
mariadb:
image: mariadb:10.11.4
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: keycloak
MYSQL_USER: keycloak
MYSQL_PASSWORD: keycloak
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc/mysql:/var/lib/mysql
keycloak:
image: dcm4che/keycloak:24.0.4
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "8843:8843"
environment:
KC_HTTPS_PORT: 8843
KC_HOSTNAME: <docker-host>
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: changeit
KC_DB: mariadb
KC_DB_URL_DATABASE: keycloak
KC_DB_URL_HOST: mariadb
KC_DB_USERNAME: keycloak
KC_DB_PASSWORD: keycloak
KC_LOG: file
ARCHIVE_HOST: <docker-host>
KEYCLOAK_WAIT_FOR: ldap:389 mariadb:3306
depends_on:
- ldap
- mariadb
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc/keycloak:/opt/keycloak/data
db:
image: dcm4che/postgres-dcm4chee:16.2-32
logging:
driver: json-file
options:
max-size: "10m"
ports:
- "5432:5432"
environment:
POSTGRES_DB: pacsdb
POSTGRES_USER: pacs
POSTGRES_PASSWORD: pacs
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc/db:/var/lib/postgresql/data
arc:
image: dcm4che/dcm4chee-arc-psql:5.32.0-secure
ports:
- "8080:8080"
- "8443:8443"
- "9990:9990"
- "9993:9993"
- "11112:11112"
- "2762:2762"
- "2575:2575"
- "12575:12575"
environment:
POSTGRES_DB: pacsdb
POSTGRES_USER: pacs
POSTGRES_PASSWORD: pacs
AUTH_SERVER_URL: https://keycloak:8843
UI_AUTH_SERVER_URL: https://<docker-host>:8843
WILDFLY_CHOWN: /storage
WILDFLY_WAIT_FOR: ldap:389 db:5432 keycloak:8843
depends_on:
- ldap
- keycloak
- db
volumes:
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
- /var/local/dcm4chee-arc/wildfly:/opt/wildfly/standalone
- /var/local/dcm4chee-arc/storage:/storage
默认登录用户
按照官方指导手册安装完成后,系统默认创建以下3个用户及分配角色。
用户 | 密码 | 角色(s) |
---|---|---|
root | changeit | auth root auditlog ADMINISTRATOR all roles specified by client realm-management |
admin | changeit | auth admin |
user | changeit | auth user |
访问Keycloak管理界面https://localhost:8843/admin/dcm4che/console
,使用默认的 root/changeit
登录
客户端和用户概念
在 Keycloak 中,
client
和user
是两个不同的概念,它们在身份验证和授权过程中扮演不同的角色
Client 是一个应用程序或服务,通常代表需要访问 Keycloak 进行身份验证和授权的客户端应用。
User 是使用 Keycloak 进行身份验证和授权的个体用户。用户可以是实际的系统用户,也可以是表示某个实体的虚拟用户。
区分
区分点 | 客户端 | 用户 |
---|---|---|
作用范围 | 应用程序or服务 | 个人or实体 |
角色分配 | 分配后控制对资源的访问权限 | 定义在授权过程中具有的权限 |
身份校验流程 | 通过用户名密码 | 通过客户端ID和秘钥 |
交互方式 | 前端应用程序与keycloak交互 | 通过API与keycloak交互 |
操作失误点
Users菜单栏查询
默认情况下,用户列表为空,官方解释原因:This realm may have a federated provider. Viewing all users may cause the system to slow down, but it can be done by searching for "*". Please search for a user above.
输入框中输入首字母后自动搜索(全词匹配),肯定是搜不到滴
只能再次选中输入框中输入,然后再按Enter搜索
创建用户并赋予最高权限
- 在Users菜单栏,点击
Add user
按钮 - 在页面中输入username(lizzy),点击
Create
按钮 - 在User list中,输入lizzy,从列表中进入用户详情页
- 选择
Role Mapping
点击Assign Role
按钮 - 弹框中选择
Filter by realm roles
,全选 - 弹框中选择
Filter by clients
,全选
执行步骤1-5,发现可以登录管理平台,但是会报permission error,点击菜单会出现Forbidden, permission needed: query-users
执行步骤6后,就可以正常登录和操作!
后记
对于Keycloak探索比较少,只是记录创建用户和客户端的过程及采坑点~~
原文地址:https://blog.csdn.net/huhui806/article/details/140552751
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!