Postmortem: unexpected JWT `iss` change
Incident report for the 2024-03-18 unexpected JWT `iss` change.
Incident report for the 2024-03-18 unexpected JWT `iss` change.
On 2024-03-18, an update changing JWT issuer behavior in Logto Cloud broke auth flows for users with custom domains and iss validation. The fix required these users to update their validation logic.
iss validation.iss validation within auth flows.The update changed the iss field to match the requested domain, breaking existing validations that expected the previous default issuer.
iss behavior.Logto Cloud supports custom domain for auth, developers who have custom domain enabled tenants can set the endpoint to the custom domain in SDKs, then the end user will use this endpoint to init auth process and get tokens. Some tokens are in the form of JWT, which includes a iss field indicating the issuer of this token. Previously, even when a custom domain endpoint was used to request an access token, the issuer would still default to our standard domain ([tenant-id].logto.app).
But the issuer’s domain should be the same as the requested endpoint. So we released an update to fix this issue, and now the iss field will automatically reflect the domain used in the request.
For those who are already using custom domain to grant tokens and implemented iss field validation in the resource server, this could be a breaking change. Existing auth check will fail because of the change of issuer. In order to fix this, the developers need to change the validation code, replace the expected issuer to the new one with custom domain.
We failed to fully consider the impact on existing iss validations, as a result, this release become a breaking change without priorer notification.
Notified affected users via email, advising them to update their iss validation to match the requested domain.
The change is a necessary fix for the issuer field, and some users may have already adapted to the new behavior. A rollback will cause confusion and inconsistency.