Apache · Configuration and operations

How do Require directives and authorization sections work?

Mediumauthorizationrequireaccess controlUpdated Oct 2026
Quiz this track

Short answer

Require directives express authorization rules such as valid-user, user, group or ip. RequireAll, RequireAny and RequireNone combine them, and the default is to deny unless a rule grants access.

Apache 2.4 replaced the old Order, Allow and Deny model with Require. A Require directive can check identity, group membership, network origin or arbitrary expressions. Multiple Require directives in the same section are implicitly combined with RequireAny, so grouping containers are needed when the logic must be an AND.

apache
<Location "/reports">
  AuthType Basic
  AuthName "Reports"
  AuthUserFile /etc/apache2/.htpasswd
  <RequireAll>
    Require valid-user
    Require ip 10.0.0.0/8
  </RequireAll>
</Location>

<Location "/public">
  <RequireAny>
    Require ip 192.0.2.0/24
    Require user auditor
  </RequireAny>
</Location>

Combining rules

  • RequireAll: every contained rule must pass
  • RequireAny: at least one contained rule must pass
  • RequireNone: none of the contained rules may pass
  • Require valid-user: any successfully authenticated user
  • Require group: membership in a group resolved by the authz provider
  • Require expr: complex boolean expressions over request variables

Test both the allow and deny paths. A rule that returns 401 means authentication is missing; 403 means authentication succeeded but authorization failed. That distinction is useful when debugging and when deciding whether to prompt for credentials.

An empty or misspelled Require section can silently deny traffic after a reload. Validate with configtest and exercise the endpoint from an allowed and a disallowed client.

Follow-ups you should expect

Interviewers use these to check whether the first answer was understanding or memorisation.

  1. 1What is the difference between 401 and 403?
  2. 2How do RequireAll and RequireAny differ?
  3. 3Why is RequireNone useful?
  4. 4How do you combine IP and user checks?

Say it in the interview

Require is Apache 2.4's authorization model. I can require a user, group, IP range or expression, and combine them with RequireAll, RequireAny or RequireNone. I make the logic explicit rather than relying on implicit merging, and I test both allowed and denied clients. A 401 means missing authentication while 403 means the identity is known but not permitted.

Use this as a model, not a script. Saying it in your own words is what makes it survive follow-up pressure.

Related questions

Reading is step one

Now say it out loud.

Understanding an answer and delivering it under pressure are different skills. Rehearse this topic in a live Apache mock interview and get scored feedback on depth, clarity and confidence.