You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/developer/auth.md
+30-2Lines changed: 30 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -239,7 +239,7 @@ JWT renew tokens follow this structure:
239
239
{
240
240
"alg": "Ed25519",
241
241
"typ": "JWT"
242
-
"styp": "renew"
242
+
"tkt": "renew"
243
243
}
244
244
```
245
245
@@ -259,9 +259,37 @@ Note the subtype (styp) in the header is set to renew.
259
259
260
260
A client application will periodically ask Bifrost for a new certificate token and build its own renew token based on this. This can then be used in the backend API calls according to the permissions of the original token. If the original token is revoked by the user, bifrost will not issue a new certificate.
261
261
262
+
### JWT Renew Certificate Structure
263
+
Bifrost creates the renew certificate and signs it with its internal private key.
-**tnonce**: The delegate token nonce as specified in attributes.nonce
287
+
-**delegatedKey**: The delegated key as specified in the delegate token
288
+
289
+
### Validation
262
290
Validation of a renew token follows the steps:
263
291
1. Extract the delegate token and certificate tokens.
264
-
2. Ensure valid signatures of the delegate delegate token and certificate tokens (fetch the public key from Bifrost using the keyId in the certificate token).
292
+
2. Ensure valid signatures of the delegate token and certificate tokens (fetch the public key from Bifrost using the keyId in the certificate token).
265
293
3. Ensure valid signature of renew token (use delegateKey from delegate token)
266
294
4. Ensure certificate token is not expired and that nonce is the same in the certificate and the delegate token
267
295
5. The renew token is now valid and continued validation of message and permissions can be done.
0 commit comments