ACL - sgtbelly/class-1 GitHub Wiki
- Inventory your systems
Figure out what resources you have for which you need to control access, if you don't already have them listed. Examples would include an email system, customer database, contact management system, major folders on a file server, etc.
- Analyze your workforce, and create roles
You need to group your workforce members into roles with common access needs. Avoid the temptation to have too many roles defined. Keep them as simple and stratified as possible.
For example, you might have a basic user role, which includes the access any employee would need, such as email and the Intranet site. Another role might be a customer service rep, that would have read/write access to the customer database, and a customer database administrator, that would have full control of the customer database.
- Assign people to roles
Now that you have a list of roles and their access rights, figure out which role(s) each employee belongs in, and set their access accordingly.
- Never make one-off changes
Resist any temptation to make a one-off change for an employee with unusual needs. If you begin doing this, your RBAC system will quickly begin to unravel. Change the roles as required, or add new ones when really necessary.
- Audit
Periodically review your roles, the employees assigned to them, and the access permitted for each. If you discover, for example, that a role has unnecessary access to a particular system, change the role and adjust the access level for all employees in that role.
There are tools that can help with setting up RBAC. Many systems, such as Microsoft Active Directory, have built in roles that you can use as a starting point, which you can extend to fit your unique situation. You can also use an identity management system, like Okta, to automate the assignment of privileges based on role.