Unnecessary Privileges
Divide the software into anonymous, normal, privileged, and administrative areas.
Identify which of these areas require a proven user identity, and use a centralized
authentication capability.