if (authzContext.hasResourcePermission("Project Resource")) {
// user can access the Project Resource
}
if (authzContext.hasResourcePermission("Admin Resource")) {
// user can access administration resources
}
if (authzContext.hasScopePermission("urn:project.com:project:create")) {
// user can create new projects
}
if (authzContext.hasResourcePermission("Project Resource")) {
// user can access the Project Resource
}
if (authzContext.hasResourcePermission("Admin Resource")) {
// user can access administration resources
}
if (authzContext.hasScopePermission("urn:project.com:project:create")) {
// user can create new projects
}
Copy to ClipboardCopied!Toggle word wrapToggle overflow
if (User.hasRole('user')) {
// user can access the Project Resource
}
if (User.hasRole('admin')) {
// user can access administration resources
}
if (User.hasRole('project-manager')) {
// user can create new projects
}
if (User.hasRole('user')) {
// user can access the Project Resource
}
if (User.hasRole('admin')) {
// user can access administration resources
}
if (User.hasRole('project-manager')) {
// user can create new projects
}
Copy to ClipboardCopied!Toggle word wrapToggle overflow
虽然这两个示例都满足了同样的要求,但它们以不同的方式实现。在 RBAC 中,角色仅 隐式 定义其资源的访问权限。通过 Red Hat build of Keycloak,您可以获得创建更易于管理的代码的功能,这些代码直接侧重于资源,无论您使用的是 RBAC、属性的访问控制(ABAC)还是任何其他 BAC 变体。您有给定资源或范围的权限,或者您没有该权限。