@@ -83,17 +83,31 @@ GOTIFY_SERVER_RESPONSEHEADERS={"X-Custom-Header":"custom value"}
8383### Token Format Redesign
8484
8585Introduces an EdDSA based token validation scheme to prevent storing plaintext token in database
86- and create potential for fulfilling more feature requests related to security and authentication.
86+ and create potential for future authentication methods .
8787See [ #325 ] ( https://github.com/gotify/server/issues/325 ) .
8888
89+ This also means to align with secure API design principles,
90+ tokens will no longer be returned via the API or WebUI except when the token is issued via creation or rotation.
91+ Workflows dependent on introspecting existing clients or applications for their token will stop working.
92+
93+ ::: tip
94+ The post message endpoint now accepts an "appid" parameter, which allows clients
95+ to impersonate applications they control without knowing the corresponding application token.
96+ :::
97+
8998Tokens for existing applications can now be rotated via the _ application security update_ endpoint.
9099
91100Existing tokens (starting with ` A ` and ` C ` ) will continue to work.
92101Plugin tokens (starting with ` P ` ) used to access web resources are not affected by this change.
93102
94- Custom tokens created by manually modifying database entry may cease to work upon upgrading,
103+ Custom tokens created by manually modifying database entries may cease to work upon upgrading,
95104in such case please rotate tokens or recreate the corresponding client/application entry.
96105
106+ Client tokens cannot be rotated at initial release, but this may become possible in the future
107+ without a major version bump.
108+ Workflows should also not assume a one-to-one relationship between tokens and their corresponding entity,
109+ as future versions may include signature-based, scoped, encryption-based and other token-passing methods.
110+
97111### Step-up Authentication
98112
99113Introduces step-up authentication via time-limited [ session
@@ -116,13 +130,14 @@ With a non-elevated client token these return `403`:
116130The ` Client ` and ` CurrentUser ` models have gotten elevation-related fields. See the
117131[ API documentation] ( /api-docs ) for details.
118132
119- ### Adapting your scripts
133+ ::: tip
134+
135+ To update your workflow that uses the endpoints above with a client token. Perform a separate elevation process before the call. Either:
120136
121- Scripts that hit the endpoints above with a client token now need that token to
122- be elevated. Either:
137+ - Transitition to use HTTP Basic auth as they are elevated by default.
138+ - Elevate the client in the WebUI or the api with basic auth before calling these APIs.
123139
124- - Use HTTP Basic auth as they are elevated by default.
125- - Elevate the client in the WebUI or the api with basic auth.
140+ :::
126141
127142## CLI Changes
128143
0 commit comments