我已经获得了一个包含我的Web服务的WAR。 我添加了以下keycloak.json
{
"realm": "myRealm",
"auth-server-url": "*****************",
"ssl-required": "external",
"resource": "WS",
"bearer-only": true,
"enable-cors": true,
"principal-attribute" : "preferred_username"
}
我已经在keycloak上添加了仅限bearer的“WS”客户端以及另一个生成我的令牌的客户端。
一切正常,战争是安全的。 但我不认为我的“资源”属性中给出的名称会改变任何内容。 如果我写“资源”:“任何东西”或“资源”:“onetwothree”......它仍然可以工作..
我不明白为什么,我以为我会收到一个错误,比如资源“onetwothree”不存在,否则它仍然有效,我认为有问题...... 你知道它会是什么吗?
谢谢:)
答案 0 :(得分:1)
我收到Sebastien Blanc的回复,我与你分享,也许这对你们中的一个人有所帮助..
这是因为" bearer-only"你客户的本性。仅验证令牌。在某些情况下,它可以使用'资源'例如,属性" 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)
这是一种正常行为,我可以为"资源"设置任何值。属性,因为我没有设置" use-resource-role-mappings"为true,默认值为false。