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