当前位置: 首页 > 知识库问答 >
问题:

使用客户端机密调用KeyCloak的管理REST API

爱乐邦
2023-03-14

https://KeyCloak.gitbooks.io/server-developer-guide/content/v/2.2/topics/admin-rest-api.html中使用CURL的示例适用于从其Docker映像运行KeyCloak。

为了实现应用程序的最终目标形状,我希望使用客户端ID和机密而不是用户名+密码进行身份验证。

curl -d "client_id=admin-cli" -d "client_id=admin-cli" -d "client_secret=xxxx" -d "grant_type=client_credentials" "http://localhost:8080/auth/realms/master/protocol/openid-connect/token"

该令牌会导致对admin REST API的调用出现403错误。我做错什么了吗?

共有1个答案

柯宜年
2023-03-14

下面是我如何在admin-cli上实现client_credentials:

  1. 按您的要求启用“服务帐户”
  2. 将“访问类型”设置为机密-这将使它能够使用client_secret并分配secret(凭据选项卡)。
  3. 在'Service Accounts'选项卡上,从realm-management client角色授予服务帐户realm-admin角色

因为我是为特定领域下的admin-cli客户机执行此操作的,所以您可以将该领域从'master'更改为您的任何领域,在我的例子中是eec-rlm:

当文档与要调用的实际URL相关时,文档并不一定特别清楚:例如,我最初认为这些操作总是在master域中,但事实并非如此。

 类似资料:
  • 我以前在其他项目中实现过类似的功能,但从未使用Quarkus作为底层实现框架。所以,我的猜测是与此有关。但我从没见过这样的错误。有人能给我一些关于如何绕过这个问题的见解吗?

  • 有人能为JBOSS 7.1的keycloak-admin-client提供工作的pom.xml吗? 多谢

  • 我正在尝试各种Azure功能,目前希望从KeyVault检索一个秘密。 直截了当地说: 我正在使用这个nuget包与我的azure资源进行交互。 我开发了一个简单的。NET核心控制台应用程序,并在本地运行。 我有一个密钥库资源,其中定义了一个处于活动状态且未过期的秘密。 我在AAD中注册了一个应用程序,因此我的本地出货。NET Core控制台应用程序在AAD中具有标识。 然后我在AAD的注册应用程

  • 我试图在我Java的web应用程序中实例化一个对象,该应用程序使用QUUKUS作为其应用程序框架。我过去在已经部署到Wildfly的应用程序上成功地做到了这一点,但是它并没有像预期的那样转换到QUARKUS。我的实例化对象的工厂类如下所示: 但是,当我尝试调用factory方法时,最终出现以下异常: 我的假设是,这与RestEasy版本不匹配或其他依赖关系问题有关。然而,我不知道如何解决这个问题。