Role Based Access Control
Service Layer authorization model is based on role based access control. Roles and Policies will be defined for each service and that will determine the access privilege a user or a group of users would have in the system. RBAC is made of four elements:
- Roles - Bring Users, Groups, Policies together. Roles define what users can do with a resource.
- Users - Principal that is requesting access to a resource.
- Policies - List of rules that defines access to a resource.
- Resources - Things you want to grant access to.
Role Definition for Service Layer
The roles defined for Service Layer will be per service rather than per resource. Roles by service means that each service will define roles required to access that particular service. For instance, a Policy Service will define roles that will be used by Segments and Roles with-in that policy. The roles are not defined by resources or entities. Since segments and policy roles can not be accessed outside the context of a policy.
Possible Roles and their privileges
Role Name |
Role Description |
Role Privilege |
Role Association |
---|---|---|---|
SL_ADMIN | Service Layer Administrator | Permit All | All Services |
POLICY_READ | Policy Read Access | GET | Policy |
POLICY_CREATE | Policy Write Access For Create | POST | Policy |
POLICY_UPDATE | Policy Write Access For Update | PUT | Policy |
POLICY_DELETE | Policy Delete Access | DELETE | Policy |
CLIENT_READ | Client Read Access | GET | Client |
CLIENT_CREATE | Client Write Access For Create | POST | Client |
CLIENT_UPDATE | Client Write Access For Update | PUT | Client |
CLIENT_DELETE | Client Delete Access | DELETE | Client |
CASE_READ | Case Read Access | GET | Case |
CASE_CREATE | Case Write Access For Create | POST | Case |
CASE_UPDATE | Case Write Access For Update | PUT | Case |
CASE_DELETE | Case Delete Access | DELETE | Case |
GROUPCUSTOMER_READ | Customer Read Access | GET | Customer |
GROUPCUSTOMER_CREATE |
Customer Write Access For Create | POST | Customer |
GROUPCUSTOMER_UPDATE | Customer Write Access For Update | PUT | Customer |
GROUPCUSTOMER_DELETE | Customer Delete Access | DELETE | Customer |
CLIENTRELATIONSHIP_READ | Client Relationship | GET | Client Relationship |
CLIENTRELATIONSHIP_CREATE |
Client Relationship Write Access For Create |
POST | Client Relationship |
CLIENTRELATIONSHIP_UPDATE |
Client Relationship Write Access For Update |
PUT | Client Relationship |
CLIENTRELATIONSHIP_DELETE |
Client Relationship Delete Access |
DELETE | Client Relationship |
QUERY_READ | Query Read Access | GET | Query |
QUERY_CREATE, QUERY_UPDATE | Query Write Access | POST | Query |
QUERY_DELETE | Query Delete Access | DELETE | Query |
COMPANY_READ | Company Read Access | GET | Company |
PRODUCT_READ | Product Read Access | GET | Product |
PLAN_READ | Plan Read Access | GET | Plan |
SEGMENT_READ | Segment Read Access | GET | Segment |
SEGMENT_CREATE | Segment Write Access For Create | POST | Segment |
SEGMENT_UPDATE | Segment Write Access For Update | PUT | Segment |
SEGMENT_DELETE | Segment Delete Access | DELETE | Segment |
ROLE_READ | Role Read Access | GET | Role |
ROLE_CREATE | Role Write Access For Create | POST | Role |
ROLE_UPDATE | Role Write Access For Update | PUT | Role |
ROLE_DELETE | Role Delete Access | DELETE | Role |
SEGMENTROLE_READ | Segment Role Read Access | GET | Segment Role |
SEGMENTROLE_CREATE | Segment Role Write Access For Create | POST | Segment Role |
SEGMENTROLE_UPDATE | Segment Role Write Access For Update | PUT | SegmentRole |
SEGMENTROLE_DELETE | Segment Role Delete Access | DELETE | Segment Role |
REQUIREMENT_READ | Requirement Read Access | GET | Requirement |
REQUIREMENT_CREATE | Requirement Write Access For Create | POST | Requirement |
REQUIREMENT_UPDATE | Requirement Write Access For Update | PUT | Requirement |
REQUIREMENT_DELETE | Requirement Delete Access | DELETE | Requirement |
IMPAIRMENT_READ | Impairment Read Access | GET | Impairment |
ADDRESS_READ | Address Read Access | GET | Address |
ADDRESS_CREATE | Address Write Access For Create | POST | Address |
ADDRESS_UPDATE | Address Write Access For Update | PUT | Address |
ADDRESS_DELETE | Address Delete Access | DELETE | Address |
PHONE_READ | Phone Read Access | GET | Phone |
PHONE_CREATE | Phone Write Access For Create | POST | Phone |
PHONE_UPDATE | Phone Write Access For Update | PUT | Phone |
PHONE_DELETE | Phone Delete Access | DELETE | Phone |