googleapis / googleapis/google-cloud-node

google-auth-library: support client-side Credential Access Boundaries (Java ClientSideCredentialAccessBoundaryFactory equivalent)

Offen
#8,855 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
TypeScript
Sterne
3.2k
Forks
712
Ø Merge
2 T. 9 Std.
Gemergte PRs (30 T.)
104

Beschreibung

### Feature request

Support client-side Credential Access Boundaries in `google-auth-library-nodejs` — the equivalent of Java's [`ClientSideCredentialAccessBoundaryFactory`](https://github.com/googleapis/google-auth-library-java/tree/main/cab-token-generator).

### Background

The Node library ships the server-side `DownscopedClient`, which performs one STS token exchange per downscoped token. Google's IAM documentation ([Create a downscoped credential](https://cloud.google.com/iam/docs/create-downscoped-short-lived-credentials)) now describes the client-side approach — exchange once for an access boundary intermediary token, then mint downscoped tokens locally with varying boundary rules, no STS round trip per token — and calls it "the recommended approach because it provides better performance, scalability, and future feature compatibility."

Today that implementation exists only in Java (`cab-token-generator` module, `ClientSideCredentialAccessBoundaryFactory`). Searching the googleapis org, there is no Node, Python, or Go implementation and no open tracking issue, so filing this one for Node.

### Use case

A token broker minting many unique prefix-scoped Cloud Storage tokens at high frequency: per-tenant object-name prefixes, one short-lived token per tenant session. With the server-side `DownscopedClient`, every unique boundary costs an STS exchange against the `sts.googleapis.com` token-exchange quota (6,000/project/minute). Caching per tenant helps, but fresh-mint demand scales with distinct active tenants; client-side minting removes the ceiling entirely, as the docs note.

### Questions

1. Is client-side CAB support planned for `google-auth-library-nodejs`? Any timeline?
2. If it is not planned soon: is the intermediary-token wire format (the protobuf-encoded boundary + encryption scheme visible in Java's `cab-token-generator`) considered stable and supported for third-party client implementations, or is it internal and subject to change?

### Environment

`google-auth-library` 10.x on Node 24 / Bun, tokens consumed by Cloud Storage JSON/XML APIs.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Beginne mit der Überprüfung des Java-Moduls `cab-token-generator` und `ClientSideCredentialAccessBoundaryFactory`. Vergleiche sie anschließend mit dem vorhandenen `DownscopedClient` der Node-Bibliothek. Ermittle das unterstützte Zwischen-Token-Format und die für die lokale Ausstellung erforderliche Node-API. Als abgeschlossen gilt die Implementierung der clientseitigen CAB-Unterstützung, wobei die angeforderte Interoperabilität und das Nutzungsverhalten geklärt sind.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
google-cloud, nodejs, typescript
Bereich
authentication, backend, security
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Ruhig
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
30/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.