...
So you want to touch JWTs? may be useful for anyone working on any of these challenges.
Also see details about the potential funded contribution FC-18 here, labelled as
Status | ||||
---|---|---|---|---|
|
Easier to use
These changes should make authentication easier to use for engineers.
Status colour Blue title In Progress Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-1218 A fresh ticket is probably in order here. I’m not clear on the final proposed solution, and where we need monitoring along the way, but this definitely adds complexity to our authentication, and I think there is a simpler way.
(“unfinished”)Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-1181 Not sure if this has any additional useful context, or is redundant and should be forgotten.
Status colour Green title In FC-18 Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-107 AUTHENTICATION_CLASSES
is a default setting for DRF endpoints.This would enable the use of JwtAuthentication from most edx-platform DRF endpoints.
DRF endpoints that override the default should be reviewed to see if the override can be deleted, once there is a sane default.
Order is an open question: JwtAuthentication before or after SessionAuthentication?
Unfortunately, due to differences noted in DEPR(#165), order matters.
Also, order matters until ARCHBOM-1218 is implemented.
For rollout, propose to add a custom version of BasicAuthentication in edx-platform that adds some monitoring to see how and if it is used in Production.
It would be good to drop BasicAuthentication from the defaults if we don’t actually want it.
A fresh ticket is probably in order here. I’m not clear on the final proposed solution, and where we need monitoring along the way, but this definitely adds complexity to our authentication, and I think there is a simpler way.Jira Legacystatus servercolour System JIRAGreen serverIdtitle 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-1218
https://github.com/openedx/edx-drf-extensions/issues/332In FC-18 Status colour Green title In FC-18
1181Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-
(“unfinished”)1183 Not sure if this has any additional useful context, or is redundant and should be forgotten.
https://github.com/openedx/edxpublic-drf-extensionsengineering/issues/332165
This may be complicated without further product input, but maybe the solution can be readied regardless.
Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-1183 (“unfinished”)
(“unfinished”)Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-1074 Adding an endpoint to LMS to expose the public signing keys. (Unticketed)
This would simplify key rotation. It came up at 2U for non-Open edX platform applications that may use the JWT cookie for SSO.
...
These changes should simplify authentication, which may affect engineers in certain cases, but possibly not as directly as the “Easier to use” category.
https://github.com/openedx/edx-drf-extensions/issues/333Status colour Green title In FC-18 New implementation ticket for https://github.com/openedx/public-engineering/issues/83
This would simplify authentication and maintenance, but wouldn’t necessarily add functionality.
https://github.com/openedx/publicedx-drf-engineeringextensions/issues/190327Status colour Green title In FC-18 https://github.com/openedx/edxpublic-drf-extensionsengineering/issues/327189
https://github.com/openedx/public-engineeringedx-rest-api-client/issues/189277
https://github.com/openedx/edx-drf-extensions/issues/284
To be considered.
- Probably requires working in Prospectus
https://github.com/openedx/public-engineering/issues/82
(“unfinished”)Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-1172 https://github.com/openedx/edx-platform/issues/32343
Requires working in Prospectus, edx.org’s private marketing site, so this is not a good candidate for community work.
(“unfinished”)Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-1077 Related?
(“unfinished”)Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-1168
Authorization
The following tickets may be authorization related, and not really authentication related.
(“unfinished”)Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-1170 This is unblocked, because we no longer return expired JWTs for restricted applications.
(“unfinished”)Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-1162 Note: The code has since been updated to use, but override, the shared JwtAuthentication class to update global staff role during login.
Observability
Changes that might help with observability while monitoring other fixes. These should be kept in mind as we consider other dangerous changes that we with to monitor.
(“unfinished”)Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-545 I have since realized that
MonitoringCustomMetricsMiddleware
isn’t deployed by enough services, so might be better to just keep callingset_custom_attribute
and hopefully the final call wins.
(“unfinished”)Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-142
(“unfinished”)Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-158 (Unticketed) It would be nice to have a
failed_jwt_unauthenticated_user_id
to know who may have been trying to authenticate.
Bugs?
Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-2028 Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-2031
(“unfinished”)Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-1262
(“unfinished”)Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-543 It is possible this may pass now that we are using a different library under the covers?
Jira Legacy server System JIRA serverId 13fd1930-5608-3aac-a5dd-21b934d3a4b4 key ARCHBOM-1152
...