OIDC and JWKS diagnostics
v0.1.7Generic read-only OpenID Connect discovery and JWKS diagnostics, plus local key-ID comparison and protected JWT-header inspection. Network actions use explicit HTTPS URLs, never follow redirects, and never submit bearer tokens.
bash
curl
jq
base64
Install
emisar pack install
fetches this pack, re-validates it, and verifies its content hash against the
--hash
below — the exact bytes this page was rendered against, so a tampered copy is
rejected — before copying it into the runner's packs dir. The command reloads a
running daemon itself; no manual restart.
sudo emisar pack install oidc-jwks --hash sha256:dc825bb1cae1b9b55718596bac865e703d25e155d96fcd71bec191cb36452280
Setup
Discovery and JWKS documents are public metadata. The runner needs outbound HTTPS access to the exact issuer or JWKS host supplied to an action.
Environment
Set these on the runner host, then add each name to
execution.inherit_env
so the value reaches the action.
-
OIDC_CA_CERTOptional PEM CA bundle for a private issuer.
Notes
-
OIDC_CA_CERTmust be allowlisted inexecution.inherit_envwhen set. - Explicit HTTPS URLs can still name private or loopback services; restrict destinations with runner policy and network egress controls when agents must not reach them.
- Network actions do not follow redirects or automatically fetch a secondary URL. Validate discovery first, then call oidc.jwks with the returned jwks_uri explicitly.
- oidc.jwt_header decodes metadata only. It does not verify the signature, issuer, audience, expiry, or any other claim.
Verify it works
Runs oidc.validate_discovery, a low-risk
read that confirms the pack can reach its target. Run it on the host once the pack
is installed; pack install runs it for
you.
sudo emisar pack verify oidc-jwks
Install and configure a pack walks through the whole sequence on a host.
Actions 5 total
View on GitHub-
oidc.compare_key_ids script low Low — read-only or trivially reversible
Compare authoritative and consumer key IDs
Compare two bounded JSON arrays of public key IDs and report exact counts of shared, missing, and extra IDs plus capped, clipped samples of the missing and extra ones. Inputs are sorted and deduplicated before comparison.
View source on GitHub -
oidc.discovery script low Low — read-only or trivially reversible
Fetch OIDC discovery metadata
Fetch and return the public OpenID Provider Configuration for one exact HTTPS issuer. Redirects are rejected and advertised URLs are not followed.
View source on GitHub -
oidc.jwks script low Low — read-only or trivially reversible
Fetch a public JWKS
Fetch and validate one explicit public JWKS. The action rejects redirects, oversized key sets, malformed keys, and private or symmetric key material.
View source on GitHub -
oidc.jwt_header script low Low — read-only or trivially reversible
Decode a protected JWT header
Decode and project recognized fields from a compact JWS or JWE protected header. The payload and claims are never decoded, and no signature or claim validation is performed. Recognized fields are byte-bounded; a header whose field exceeds its bound or carries control characters is rejected.
View source on GitHub -
oidc.validate_discovery script low Low — read-only or trivially reversible
Validate OIDC discovery metadata
Require an exact issuer match and an accepted HTTPS jwks_uri in one discovery document. This action does not fetch the advertised JWKS.
View source on GitHub