Supported Models
- ACL (Access Control List)
- ACL with superuser
- ACL without users: This is especially useful for systems that don't have authentication or user logins.
- ACL without resources: In some scenarios, the target is a type of resource instead of an individual resource. Permissions like "write-article" and "read-log" can be used. This doesn't control access to a specific article or log.
- RBAC (Role-Based Access Control)
- RBAC with resource roles: Both users and resources can have roles (or groups) at the same time.
- RBAC with domains/tenants: Users can have different sets of roles for different domains/tenants.
- ABAC (Attribute-Based Access Control): Syntax sugar like "resource.Owner" can be used to get the attribute for a resource.
- RESTful: Supports paths like "/res/*", "/res/:id", and HTTP methods like "GET", "POST", "PUT", "DELETE".
- Deny-override: Both allow and deny authorizations are supported, where deny overrides allow.
- Priority: The policy rules can be prioritized, similar to firewall rules.
Examples
| Model | Model file | Policy file |
|---|---|---|
| ACL | basic_model.conf | basic_policy.csv |
| ACL with superuser | basic_with_root_model.conf | basic_policy.csv |
| ACL without users | basic_without_users_model.conf | basic_without_users_policy.csv |
| ACL without resources | basic_without_resources_model.conf | basic_without_resources_policy.csv |
| RBAC | rbac_model.conf | rbac_policy.csv |
| RBAC with resource roles | rbac_with_resource_roles_model.conf | rbac_with_resource_roles_policy.csv |
| RBAC with domains/tenants | rbac_with_domains_model.conf | rbac_with_domains_policy.csv |
| ABAC | abac_model.conf | N/A |
| RESTful | keymatch_model.conf | keymatch_policy.csv |
| Deny-override | rbac_with_not_deny_model.conf | rbac_with_deny_policy.csv |
| Allow-and-deny | rbac_with_deny_model.conf | rbac_with_deny_policy.csv |
| Priority | priority_model.conf | priority_policy.csv |
| Explicit Priority | priority_model_explicit | priority_policy_explicit.csv |
| Subject-Priority | subject_priority_model.conf | subject_priority_policyl.csv |