微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

kcadm创建的客户端始终是未经授权的

如何解决kcadm创建的客户端始终是未经授权的

我正在尝试为应用程序自动设置Keycloak服务器。其中一部分是使用管理CLI设置Keycloak客户端:

kcadm.sh create clients -r MyRealm -s clientId=my-client -s enabled=true

这似乎行得通;我可以使用管理控制台查看该客户端是否存在。但是,如果我尝试将该客户端与Java客户端一起使用(创建Keycloak对象),则由于 HTTP 401未经授权,即使是只读操作也会失败。我在做什么错了?

解决方法

经过大量实验,我发现了问题的原因。如果使用UI创建客户端,则默认情况下,UI会将客户端设置为公共客户端,并启用直接访问权限。但是,管理CLI却没有,并且导致通过Java客户端的访问被拒绝。相反,在使用管理CLI创建客户端时,必须显式设置这些设置:

kcadm.sh create clients -r MyRealm -s clientId=mc-client -s enabled=true -s directAccessGrantsEnabled=true -s publicClient=true

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。