我想通过符合UMA的端点管理Keycloak中资源的策略。因此,我创建了具有范围profile
的资源view_users, invite_users, edit_users
。
然后我继续使用策略API创建策略。
## POST
{
"name": "can_view_users",
"logic": "NEGATIVE",
"decisionStrategy": "AFFIRMATIVE",
"clients": ["uma_postman"],
"scopes": ["view_users"],
"roles": ["uma_postman/lg_admin", "uma_postman/sales", "uma_postman/customer_admin"],
"users": ["37ae8b1e-f1b0-4e72-b6ac-5ad1e49f89d7", "3627cb69-23ed-474d-abec-8f31b230b730"]
}
我可以查询此(GET http://localhost:8080/auth/realms/ng_whs/authz/protection/uma-policy
),并且似乎该策略已正确创建。
现在,我的理解是,由于决策策略是AFFIRMATIVE,而逻辑是负,对于任何上述角色-lg_admin, sales, customer_admin
或具有上述ID的用户,不应允许我访问该资源。
但是,当我以具有上述角色或ID的用户身份进行查询时,我仍然不要被拒绝访问。
现在,当我将同一策略的逻辑更改为POSITIVE时,响应仍然相同。我在这里想念什么吗?任何帮助将非常感激。 :)
我正在按照此处的说明进行操作-keycloak.org/docs/latest/authorization_services/#_service_authorization_uma_policy_api