Skip to content

Commit b14b983

Browse files
committed
Change naming from jwt to oidc
1 parent af72b50 commit b14b983

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

doc/developer/design/20251215_jwt_authentication.md renamed to doc/developer/design/20251215_oidc_authentication.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ metadata:
2727
...
2828
spec:
2929
...
30-
authenticatorKind: Jwt
31-
jwtAuthenticationSettings:
30+
authenticatorKind: Oidc
31+
oidcAuthenticationSettings:
3232
# Must match the OIDC client ID. Required.
3333
audience: 060a4f3d-1cac-46e4-b5a5-6b9c66cd9431
3434
# The claim that represents the user's name in Materialize.
@@ -60,8 +60,8 @@ Where in environmentd, it’ll look like so:
6060
6161
```bash
6262
bin/environmentd -- \
63-
--listeners-config-path='/listeners/jwt.json' \
64-
--jwt-authentication-setting="{\"audience\":\"060a4f3d-1cac-46e4-b5a5-6b9c66cd9431\",\"authentication_claim\":\"email\",\"group_claim\":\"groups\",\"issuer\":\"https://dev-123456.okta.com/oauth2/default\",\"jwks\":{\"keys\":[...]},\"jwks_fetch_from_issuer\":true,\"token_endpoint\":\"https://dev-123456.okta.com/oauth2/default/v1/token\"}"
63+
--listeners-config-path='/listeners/oidc.json' \
64+
--oidc-authentication-setting="{\"audience\":\"060a4f3d-1cac-46e4-b5a5-6b9c66cd9431\",\"authentication_claim\":\"email\",\"group_claim\":\"groups\",\"issuer\":\"https://dev-123456.okta.com/oauth2/default\",\"jwks\":{\"keys\":[...]},\"jwks_fetch_from_issuer\":true,\"token_endpoint\":\"https://dev-123456.okta.com/oauth2/default/v1/token\"}"
6565
```
6666

6767
## Testing Frameworks
@@ -77,7 +77,7 @@ By specifying an audience, we ensure an admin must explicitly give a user in the
7777

7878
### Solution proposal: The user should be disabled from logging in when a user is de-provisioned. However, the database level role should still exist.
7979

80-
When doing pgwire jwt authentication, we can accept a cleartext password of the form `access=<ACCESS_TOKEN>&refresh=<REFRESH_TOKEN>` where `&` is a delimiter and `refresh=<REFRESH_TOKEN>` is optional. The JWT authenticator will then try to authenticate again and fetch a new access token using the refresh token when close to expiration (using the token API URL in the spec above). If the refresh token doesn’t exist, the session will invalidate. The implementation will be very similar to how we refresh tokens for the Frontegg authenticator. This would require users to have their IDP client generate `refresh` tokens.
80+
When doing pgwire Oidc authentication, we can accept a cleartext password of the form `access=<ACCESS_TOKEN>&refresh=<REFRESH_TOKEN>` where `&` is a delimiter and `refresh=<REFRESH_TOKEN>` is optional. The JWT authenticator will then try to authenticate again and fetch a new access token using the refresh token when close to expiration (using the token API URL in the spec above). If the refresh token doesn’t exist, the session will invalidate. The implementation will be very similar to how we refresh tokens for the Frontegg authenticator. This would require users to have their IDP client generate `refresh` tokens.
8181

8282
By suggesting a short time to live for access tokens, this accomplishes invalidating sessions on deprovisioning of a user. When admins deprovision a user, the next time the user tries to authenticate or refresh their access token, the token API will not allow the user to login but will keep the role in the database.
8383

@@ -106,7 +106,7 @@ A generic Frontend SSO redirect flow would need to be implemented to retrieve an
106106
- Create a JWT Authenticator
107107
- Create environmentd CLI arguments to accept the JWT authentication configuration above
108108
- Wire up the HTTP endpoints, WS endpoints, and pgwire for this authenticator kind
109-
- Add a `jwt` authenticator kind to orchestratord and create a `jwt` listener config
109+
- Add a `Oidc` authenticator kind to orchestratord and create a `Oidc` listener config
110110
- Still leave a port open for password auth for `mz_system` logins given admins can’t map a user in their IDP to `mz_system`
111111

112112
An MVP of what this might look like exists here: [https://github.com/MaterializeInc/materialize/pull/34516](https://github.com/MaterializeInc/materialize/pull/34516). Some differences from the proposed design:

0 commit comments

Comments
 (0)