Keycloak是一个开源的 oauth 用户认证和授权解决方案。使用 keycloak 开发者就不用自己实现用户管理功能了。
Keycloak 的教程中提供了 docker 部署教程,但是教程中使用的是 Keycloak 自己的 h2 数据库,默认暴露的是 http 端口,再最后验证阶段如果不是把 keycloak 部署在本机,使用 https://www.keycloak.org/app/ 是不能让开发者新建的用户登录的。
本文提供的 docker-compose 脚本可以帮助开发者解决这个问题。
version: '3' # volumes: # postgres_data: # driver: local services: # postgres: # image: postgres # volumes: # - postgres_data:/var/lib/postgresql/data # environment: # POSTGRES_DB: keycloak # POSTGRES_USER: keycloak # POSTGRES_PASSWORD: password keycloak: image: quay.io/keycloak/keycloak:latest environment: DB_VENDOR: POSTGRES DB_ADDR: 172.26.198.222 DB_DATABASE: keycloak DB_USER: kong DB_SCHEMA: public DB_PASSWORD: kong KEYCLOAK_USER: admin KEYCLOAK_PASSWORD: admin # Uncomment the line below if you want to specify JDBC parameters. The parameter below is just an example, and it shouldn't be used in production without knowledge. It is highly recommended that you read the PostgreSQL JDBC driver documentation in order to use it. #JDBC_PARAMS: "ssl=true" ports: - 8082:8443 # depends_on: # - postgres
上面的脚本让 keycloak 使用了其他服务提供的数据库。在官方脚本中默认暴露的是8080端口,在上面的脚本中暴露的是 8443 端口,这样我们就可以得到 https 服务了。只有基于 https 服务,官方示例的 web app 才能让开发者创建的用户登录。
参考链接:
原文链接:https://blog.csdn.net/surfirst/article/details/118329754?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171836883916800178536146%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=171836883916800178536146&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-29-118329754-null-null.nonecase&utm_term=docker%E9%83%A8%E7%BD%B2