用 kcadm 建 realm、client、用户
目标
用kcadm将勒尔姆、公开客户端、机密客户端、用户编写成脚本,甚至接收服务账户令牌。
为什么重要
如果在网络控制台手动创建Keycloak设置,就不会再复制。在测试中设置的一项和在生产中设置的一项会悄悄地发生变化,几个月后就会出现“只有在生产中无法登录”。通过kcadm脚本化,该设置就会变成代码,成为审查和版本管理的对象。在这个练习中,必须理解的区别是公开客户端和机密客户端。这取决于是否可以安全地存储秘密,并决定使用什么授权类型。在SPA中创建机密客户端并将秘密放入JavaScript包,就像公开秘密一样。
Keycloak是JVM,所以启动速度很慢。在这个板块上需要40~90秒左右,所以第1步的等待循环是必不可少的。
阶段
/root/kc/wait.sh罗http://127.0.0.1:8080/realms/master直到达到200为止,最多等待180秒。/root/kc/ready.txt在ready_seconds=<정수>写。kcadm.sh config credentials --server http://127.0.0.1:8080 --realm master --user <관리자> --password <비밀번호>执行。资格证明是/opt/fixtures/kc/admin.env在。kcadm.sh get realms必须成功。- 雷尔姆
labhub2使其处于活性状态。kcadm.sh get realms/labhub2的enabled必须是true。 - 公开客户端
web-app制作。publicClient是true,standardFlowEnabled是true,PKCE代码挑战方式是S256,重定向URI是http://127.0.0.1:8161/callback是。 - 机密客户
api-svc制作。publicClient是false,serviceAccountsEnabled是true。秘密/root/kc/api-svc.secret保存到。 - 用户
dev1创建并设置电子邮件和密码Dev1!pass永久设置为。kcadm.sh get users -r labhub2 -q username=dev1应该把这1件还给我。 api-svc罗client_credentials收到代币/root/kc/svc-token.txt存储在。必须是2个点的字符串。/root/kc/realm.json在{"realm":"labhub2","clients":["web-app","api-svc"],"users":["dev1"]}制作形式的总结。必须以实际查询结果为基础进行编写。
参考
- kcadm路线一般
/opt/keycloak/bin/kcadm.sh是。 - 勒尔姆生成:
kcadm.sh create realms -s realm=labhub2 -s enabled=true - 客户端秘密查询:
kcadm.sh get clients/<id>/client-secret -r labhub2 - 常见的错误1:
master在Relm中创建应用程序用户——与Keycloak管理权限相关联。 - 常见的错误2:临时(temporary)设置密码,第一次登录时出现变更画面。
准备Keycloak等待
/root/kc/wait.sh罗http://127.0.0.1:8080/realms/master直到达到200为止,最多等待180秒。/root/kc/ready.txt在ready_seconds=<정수>写。
JVM启动需要时间。请查询准备确认终点。最多可以等待180秒。
设置管理员资格证
kcadm.sh config credentials --server http://127.0.0.1:8080 --realm master --user <관리자> --password <비밀번호>执行。资格证明是/opt/fixtures/kc/admin.env在。kcadm.sh get realms必须成功。
kcadm一旦设置了身份认证,以后在命令中就可以重复使用。管理账户信息在图片中。
制作应用程序Relm
雷尔姆labhub2使其处于活性状态。kcadm.sh get realms/labhub2的enabled必须是true。
在master中不能创建应用程序用户的原因在阅读资料中。别忘了启用选项。
创建公开客户端
公开客户端web-app制作。publicClient是true,standardFlowEnabled是true,PKCE代码挑战方式是S256,重定向URI是http://127.0.0.1:8161/callback是。
没有秘密的客户端必须使用PKCE。重定向URI也必须准确注册。
创建秘密客户和服务账户
机密客户api-svc制作。publicClient是false,serviceAccountsEnabled是true。秘密/root/kc/api-svc.secret保存到。
如果有秘密,打开服务账户后可以获得自己的代币。请将秘密保存为文件。
创建用户并设置密码
用户dev1创建并设置电子邮件和密码Dev1!pass永久设置为。kcadm.sh get users -r labhub2 -q username=dev1应该把这1件还给我。
用户生成和密码设置是单独的命令。必须不是临时密码才能不阻碍登录流程。
获取服务账户令牌
api-svc罗client_credentials收到代币/root/kc/svc-token.txt存储在。必须是2个点的字符串。
这是仅凭客户端身份接收的,没有用户的流程。请准确写出授予类型名称。
留下雷尔姆构成摘要
/root/kc/realm.json在{"realm":"labhub2","clients":["web-app","api-svc"],"users":["dev1"]}制作形式的总结。必须以实际查询结果为基础进行编写。
查询制作的东西,用一个文件收集起来。必须是别人可以再现的形式。