Safeguard
Security Guides•

Is a private network enough to trust service-to-service calls?

No. NIST SP 800-207 says no implicit trust based on network location. Each internal call should carry a verified identity and an audience-restricted token.

Safeguard Security Team
4 min read

No. Being inside a private network proves little about who is calling. NIST SP 800-207 describes zero trust as assuming no implicit trust based solely on physical or network location. Each service call should carry a verified identity, and each receiving service should check it and the permissions behind it.

The perimeter habit

Many internal APIs were built on one assumption: if a request arrives from inside the network, it is friendly. So they skip authentication, or accept a header such as a user ID that "the gateway sets". This works until one workload is compromised, a misconfigured route exposes a service, or a developer machine joins the network.

NIST's zero trust architecture abstract describes the shift: defences move from static, network based perimeters to users, assets and resources. Zero trust assumes no implicit trust is granted to assets or accounts based only on location, and focuses on protecting resources rather than network segments.

What to require on every internal call

ControlQuestion it answers
Caller identityWhich service is this?
AuthenticationCan it prove that, with a credential only it holds?
AudienceWas this credential meant for me?
AuthorizationIs this caller allowed to do this action on this resource?
Transport protectionCan anyone read or alter the call in transit?
LoggingCan we reconstruct who called what?

Ways to give services an identity

You have several options, and many teams combine them:

  1. OAuth client credentials. Each service authenticates to an authorization server and receives a short lived access token. See client credentials for service to service auth.
  2. Mutual TLS. Both sides present certificates. See mTLS or service tokens.
  3. Workload identity. The platform issues short lived identities to workloads, such as SPIFFE style identities. See SPIFFE IDs and SVIDs.
  4. Platform tokens. Orchestrator issued service account tokens that the receiver validates.

Whichever you choose, avoid long lived shared secrets copied between services.

Audience matters internally too

RFC 9700 says access tokens should be audience restricted to a specific resource server, or a small set, and that every resource server must verify, on every request, whether the token was meant for it. If not, it must refuse the request. This stops a token stolen from one low value service being replayed against a high value one.

The same RFC says token privileges should be limited to the minimum needed, which also reduces the impact of leakage.

Do not trust forwarded headers

A header like X-User-Id is only as trustworthy as the weakest hop that can set it. If you must pass user context between services, pass a signed token and verify it, or use token exchange so the downstream service sees a token issued for it. Strip identity headers at the edge, and never accept them from outside.

A migration path

  1. List internal APIs that accept unauthenticated calls. Start with those handling sensitive data.
  2. Add authentication in report only mode, logging calls without valid credentials.
  3. Fix the callers that fail.
  4. Turn enforcement on, service by service.
  5. Add audience and scope checks.
  6. Remove the network allow rules that existed only as a substitute for authentication.

Network segmentation still helps. It reduces exposure and noise. It is a layer, not the identity system.

Quick check

Does zero trust mean no firewalls?

No. NIST describes shifting focus from network perimeters to resources. Network controls remain a useful layer.

Is a service mesh required?

No. A mesh is one way to deliver mutual TLS and identity. You can also get there with tokens or platform workload identity.

Safeguard's policies, gates and guardrails can enforce checks in pull requests, and its agent identity capability applies the same idea to AI agents and tools. A free scan shows your dependency picture.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.