You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit a13ed7b
Browse filesBrowse the repository at this point in the historyBrowse files
feat: Pass optional OIDC audience and issuer through the operator (#6677)
* feat: Pass optional OIDC audience and issuer through the operator
Follow-up to #6670, requested in review: add audience and issuer to
OidcOptionalSecretProperties so operators can set them in the referenced
OIDC Secret and have them flow into the generated feature_store.yaml auth
section, enabling the new opt-in claim verification on the feature
server. Absent keys change nothing.
Documents the two optional Secret keys in the operator security guide
with a pointer to the OIDC authorization page for the token-claims vs
discovery-metadata caveat.
Signed-off-by: Larry Singleton <[email protected]>
* fix: Coerce numeric OIDC audience and issuer Secret values to strings
Secret values are YAML-parsed on extraction, so an all-digits audience
(e.g. a numeric IdP application ID) arrives as a Go int, renders unquoted
in the generated feature_store.yaml, and fails the SDK's Optional[str]
validation at server startup. Coerce the two claim keys back to strings
in the allowlist copy, with a regression test.
Also extend the reconcile-level envtest fixtures with both keys so they
exercise real Secret extraction and YAML serialization rather than only
the mocked property map.
Signed-off-by: Larry Singleton <[email protected]>
* docs: Sharpen operator OIDC audience/issuer docs and fix dead links
State precisely which claims are and are not checked, scope the checks
to the standard OIDC/JWKS path (ServiceAccount and intra-server tokens
follow separate paths), distinguish the Secret's issuer key from the
CR's issuerUrl, and document three operational caveats: pre-existing
Secret keys activate on operator upgrade, the IdP must mint matching
claims for Feast's own client token flows, and Secret edits apply on
the next reconcile.
Point the two dead ../reference/auth links at real pages and add the
new optional keys to the linked sample Secret as commented lines.
Signed-off-by: Larry Singleton <[email protected]>
---------
Signed-off-by: Larry Singleton <[email protected]>
issuer: <expected-iss-claim> # optional: reject tokens whose iss claim differs
65
67
```
66
68
69
+
The optional `audience` and `issuer` keys enable audience and issuer claim verification on the standard OIDC/JWKS validation path; when omitted, the `aud` and `iss` claims are not checked. Set them to the values your IdP puts in the token itself, which are not always the ones in the discovery document (see [OIDC Authorization](../../getting-started/components/authz_manager.md#oidc-authorization)). The Secret key `issuer` is distinct from the CR's `issuerUrl`, which selects the discovery endpoint and plays no part in claim verification. Kubernetes ServiceAccount tokens (validated via TokenReview) and intra-server communication follow separate paths and are not subject to these checks.
70
+
71
+
{% hint style="warning" %}
72
+
Before enabling these, three operational caveats:
73
+
74
+
* **Existing Secret keys take effect on operator upgrade.** Keys named `audience` or `issuer` already present in the referenced Secret were previously ignored; after upgrading they are forwarded to every Feast pod.
75
+
* **Your IdP must mint matching tokens for Feast's own clients.** Feast's client-credentials flow requests no audience, so in multi-service topologies (e.g. a remote registry) and for the UI's browser tokens, the IdP must be configured to issue tokens carrying the expected claims (e.g. a Keycloak audience mapper), or inter-service calls will be rejected.
76
+
* **Secret edits are not watched.** Changes to these keys apply on the next reconcile or pod restart, not immediately.
77
+
{% endhint %}
78
+
67
79
Reference the Secret from the CR:
68
80
69
81
```yaml
@@ -92,7 +104,7 @@ authz:
92
104
caCertConfigMap: oidc-ca-cert # ConfigMap with CA cert for SSL verification
// Feast server types: Reserved only for server types like Online, Offline, and Registry servers. Should not be used for client types like the UI, etc.
0 commit comments