Post

Zero Trust Architecture Explained

Introduction

Zero Trust is a security model that assumes breach and continuously verifies every access request. Instead of relying on a trusted internal network, it enforces explicit identity, device posture, and context-based access for every interaction.

Core Principles

Zero Trust relies on a set of consistent design principles.

  • Never trust, always verify: Every request is authenticated and authorized.
  • Least privilege access: Users and workloads only receive the minimum required rights.
  • Assume breach: Security controls are built for containment and rapid detection.
  • Continuous evaluation: Policies adapt to changing risk signals.

Control Planes

A mature implementation spans multiple control planes that feed policy decisions.

  • Identity plane: Strong authentication, MFA, and workload identity.
  • Device plane: Device health, posture, and attestation.
  • Network plane: Micro-segmentation and traffic filtering.
  • Data plane: Encryption, data classification, and usage monitoring.

Policy Decision vs Policy Enforcement

Zero Trust separates decision points from enforcement points.

  • Policy Decision Point (PDP) evaluates identity, device, and context.
  • Policy Enforcement Point (PEP) applies the decision at the service edge.

This separation enables centralized governance without creating single points of failure.

Java Spring Boot Example: Enforcing Policies with JWT Scopes

The following Spring Security configuration enforces authenticated requests and maps JWT scopes to authorities.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
public class ZeroTrustSecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            .authorizeHttpRequests(authz -> authz
                .requestMatchers("/admin/**").hasAuthority("SCOPE_admin")
                .requestMatchers("/payments/**").hasAuthority("SCOPE_payments")
                .anyRequest().authenticated())
            .oauth2ResourceServer(oauth2 -> oauth2.jwt());

        return http.build();
    }
}

Telemetry and Continuous Verification

Zero Trust relies on telemetry to continuously adjust risk decisions.

  • Correlate authentication events with device posture changes.
  • Detect impossible travel and anomalous usage patterns.
  • Feed SIEM systems with normalized access logs.

Migration Strategy

Adopting Zero Trust is incremental.

  • Inventory all services and define trust boundaries.
  • Introduce strong identity for humans and workloads.
  • Replace network-based allowlists with service identity.
  • Continuously refine policies based on incident learnings.

Conclusion

Zero Trust is not a single product. It is an architectural discipline that aligns identity, device posture, and policy enforcement across every request, whether it originates on-premises or in the cloud.

This post is licensed under CC BY 4.0 by the author.