Skip to content

Conversation

@srikalyan
Copy link

Summary

  • Add -jwtSVIDDefaultAudiencePolicy flag for default audience policy
  • Add -jwtSVIDAudiencePolicy flag for per-audience policy configuration
  • Update entry create, update, and show commands to handle new fields
  • Add entry conversion logic for JwtSvidDefaultAudiencePolicy and JwtSvidAudiencePolicies fields

Policy options

  • default: No JTI claim, caching enabled (current behavior)
  • auditable: JTI claim included, caching enabled
  • unique: JTI claim included, caching disabled (unique tokens)

Part of #6043

Dependencies

NOTE: Only merge after these dependent PRs are merged:

…iffe#6043)

Introduces per-audience JWT-SVID policy configuration to control JTI
(JWT ID) claim inclusion and agent-side caching behavior.

New JWTSVIDAudiencePolicy enum with three modes:
- DEFAULT (0): No JTI, caching enabled (backwards compatible)
- AUDITABLE (1): JTI included, caching enabled
- UNIQUE (2): JTI included, caching disabled

Features:
- Per-entry default policy via jwt_svid_default_audience_policy
- Per-audience overrides via jwt_svid_audience_policies map
- "Most restrictive wins" for multi-audience tokens
- Database schema v24 with entry_audience_policies table
- Agent cache bypass for UNIQUE policy

Note: API SDK and CLI integration will follow in a separate commit
after spire-api-sdk is updated.
This commit adds support for the new JWT-SVID audience policy configuration
in the SPIRE server CLI and entry conversion logic:

CLI changes:
- Add -jwtSVIDDefaultAudiencePolicy flag for default audience policy
- Add -jwtSVIDAudiencePolicy flag for per-audience policy configuration
- Update entry create, update, and show commands to handle new fields
- Add AudiencePolicyFlag custom type for parsing audience:policy pairs

Entry conversion:
- Add JwtSvidDefaultAudiencePolicy and JwtSvidAudiencePolicies to
  EntryToProto and ProtoToEntry conversion functions
- Add audiencePolicyToInternal helper for enum conversion

Policy options: default, auditable, unique
- default: No JTI claim, caching enabled (current behavior)
- auditable: JTI claim included, caching enabled
- unique: JTI claim included, caching disabled (unique tokens)

Part of spiffe#6043

NOTE: Only merge after these dependent PRs are merged:
- spire-api-sdk: spiffe/spire-api-sdk#84
- spire: spiffe#6514
@srikalyan
Copy link
Author

Will open it after my other 2 PRs are merged

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant