Zeabur Identityv0.1.0

Delete admin.conf. Sign in to your cluster with a passkey.

kubectl opens your browser, you sign in with Touch ID, Windows Hello or a security key, and get a token that expires in minutes. Kubernetes checks the token itself; Zeabur Identity is never in the path of your requests.

Members use their own rights, admins use their own accounts.

Sign in in the browser, carry on in kubectl.

  1. Run kubectl

    kubectl get pods, for example. Your browser opens Zeabur Identity's sign-in page.

  2. Use your passkey

    kubectl gets a token valid for ten minutes and renews it quietly while you work.

  3. Kubernetes checks it

    kube-apiserver verifies the token through OpenID Connect. Revoke someone's sessions and their token in hand stops working within ten minutes.

The pages you sign in on

Everyday sign-in: a passkey button and Continue with GitHubEveryday sign-in: a passkey button and Continue with GitHub
Everyday sign-in: a passkey button and Continue with GitHub
Joining: create a passkey from a one-time linkJoining: create a passkey from a one-time link
Joining: create a passkey from a one-time link

What it supports

ItemScopeConditions
Kubernetes distributionsTested in CI on k3sk0s and kubeadm configuration is available; installation is unverified
Sign-inPasskeys, or a linked GitHub or Google accountGitHub and Google need an OAuth app of your own
Admin accountsPasskey only, 5-minute tokensSet the account type with zeabur-identityctl
Other appsRegister Grafana or Argo CD with zeabur-identityctl client createThe app speaks OpenID Connect
PeopleGroups, admin accounts, lost passkeys, removal, sync from a directorySync needs a small script of your own
Your computerkubectl on macOS, Linux or WindowsA kubeconfig set up as in the guide

Start from one Ubuntu server

The guide installs k3s on an Ubuntu server, downloads and verifies Zeabur Identity, and signs you in with a passkey from your computer. On a cluster you already have, run these lines with your cluster-admin kubeconfig.

export ZEABUR_IDENTITY_ISSUER=https://login.example.com
zeabur-identityctl crds | kubectl apply --server-side -f -
zeabur-identityctl manifests --image "$ZEABUR_IDENTITY_IMAGE" \
  --serve-arg=--invitations | kubectl apply --server-side -f -
# Prints kube-apiserver's configuration and how to install it
# for your distribution:
zeabur-identityctl kube-config --distro k3s > authn.yaml
# A one-time link: open it and create your passkey.
zeabur-identityctl setup-link --username admin