OpenPubKey: Make nonce meaningful
1. Web login page, set
nonce
2. Redirect with code Identity Provider
issuer: https://identity-provider.com
0. Download public keys from
https://identity-provider.com/
.well-known/jwks.json
for verification
5. Request with ID token with
&
Signature-Input: @body “authorization”
Signature: dMT/A/76ehrdBTD/
3. POST code
4. Get signed ID token,
bound to thru nonce
private
sign
public
verify
Authenticate ID token using
Can verify signature using
private
sign
✅ Ephemeral user key
✅ Works with any OIDC provider
{
“alg”: “ES256”
}.{
"sub":"
[email protected]",
"iss":"https://server.example.com",
"nonce”: SHA-3({
“alg”: “ES256”,
“upk”: ,
“rz”: crypto.random()
})
}.