"resource" 属性 在我的 keycloak.json 中被忽略

"resource" property is ignored in my keycloak.json

我已经获得了一个 WAR,其中包含我的 Web 服务。 我添加了以下 keycloak.json

{
  "realm": "myRealm",
  "auth-server-url": "*****************",
  "ssl-required": "external",
  "resource": "WS",
  "bearer-only": true,
  "enable-cors": true,
  "principal-attribute" : "preferred_username"
}

我在 keycloak 上添加了 "WS" 客户端,只有 bearer-only true 和另一个客户端来生成我的令牌。

一切正常,war 已安全。 但是我不认为我 "resource" 属性 中给出的名字有任何改变。 如果我写 "resource": "anything" 或 "resource": "onetwothree" ...它仍然有效..

我不明白为什么,我以为我会收到资源 "onetwothree" 不存在之类的错误,否则它仍然有效,我认为有问题... 你知道它可能是什么吗?

谢谢:)

我收到了 Sebastien Blanc 的回复,我与您分享,也许它可能对你们中的一个人有所帮助..

这是因为您客户的 "bearer-only" 性质。仅验证令牌。在某些情况下,它可以使用 'resource' 属性 如果例如使用 "use-resource-role-mappings" (https://github.com/keycloak/keycloak/blob/master/adapters/oidc/adapter-core/src/main/java/org/keycloak/adapters/BearerTokenRequestAuthenticator.java#L99-L103)

所以这是正常行为,我可以为 "resource" 属性设置任何值,因为我没有将 "use-resource-role-mappings" 设置为 true,默认情况下该值为 false。