Credential Policies

Credential policies let you define the operating envelope for an identity or key before a token is issued. Instead of making authorization decisions only downstream, you can prevent risky credentials from being minted in the first place.

What A Policy Controls

A credential policy can constrain:

  • maximum token TTL

  • allowed grant types

  • allowed scopes

  • required trust level

  • required attestation level

  • maximum delegation depth

That means policies are not just metadata. They participate directly in issuance decisions.

Why Policies Matter

Without issuance policy, an agent might:

  • request a longer TTL than you want

  • use a grant type you did not intend

  • ask for broader scopes than its runtime role should have

  • delegate deeper into a chain than your system can reason about safely

Credential policies give you a first control point before the token leaves ZeroID.

Example Policy

Python:

This policy means:

  • tokens expire in 15 minutes or less

  • only two issuance flows are allowed

  • scopes are restricted to a known set

  • only first-party identities qualify

  • a single delegation hop is permitted

Choosing Good Defaults

For developer-facing open source adoption, these defaults are usually sane:

  • short TTLs for interactive or tool-facing agents

  • explicit allowed grant types

  • explicit allowed scopes

  • low max delegation depth until you have a reason to increase it

For production:

  • prefer the smallest useful TTL

  • do not allow all grant types by default

  • gate sensitive identities behind trust-level or attestation requirements

Policy Design Patterns

Pattern 1: Local Development Policy

Use when developer friction matters more than strict enforcement:

  • longer TTL

  • fewer trust checks

  • narrow but practical scopes

Pattern 2: Tool-Agent Policy

Use for narrow execution roles:

  • very small scope set

  • low TTL

  • no further delegation

Pattern 3: Orchestrator Policy

Use for agents that coordinate sub-agents:

  • moderate TTL

  • allow token_exchange

  • set explicit max_delegation_depth

Pattern 4: Sensitive Production Policy

Use where agents touch regulated or high-risk systems:

  • short TTL

  • required trust level

  • required attestation

  • minimal scope set

Example REST Call

How Enforcement Works

At issuance time, ZeroID checks the request against the assigned policy. If the request violates the policy, issuance is denied before a credential is created.

That makes policies complementary to downstream authorization:

  • policy decides whether a token may be minted

  • downstream authorization decides whether the token may perform a specific action

You usually want both.

Common Mistakes

Avoid:

  • allowing every grant type for convenience

  • letting orchestrators delegate indefinitely

  • using the same policy for orchestrators, tool agents, and background services

  • relying on downstream checks alone while leaving issuance wide open

What's Next?

Last updated