为了模拟authz流,我创建了以下内容:
客户: 课程管理
用户: -Teacher@gmail.com -student@gmail.com
角色: - 老师 -学生
资源: -课程
教师具有查看和删除课程的权限,而学生仅具有读取权限。这是通过在课程管理客户端下创建查看和删除范围来完成的。然后,我创建了一个基于范围的查看和删除权限。
当我进入授权中的“评估”选项卡,并将角色设置为“学生”,并将资源设置为“课程管理”时,它显示允许读取,并且删除被拒绝。
如何通过HTTP端点获得此决策支持。例如,如果我收到带有JWT令牌的http://localhost/course/1
的GET调用,如何将其重定向到密钥斗来进行授权?
以下是网络评估电话:
URL: https://keycloak.com/auth/admin/realms/test/clients/ea64b9d5-e924-4cbd-bd0a-31b34a908d8a/authz/resource-server/policy/evaluate
POST data = {
"resources": [
{
"name": "Course Resource",
"owner": {
"id": "ea64b9d5-e924-4cbd-bd0a-31b34a908d8a",
"name": "Course-management"
},
"ownerManagedAccess": false,
"displayName": "course",
"_id": "59a4e1ab-dd61-4ecb-823b-74f0930e83c5",
"uris": [
"/courses/*"
],
"scopes": [
"view",
"delete"
]
}
],
"context": {
"attributes": {}
},
"roleIds": [
"teacher"
],
"userId": "27fc3b7f-3c4e-4ad4-9008-979730255129",
"entitlements": false
}