Commit graph Heimdall/tests/security.test.ts
Author SHA1 Message Date
Heimdall
8e870d20a0 Google OIDC provider: link-only, sub-keyed, PKCE and nonce
Google is a Heimdall provider behind Bifrost, with no direct upstream.
Scopes openid email profile; the callback verifies the id_token
(RS256 against Google's keys, iss, aud, exp, iat, nonce) and requires
a verified email. The identity key is sub, never the email.

PKCE verifier and nonce are derived from the state jti and Heimdall's
signing key, so nothing is stored between start and callback.

Google never mints an account. mode=link needs a Heimdall access token
for the app and attaches to that account only; sign_in signs in an
identity already linked; an unknown sub is refused, and a sub held by
another account is never moved. The six existing providers still mint
on first login.

Admitted to the bifrost profile only. The Idunn recipe declares the
Google client id and secret file.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 16:10:23 +00:00
Meta Vens
1c38d12050 Add Joystick as a confidential, rotating managed-connection provider
Joystick joins the catalog (Basic client auth, rotatesRefreshTokens), resolves
identity by channel id, and is a streampixels managed-connection provider only:
it is not an identity provider for the profile (ruling signin-waits-for-public-bot).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 11:13:40 +02:00
Meta Vens
e35441e378 Pin the token-key length refusal custody now relies on
With custody's "set but empty" check deleted, the 32-byte length check is the
only refusal of a malformed token key, and StrykerJS showed nothing tested it
(forcing it off survived). A 16-, 31- and 33-byte key are each refused, and
the refusal does not carry the key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 14:03:24 +02:00
Meta Vens
3c50cc6b26 Authenticate Heimdall health publications 2026-08-20 19:56:35 +02:00
Meta Vens
758892db87 Publish Heimdall daemon boundary state for Idunn 2026-06-16 18:01:07 +01:00
Meta Vens
f0d40e80a5 Allow configured Spotiverse portal callbacks 2026-06-02 19:25:14 +01:00
Meta Vens
e2a2f20693 Add Spotiverse Spotify credential custody 2026-06-02 16:25:38 +01:00
Meta Vens
ee8c012c85 Refresh Repixelizer app claims through Heimdall 2026-05-20 13:43:53 +01:00
Meta Vens
f22db66d64 Add StreamPixels managed auth seams 2026-04-29 15:00:55 +01:00
Meta Vens
5043a5fc9a Accept caller-owned entitlement policy 2026-04-29 13:22:01 +01:00
Meta Vens
6795439ac7 Harden Heimdall custody and verifier seams 2026-04-26 16:23:29 +01:00