LabHub
学习 学习路径 课程

Keycloak 与企业认证

用 kcadm 建 realm、client、用户

在 LabHub 中继续学习

目标

用kcadm将勒尔姆、公开客户端、机密客户端、用户编写成脚本,甚至接收服务账户令牌。

为什么重要

如果在网络控制台手动创建Keycloak设置,就不会再复制。在测试中设置的一项和在生产中设置的一项会悄悄地发生变化,几个月后就会出现“只有在生产中无法登录”。通过kcadm脚本化,该设置就会变成代码,成为审查和版本管理的对象。在这个练习中,必须理解的区别是公开客户端和机密客户端。这取决于是否可以安全地存储秘密,并决定使用什么授权类型。在SPA中创建机密客户端并将秘密放入JavaScript包,就像公开秘密一样。

Keycloak是JVM,所以启动速度很慢。在这个板块上需要40~90秒左右,所以第1步的等待循环是必不可少的。

阶段

  1. /root/kc/wait.shhttp://127.0.0.1:8080/realms/master直到达到200为止,最多等待180秒。/root/kc/ready.txtready_seconds=<정수>写。
  2. kcadm.sh config credentials --server http://127.0.0.1:8080 --realm master --user <관리자> --password <비밀번호>执行。资格证明是/opt/fixtures/kc/admin.env在。kcadm.sh get realms必须成功。
  3. 雷尔姆labhub2使其处于活性状态。kcadm.sh get realms/labhub2enabled必须是true。
  4. 公开客户端web-app制作。publicClient是true,standardFlowEnabled是true,PKCE代码挑战方式是S256,重定向URI是http://127.0.0.1:8161/callback是。
  5. 机密客户api-svc制作。publicClient是false,serviceAccountsEnabled是true。秘密/root/kc/api-svc.secret保存到。
  6. 用户dev1创建并设置电子邮件和密码Dev1!pass永久设置为。kcadm.sh get users -r labhub2 -q username=dev1应该把这1件还给我。
  7. api-svcclient_credentials收到代币/root/kc/svc-token.txt存储在。必须是2个点的字符串。
  8. /root/kc/realm.json{"realm":"labhub2","clients":["web-app","api-svc"],"users":["dev1"]}制作形式的总结。必须以实际查询结果为基础进行编写。

参考

准备Keycloak等待

/root/kc/wait.shhttp://127.0.0.1:8080/realms/master直到达到200为止,最多等待180秒。/root/kc/ready.txtready_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/labhub2enabled必须是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-svcclient_credentials收到代币/root/kc/svc-token.txt存储在。必须是2个点的字符串。

这是仅凭客户端身份接收的,没有用户的流程。请准确写出授予类型名称。

留下雷尔姆构成摘要

/root/kc/realm.json{"realm":"labhub2","clients":["web-app","api-svc"],"users":["dev1"]}制作形式的总结。必须以实际查询结果为基础进行编写。

查询制作的东西,用一个文件收集起来。必须是别人可以再现的形式。