List of keys used to verify JWT signatures. For asymmetric algorithms (e.g. RS256), use public keys. For symmetric algorithms (e.g. HS256), use shared secrets. Each key is tried in order until one succeeds. Useful for accepting tokens from multiple issuers.
jwks_file
Optional[str]
None
Path to a static JWKS (JSON Web Key Set) file containing public keys. Keys are matched by kid (key ID) from the JWT header. Alternative to verification_keys for RSA key management.
algorithm
Optional[str]
None ("RS256" when unset)
JWT algorithm for token verification. Common options: RS256 (asymmetric), HS256 (symmetric).
verify_audience
Optional[bool]
None (treated as False)
Whether to verify the JWT’s aud claim matches the expected audience.
audience
Optional[str]
AgentOS id
Expected audience claim. When verify_audience=True, the token’s aud must match this value. Defaults to the AgentOS id.
admin_scope
Optional[str]
None ("agent_os:admin" when unset)
The scope that grants full admin access. Holders bypass user isolation and can access all data.
user_isolation
bool
False
Opt-in per-user isolation for user-owned data and resources throughout AgentOS. When True, non-admin callers can only access data and resources associated with their JWT sub claim.
When user_isolation=True, every non-admin JWT must include a non-empty string sub claim. Configure the token issuer or an authentication layer to reject tokens without this claim before they reach AgentOS. A token without a usable sub can pass JWT verification, but AgentOS cannot apply per-user filtering or ownership enforcement to that caller.
# RS256 with a public keyauthorization_config = AuthorizationConfig( verification_keys=["""-----BEGIN PUBLIC KEY-----MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...-----END PUBLIC KEY-----"""], algorithm="RS256",)