18.4. 身份验证
使用 Admin CLI 登录时,您可以指定:
- 服务器端点 URL
- 一个 realm
- 用户名
另一个选项是仅指定 clientId,它会为您创建一个唯一的服务帐户。
当您使用用户名登录时,请为指定用户使用密码。当您使用 clientId 登录时,您只需要客户端 secret,而不是用户密码。您还可以使用 Signed JWT
而不是客户端机密。
确保用于会话的帐户具有调用 Admin REST API 操作的适当权限。例如,realm-management
客户端的 realm-admin
角色可以管理用户的域。
有两种主要机制可用于进行身份验证。一个机制使用 kcadm 配置凭证
来启动经过身份验证的会话。
$ kcadm.sh config credentials --server http://localhost:8080 --realm master --user admin
此机制通过保存获取的访问令牌及其关联的刷新令牌,在 kcadm
命令调用之间维护经过身份验证的会话。它可以在私有配置文件中维护其他 secret。如需更多信息,请参见 下一章。
第二种机制验证调用期间每个命令调用。这种机制会增加服务器上的负载,以及获取令牌的往返时间。这种方法的好处是不需要在调用之间保存令牌,因此不会保存到磁盘。当指定-- no-config
参数时,Red Hat build of Keycloak 会使用这个模式。
例如,在执行操作时,指定身份验证所需的所有信息。
$ kcadm.sh get realms --no-config --server http://localhost:8080 --realm master --user admin
运行 kcadm.sh help
命令以了解有关使用 Admin CLI 的更多信息。
运行 kcadm.sh config credentials --help
命令来了解有关启动经过身份验证的会话的更多信息。
如果您没有指定 --password 选项(通常建议不提供密码作为命令的一部分),系统会提示您输入密码,除非将密码指定为环境变量 KC_CLI_PASSWORD。