docker pull mysql:5.7
内网仓库:
docker pull registry-1.docker.io/library/mysql:5.7`
docker network create keycloak-network
docker volume create mysql-data-keycloak
First start a MySQL instance using the MySQL docker image:
docker run --restart=always --name mysql / --network keycloak-network / -p 13306:3306 / -v mysql-data-keycloak:/var/lib/mysql / -e MYSQL_DATABASE=keycloak / -e MYSQL_USER=keycloak / -e MYSQL_PASSWORD=keycloak / -e MYSQL_ROOT_PASSWORD=root123 / -d mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
登录mysql授权:
docker attach mysql mysql -u root -p GRANT ALL PRIVILEGES ON `keycloak`.* TO 'keycloak' @'%'; grant all on *.* to 'keycloak'@'%' identified by 'keycloak' with grant option; flush privileges;
下载镜像:
docker pull docker.io/jboss/keycloak
或者:
docker.io/icolabora/keycloak
启动keycloak:需要设置useSSL=false
docker run --restart=always --name keycloak / --network keycloak-network / -p 6060:8080 / -e KEYCLOAK_USER=admin / -e KEYCLOAK_PASSWORD=admin / -e DB_VENDOR=mysql / -e DB_ADDR=mysql / -e DB_PORT=3306 / -e DB_DATABASE=keycloak / -e DB_USER=root / -e DB_PASSWORD=root123 / -e JDBC_PARAMS='connectTimeout=90&useSSL=false' / -v /etc/localtime:/etc/localtime / docker.io/jboss/keycloak
启动成功后,访问:
http://192.168.56.101:6060/
Three main processes define the necessary steps to understand how to use Keycloak to enable fine-grained authorization to your applications:
下载 keycloak-quickstarts ,导入app-athuz-springboot项目。
修改配置文件:
keycloak.auth-server-url=http://192.168.56.101:6060/auth keycloak.ssl-required=none ... logging.level.root=ON logging.level.org.springframework.boot=ON spring.main.banner-mode=CONSOLE
由于原来项目httpclint包有冲突,修改pom.xml
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.5</version> </dependency>
启动项目。
admin登录keycloak之后, Add Realm -> select file
,选择项目中 config/quickstart-realm.json
查看clint中app-authz-springboot是否正常。
主要查看Authorization中的 Resources
Policies
Permissions
是否有效。
我导入后发现政策和权限没有对应的资源,删除后手动建的。
访问: http://localhost:8080/
在user角色中的用户可以访问普通保护资源 /protected/*
,在user-premium中的用户可以访问高级保护资源 /protected/premium/*
.
在keycloak服务器client中修改valid-redirect uris:
http://localhost:8080/*