atlassian-jwt-auth
Python implementation of the Atlassian Service to Service Authentication specification.
What it is and what it does
atlassian-jwt-auth implements the Atlassian Service to Service Authentication specification, allowing Python applications to generate and verify JWT tokens for authenticated communication with Atlassian services. It handles the full lifecycle: creating signers from private keys (in-memory, file-based, or data URIs), generating short-lived tokens with configurable lifetimes, and verifying tokens using public key retrieval from HTTPS endpoints.
The package integrates directly with requests and aiohttp, so you can drop a JWTAuth handler into standard HTTP client calls and let the library manage token generation and refresh automatically. It supports token reuse within validity periods to reduce overhead, and provides both synchronous and async verification paths.
Use it for:
- Authenticate requests to Atlassian Cloud APIs (Jira, Confluence, Bitbucket) using JWT bearer tokens.
- Build microservices that communicate with each other using the S2S specification without shared secrets.
- Verify incoming JWT tokens from other services to confirm their identity and claims.
- Implement token caching and reuse to reduce cryptographic overhead in high-throughput scenarios.
- Manage multiple private keys from a file repository and automatically select the latest active key.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Generates and verifies JWT tokens for Atlassian Service to Service Authentication, with built-in support for requests and aiohttp HTTP clients.
Yes. The package is actively maintained, has no known vulnerabilities, low install friction, and a permissive license. Install it if you need to authenticate with Atlassian services or implement the S2S spec. The requests integration is seamless; if you use aiohttp, you'll need to install it separately but the library provides drop-in replacements.
Install
atlassian-jwt-auth on PyPI
pip
pip install atlassian-jwt-authuv
uv add atlassian-jwt-authpoetry
poetry add atlassian-jwt-authInstalling atlassian-jwt-auth
Before you install
Low install friction; pure Python wheel with three lightweight runtime dependencies (PyJWT, requests, CacheControl). Active maintenance with a recent release 85 days ago.
License in practice
MIT license permits commercial and private use with minimal restrictions; suitable for most projects.
Quickstart
pip install atlassian-jwt-auth
import atlassian_jwt_auth
from atlassian_jwt_auth.contrib.requests import JWTAuth
import requests
signer = atlassian_jwt_auth.create_signer('issuer', 'issuer/key', private_key_pem)
response = requests.get('https://your-url', auth=JWTAuth(signer, 'audience'))
Requires a private key in PEM format; for aiohttp support, aiohttp must be installed separately.
Verify before relying
- Whether the package supports key rotation or automatic key discovery beyond file-based repositories.
- Performance characteristics when reusing tokens with reuse_jwts=True under high concurrency.
- Compatibility with non-Atlassian services that implement the S2S spec.
Package facts
| License | MIT (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 3 — PyJWT, requests, CacheControl |
| Maintenance | actively maintained — 85 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 499,236/month — #6,325 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: atlassian_jwt_auth-22.0.1-py2.py3-none-any.whl
Tags
More Cryptography packages
Certifi provides Mozilla's curated collection…
copyleft · top 100 on PyPI
cryptographycryptography provides cryptographic recipes and…
permissive · top 100 on PyPI
rsaPure-Python RSA encryption, decryption,…
permissive · top 1,000 on PyPI
pyOpenSSLpyOpenSSL wraps OpenSSL's SSL/TLS functionality…
permissive · top 1,000 on PyPI
azure-identityProvides Microsoft Entra ID token-based…
unclear · top 1,000 on PyPI
PyNaClPyNaCl provides Python bindings to libsodium…
permissive · top 1,000 on PyPI
cognitojwtDecodes and verifies Amazon Cognito JWT tokens…
permissive · top 15,000 on PyPI
vonage-network-authGenerates authenticated JWTs for Vonage Network…
permissive · top 15,000 on PyPI
djangorestframework-jwtAdds JSON Web Token (JWT) authentication…
permissive · top 15,000 on PyPI
scitokensImplements the SciTokens JSON Web Token (JWT)…
permissive · top 15,000 on PyPI
okta-jwt-verifierVerifies JWT tokens issued by Okta, checking…
permissive · top 15,000 on PyPI
vonage-http-clientProvides a synchronous HTTP client for…
permissive · top 15,000 on PyPI
axioms-fastapiAdds OAuth2/OIDC JWT token validation and…
permissive · top 15,000 on PyPI
pyjwt-key-fetcherAsync library that automatically fetches and…
permissive · top 15,000 on PyPI
drf-jwtAdds JSON Web Token (JWT) authentication to…
permissive · top 15,000 on PyPI
atlassian-python-apiProvides Python bindings to REST APIs for…
permissive · top 5,000 on PyPI