Permit logo
Home/Blog/

Protecting Democracy Through Fine-Grained Authorization

See how Maricopa County used Fine-Grained Authorization (FGA) to secure its voting system. A case study for developers protecting data in large-scale operations
Protecting Democracy Through Fine-Grained Authorization
Daniel Bass

Daniel Bass

|
  • Share:

In recent years, the integrity of the election process has come under intense scrutiny, making it more important than ever to ensure that voting systems are secure, transparent, and reliable. Ensuring that only authorized personnel have access to sensitive voter data is critical in maintaining public trust. A breach could not only compromise the election but also erode confidence in the entire democratic process.

From a software development perspective, this responsibility requires a refined approach to system access and permissions. Developers are on the front lines of this defense, tasked with creating and maintaining systems that must balance functionality with security.

Maricopa County, one of the largest voting jurisdictions in the United States, encountered this challenge firsthand. Their solution, which manages vast amounts of voter data while maintaining strict security measures, offers a compelling case study on the importance of Fine-Grained Authorization (FGA).

Watch the full case study video here:

The Challenge: Scaling Security for a Massive Voting Jurisdiction

As the fourth-largest county in the U.S., Maricopa County’s Recorder's Office oversees a voting system that serves millions. Dealing with such a scale is no joke - especially given the delicate nature of the issue. This presented two key challenges:

First, there is a need for precise control over who can access specific data and perform specific actions within the system. Traditional role-based access control (RBAC) wasn’t sufficient for the level of granularity required, so they had to employ more precise control over who could access specific data and perform particular actions within their systems.

Second, the challenge of managing permissions for a large and fluctuating workforce, especially during election periods. Temporary staff needed access to specific parts of the system without compromising sensitive voter information. Manually managing these permissions by writing policy code was a complex and time-consuming process that placed a significant burden on the IT department.

As these challenges increased over time, the county’s voter registration system, known as Arrow, must handle an unprecedented level of complexity.

The Solution: FGA and No-Code UIs

To address the challenge of complex authorization policies, namely those that required considering a large number of attributes to enforce granular authorization decisions, Maricopa County turned to implementing Fine-Grained Authorization (FGA) as a solution.

FGA goes beyond simple role-based access control by considering a broader set of factors when making authorization decisions. Instead of relying solely on user identity or role, FGA can make
make nuanced authorization decisions based on multiple factors, such as attributes with Attribute Based Access Control (ABAC) and relationships with Relationship-Based Access Control (ReBAC), allowing precise control over who can access what, down to the level of individual tasks and actions within a system.

By implementing FGA, the county could ensure that each user, whether a full-time employee or a temporary staff member, had access only to the tools and information they needed for their role—nothing more, nothing less.

To facilitate this implementation, Maricopa County utilized the capabilities of Permit.io. This allowed their developer team to integrate fine-grained authorization into their systems without completely refactoring their own solution and building a new one in-house. With Permit.io, permissions could also be set not just at a user level but at the API interaction level, allowing for even more detailed and secure control over who could access what within the system.

Permit also allowed for automation in the permission management process. Instead of having IT staff manually assign permissions to each new user, they were able to create predefined permission sets through Permit’s no-code UI, which could be adjusted dynamically as an employee's tasks changed. Temporary workers brought in for election periods could, for example, be given access only to the specific functions they needed, and those permissions could be automatically revoked when their role ended.

The Impact: Security and Efficiency

The transition to Fine-Grained Authorization and the adoption of no-code UI for managing authorization had critical impacts on Maricopa County’s operations. First and foremost, it helped ensure no employee had more access than necessary, aligning with the principle of least privilege and preventing unauthorized access, whether intentional or accidental.

Delegating permissions management to department managers, rather than centralizing it in IT, made the process faster and more responsive. Managers could directly control access, reducing bottlenecks and freeing IT resources for more critical tasks. IT, in turn, could focus on monitoring the processes happening within the system with automatically generated audit logs instead of manually writing policy codes and assigning roles and permissions.

This shift allowed the voter registration department to take greater ownership of its security processes in its day-to-day operations. The ability to adjust permissions without the need for constant IT intervention meant that the office could remain agile and responsive, even during the intense periods leading up to elections.

A Broader Lesson for Developers

Maricopa County's experience is a great example for developers. Protecting data—whether it involves consumer information or the democratic process itself—is a technical responsibility.

Fine-grained authorization is a tool that developers should consider, especially in high-stakes systems. FGA enhances security by ensuring that access is precisely controlled, while implementing it with a no-code authorization UI can help streamline operations by reducing the administrative burden on IT departments.

In every system where integrity can have far-reaching consequences, developers' responsibility extends beyond just building functional software. They must anticipate vulnerabilities, implement efficient security measures, and adapt to emerging threats. Maricopa County’s experience shows how a strategic shift to FGA can meet these responsibilities.

Maricopa County's challenges are not unique; they are indicative of the broader issues that arise in managing large, complex systems. By embracing Fine-Grained Authorization, the county not only solved its immediate access control challenges but also set a standard for how other development teams might approach similar issues.

If you want to learn more about the best ways to implement FGA, make sure to join our Slack community, where there are hundreds of devs building and implementing authorization.

Written by

Daniel Bass

Daniel Bass

Application authorization enthusiast with years of experience as a customer engineer, technical writing, and open-source community advocacy. Comunity Manager, Dev. Convention Extrovert and Meme Enthusiast.

Test in minutes, go to prod in days.

Get Started Now

Join our Community

2026 Members

Get support from our experts, Learn from fellow devs

Join Permit's Slack