[M1] Backend: JWT Interceptor für Connect-RPC in grpc-utils #5

Open
opened 2026-07-11 00:55:17 +00:00 by kocoder · 0 comments
Owner

Zielsetzung

Die Go-Backends müssen verifizieren, ob der aufrufende Client authentifiziert ist. Dies geschieht am effizientesten über einen generischen Interceptor im shared Modul grpc-utils.

Aufgaben

  • In grpc-utils eine Middleware (Interceptor für connect-go) schreiben.
  • Die Middleware soll den Authorization: Bearer <token> Header aus dem Request auslesen.
  • Nutzung einer Go JWT-Bibliothek (z.B. github.com/MicahParks/keyfunc), um das Token gegen die Keycloak JWKS URL zu validieren.
  • Den authentifizierten User (Claims) extrahieren und sicher in den Go context.Context schreiben.
  • Unit Tests für den Interceptor schreiben.

Akzeptanzkriterien

  • JWT-Validierung klappt mit echten, gültigen Tokens von Keycloak.
  • Bei fehlendem oder ungültigem Token liefert der Request sofort connect.CodeUnauthenticated (HTTP 401) zurück.
### Zielsetzung Die Go-Backends müssen verifizieren, ob der aufrufende Client authentifiziert ist. Dies geschieht am effizientesten über einen generischen Interceptor im shared Modul `grpc-utils`. ### Aufgaben - [ ] In `grpc-utils` eine Middleware (Interceptor für `connect-go`) schreiben. - [ ] Die Middleware soll den `Authorization: Bearer <token>` Header aus dem Request auslesen. - [ ] Nutzung einer Go JWT-Bibliothek (z.B. `github.com/MicahParks/keyfunc`), um das Token gegen die Keycloak JWKS URL zu validieren. - [ ] Den authentifizierten User (Claims) extrahieren und sicher in den Go `context.Context` schreiben. - [ ] Unit Tests für den Interceptor schreiben. ### Akzeptanzkriterien - JWT-Validierung klappt mit echten, gültigen Tokens von Keycloak. - Bei fehlendem oder ungültigem Token liefert der Request sofort `connect.CodeUnauthenticated` (HTTP 401) zurück.
Sign in to join this conversation.
No labels
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
VT/MONOREPO#5
No description provided.