Introducing jwt-bearer-token-vendor v1.0.0 - Secure OAuth 2.0 Authentication for GitHub Actions
Bridging GitHub OIDC and External APIs
We’re excited to announce the launch of jwt-bearer-token-vendor v1.0.0, a new GitHub Action that simplifies secure authentication between GitHub Actions workflows and external OAuth 2.0 APIs. Released on September 16, 2024, this action eliminates the need to store long-lived credentials in your CI/CD pipelines by leveraging GitHub’s native OIDC (OpenID Connect) support.
What’s New
jwt-bearer-token-vendor v1.0.0 introduces a fresh, purpose-built tool for developers working with external APIs in their GitHub Actions workflows. This initial release provides:
Seamless Token Exchange
The action handles the complete OAuth 2.0 JWT Bearer grant flow automatically:
- Retrieves GitHub’s OIDC token (a short-lived JWT assertion)
- Exchanges it for an access token from your external API
- Returns the token along with metadata (token type and expiration)
Simple Configuration
Five intuitive inputs make setup straightforward:
github-audience: The intended audience for GitHub’s OIDC tokenrequest-token-url: Your external API’s token endpoint URLrequest-client-id: Your client identifierrequest-audience(optional): Audience parameter for the token requestrequest-scope(optional): Scope for the requested token
Built-In Security
Security comes baked in:
- Access tokens are automatically marked as secrets to prevent accidental logging
- Short-lived GitHub OIDC tokens replace the need for stored credentials
- No long-lived API keys required in workflow files or repository secrets
Why It Matters
Eliminate Credential Management Overhead
Traditionally, accessing external APIs from GitHub Actions required storing API keys or client secrets as repository secrets. This approach introduces ongoing maintenance burden and potential security risks if credentials are compromised.
jwt-bearer-token-vendor changes the game by using OIDC federation. Your workflow proves its identity through GitHub’s OIDC token—a short-lived, cryptographically signed assertion that GitHub provides automatically. The external API validates this assertion and issues an access token on demand.
Enable Modern Zero-Trust Workflows
This action aligns with modern security best practices:
- No secret rotation: Since you’re not storing long-lived credentials, there’s nothing to rotate
- Principle of least privilege: Configure your external API to only trust specific GitHub audiences
- Audit trail: GitHub OIDC tokens include context about the workflow run, enabling better auditing
Works With Any JWT Bearer-Compatible API
The action implements the standard OAuth 2.0 JWT Bearer grant type (RFC 7523), making it compatible with any external API server that supports this specification. Whether you’re integrating with identity providers, microservices, or custom APIs, if they support JWT Bearer assertions, this action works for you.
Getting Started
Basic Usage
Add the action to your workflow file:
- name: Obtain Access Token
id: get-token
uses: UnitVectorY-Labs/jwt-bearer-token-vendor@v1.0.0
with:
github-audience: 'your-client-audience'
request-token-url: 'https://issuer.example.com/token'
request-client-id: 'your-client-id'
Using the Token
The action outputs the access token along with metadata for subsequent steps:
- name: Use Access Token
run: |
curl -H "Authorization: Bearer $" \
https://api.example.com/protected-resource
Installation Requirements
No special setup required beyond:
- A GitHub-hosted runner (Ubuntu, Windows, or macOS)
- An external OAuth 2.0 server configured to accept JWT Bearer assertions from GitHub’s OIDC issuer
- Workflow permissions enabled (default on most runners)
Transparency Note
This release announcement was AI-generated using the unsloth/Qwen3.5-122B-A10B-GGUF:Q4_K_M model. The post was generated on March 19, 2026, based on research from the UnitVectorY-Labs/jwt-bearer-token-vendor repository (v1.0.0 release). For more information about this tooling, see release-storyteller.