You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- The policy store, which can be a database or configuration files (e.g., authz.policy) will be accessed and managed through the Open edX Layer. No direct access to the policy store should be made by services.
72
+
- The policy store, which can be a database or configuration files (e.g., ``authz.policy``) will be accessed and managed through the Open edX Layer. No direct access to the policy store should be made by services.
74
73
- The Open edX Layer will handle loading policies from the policy store into the Authorization Engine and ensure that policies are kept up to date.
75
74
- The Open edX Layer will also manage the separation between static policies (shipped with services) and dynamic policies (managed via the policy data store) to ensure clarity and maintainability.
76
75
@@ -96,7 +95,7 @@ Store All Policies in the Policy Store
96
95
--------------------------------------
97
96
- All policies (i.e., any type of rule) should be stored in the policy store to ensure a single source of truth for authorization.
98
97
- Use the policy store to manage RBAC mappings, such as user-role and role-permission assignments, using Casbin's grouping policies (``g, g2``).
99
-
- Use Casbin's adapter APIs to load policies from the policy store into the Authorization Engine at startup and whenever policies are updated.
98
+
- Use Casbin's adapter APIs based on Django APIs to load policies from the policy store into the Authorization Engine at startup and whenever policies are updated.
100
99
101
100
Maintain Consistent Model and Policy Definitions Across Services
- External clients (e.g., MFEs, IDAs, or any service not co-located with the policy store) must use the REST API provided by the Open edX authorization layer to request authorization decisions.
112
111
113
-
Use a Stable and Versioned Public API
114
-
-------------------------------------
112
+
Use a Stable and Versioned Public API for Other Clients
- The Open edX Layer will provide a stable and versioned Public API for services to interact with the authorization system. This API will be well-documented and include clear contracts for inputs, outputs, and error handling.
116
115
- In-process clients (e.g., LMS, CMS, or any service co-located with the policy store) may use this Public API (``api.py``) directly to interact with the Open edX Layer without going through the REST API, but they must still adhere to the same contracts and versioning.
117
116
- Clients must provide all necessary context for authorization decisions, including subject, action, object, and any relevant contextual information (e.g., organization, course) and the authorization layer will make the decision based on the policies in the policy store.
0 commit comments