Sign-in and SSO
Ankra sign-in is handled by a managed identity provider rather than by password storage in the platform. Members authenticate there, and the platform receives the resulting identity. Each sign-in is bound to the browser that started it. The platform sends the OpenID Connectstate and nonce parameters and a PKCE challenge with every authorisation request - password, social, single sign-on and invitation sign-ins alike - and completes a sign-in only when the provider’s answer carries that state, the ID token carries that nonce, and the code is redeemed with the matching verifier. An answer the browser did not ask for is never completed: the sign-in restarts once, and a second unmatched answer stops on a page asking the person to sign in again. Connecting another sign-in method to an account is bound the same way, so a link started in one browser cannot be finished in another.
Single sign-on federates sign-in to your own identity provider, so accounts follow your joiner-mover-leaver process. An owner or admin connects an OpenID Connect provider - Microsoft Entra ID, Okta or any other - under Organisation → Settings → Single sign-on, with nothing for Ankra to enable first. The provider then decides who is a member and, if you map its groups, which role each member holds. Setup is in Single Sign-On.
The phrase “SSO-backed” appears throughout these docs in a second, narrower sense: Cluster Access and kubectl access mint short-lived Kubernetes credentials tied to the member’s Ankra identity, rather than distributing static kubeconfigs. That is true on every plan and is a different control from single sign-on federation.
Multi-factor authentication
Three second factors are supported, and an organisation can require MFA for every member.
When an organisation enforces MFA, a member who has not enrolled is blocked at sign-in until they do. That produces a clean binary answer to the “is MFA enforced for all users” question, and the state appears in the attestation section of the compliance report.
Setup and CLI equivalents are in Account Security & 2FA.
Roles and scopes
Ankra grants permissions through roles assigned at a scope: the whole organisation, a single cluster, or a cluster group. A role can also bundle the Kubernetes access provisioned on every cluster the scope resolves to, so platform permissions andkubectl access are granted and revoked together rather than drifting apart.
This is the structure that lets you answer least-privilege questions concretely:
- Scope narrowly. An engineer who operates one team’s clusters gets a role on that team’s cluster group, not on the organisation.
- Separate duties with custom roles. The
audit.readpermission can be granted on its own, so a compliance function reviews and exports the trail without administrative access. The same applies to security read. - Use dynamic cluster groups. A group defined by a label selector keeps access correct as clusters are created and retired, instead of relying on someone remembering to update a static list.
Kubernetes access
Cluster access is granted through Ankra rather than by distributing credentials. Members authenticate as themselves and receive short-lived tokens minted on demand, so there are no static kubeconfigs to leak, rotate or collect on offboarding. Requests reach the cluster through Ankra’s authenticated proxy, which is why this works for private clusters with no inbound network path. See Cluster Access and Accessing Clusters with kubectl. An organisation access policy sets a ceiling on the role any grant can carry, what a cluster’s creator is given, how long access aboveview may last, and from which role a grant needs a reason. For incident access without standing privilege, use break-glass elevation: time-boxed, reasoned access a person or service account gives itself, announced on your notification channels and recorded in the audit log.
The identity your cluster sees
The Ankra agent re-issues every proxied request to the API server as the member, using Kubernetes impersonation. The API server, its RBAC and your admission policies see this identity:
The
ankra: groups carry no permissions. Ankra binds every grant to the username, never to a group, so the groups only add names your policies can match. Do not bind a Role or ClusterRole to one of them yourself: that would grant access outside Ankra’s access policy and its audit trail.
The groups are sent by agent version 2.1.1223 and later. An older agent impersonates the username alone, and so does an agent whose own service account may not impersonate groups (the agent’s chart grants that permission; the agent logs a warning when it is missing). Check what a cluster sees with your Ankra kubeconfig:
Groups row lists the ankra: groups when they arrive.
Because the groups can be absent, write admission policies that use them to exempt a caller, never to deny one. This ValidatingAdmissionPolicy (Kubernetes 1.30 or newer) refuses namespace deletion through Ankra unless the member holds a cluster-admin grant on the cluster, such as a break-glass elevation. Requests that do not come through Ankra are left alone:
cluster-admin, which fails closed. A cluster-admin grant scoped to a single namespace also produces ankra:grant:cluster-admin; if the exemption should mean cluster-wide access only, issue cluster-admin at cluster scope.
Ankra service accounts reach the cluster through the same gateway as people, as ankra:user:<uuid> with the same groups, so this policy applies to automation too. A service account that deletes namespaces needs its own cluster-admin grant on that cluster, or a break-glass elevation to cluster-admin where the organisation access policy allows it.
API tokens
Automation authenticates with API tokens rather than member credentials. For anything scheduled - evidence pulls, pipeline agents, integrations - issue a token for a member whose role grants only what the job needs, and treat the token as a credential with an owner and a review date. See Tokens for issuing and revoking them.Evidence map
An access review usually needs two things: the current state, and the changes since the last review. The assignment views give you the first and the audit export gives you the second.
Related
Roles & Access
Define roles, scopes and cluster groups.
Account Security & 2FA
Enrol factors and enforce MFA.
Audit Export
Export access changes for review.
Cluster Access
Short-lived, identity-backed kubectl access.