ate-api accepts mTLS client certificates and bearer JWTs. JWT providers are
configured with the file passed to --authentication-config:
actorIdentityJWTProvider: kubernetes
jwtProviders:
- name: kubernetes
issuer: https://kubernetes.default.svc.cluster.local
audiences:
- api.ate-system.svc
certificateAuthorityFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
discoveryTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
- name: google
issuer: https://accounts.google.com
audiences:
- 32555940559.apps.googleusercontent.comProvider names and issuers must be unique. issuer must be an HTTPS URL and
audiences must be non-empty; a token is accepted when any configured audience
matches. certificateAuthorityFile and discoveryTokenFile are optional and
are needed for OIDC discovery against some private Kubernetes API servers.
actorIdentityJWTProvider identifies the provider allowed to call
ActorIdentity.MintJWT. Other authenticated providers can call every RPC.
Authorization and RBAC are not implemented yet, so only configure providers
whose users should have full access, including DebugClear.
The Google Cloud CLI currently issues user identity tokens with issuer
https://accounts.google.com and audience
32555940559.apps.googleusercontent.com, the Cloud SDK's shared client ID.
These values are examples rather than built-in defaults; verify the claims
issued by your identity provider and configure them explicitly.
With the provider configured, pipe the token to kubectl-ate:
gcloud auth print-identity-token | kubectl ate --token-file=- get actors--token-file accepts either a file path or - for stdin and only replaces the
credential sent to ate-api. kubectl-ate
still uses kubeconfig access to establish its port-forward and obtain the
server trust bundle.
For a manifest-based installation, replace the authentication ConfigMap and restart the deployment:
kubectl -n ate-system create configmap ate-api-authentication \
--from-file=authentication.yaml \
--dry-run=client -o yaml | kubectl apply -f -
kubectl -n ate-system rollout restart deployment/ate-api-serverConfiguration is read at process startup. Restart ate-api pods after changing
the ConfigMap. OIDC signing keys are cached and refreshed when an unknown key ID
is encountered.