Skip to content

API reference

Complete field-level reference for every kind in the authentik.k8s.rka.sh/v1alpha1 API group.

Do not edit this page by hand

Everything between the generated markers below is produced from the Go types in api/v1alpha1/*.go. Hand edits are overwritten by the next run and fail hack/gen-docs.py --check in between.

To change what appears here, edit the doc comments on the Go types and regenerate. A field's documentation is the comment above it; its validation is its +kubebuilder markers.

Regenerating

make docs-api

make docs-api does not exist yet

This target is planned and is not in the Makefile today, so the generated block below is empty. It is a stub rather than a stale copy on purpose: a hand-written API reference is wrong within a week of the types changing, and a wrong reference is worse than a missing one.

Until the target lands, read the types directly. They are short, thoroughly commented, and are the actual source of truth:

  • api/v1alpha1/authentikconnection_types.go
  • api/v1alpha1/clusterauthentikconnection_types.go
  • api/v1alpha1/common_types.go

Or ask the cluster, which serves the generated OpenAPI schema:

kubectl explain authentikconnection.spec --recursive
kubectl explain clusterauthentikconnection.spec.tokenSecretRef

What exists today

Kind Scope Short name API types
AuthentikConnection Namespaced akconn Defined
ClusterAuthentikConnection Cluster clakconn Defined
OAuth2Provider Namespaced Planned
SAMLProvider Namespaced Planned
ProxyProvider Namespaced Planned
Application Namespaced Planned
Outpost Namespaced Planned
KubernetesServiceConnection Namespaced Planned
DockerServiceConnection Namespaced Planned

Shared types used across kinds — ConnectionReference, LocalSecretKeyReference, SecretKeyReference, AdoptionPolicy, DeletionPolicy and ManagedResourceStatus — live in api/v1alpha1/common_types.go. The prose guides describe them: Connections, Providers, Applications, Outposts.

Generated reference

Packages

authentik.k8s.rka.sh/v1alpha1

Package v1alpha1 contains API Schema definitions for the authentik v1alpha1 API group.

Resource Types

AdoptionPolicy

Underlying type: string

AdoptionPolicy controls what happens when an authentik object with the same name or slug already exists.

authentik objects are keyed by name/slug rather than by Kubernetes UID, so collisions are routine rather than exceptional. The default refuses to take over an existing object, because silent adoption is how an operator quietly overwrites something a human is maintaining by hand.

Validation: - Enum: [FailOnConflict AdoptExisting]

Appears in: - ApplicationSpec - DockerServiceConnectionSpec - KubernetesServiceConnectionSpec - OAuth2ProviderSpec - OutpostSpec - ProviderCommonSpec - ProxyProviderSpec - SAMLProviderSpec - ServiceConnectionCommonSpec

Field Description
FailOnConflict AdoptionPolicyFailOnConflict refuses to manage a pre-existing object.
AdoptExisting AdoptionPolicyAdoptExisting takes ownership of a pre-existing object.

Application

Application manages an application in authentik.

Field Description Default Validation
apiVersion string authentik.k8s.rka.sh/v1alpha1
kind string Application
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ApplicationSpec
status ApplicationStatus

ApplicationPolicyEngineMode

Underlying type: string

ApplicationPolicyEngineMode selects how several policies bound to one application are combined.

Validation: - Enum: [all any]

Appears in: - ApplicationSpec

ApplicationSpec

ApplicationSpec defines an application in authentik.

Appears in: - Application

Field Description Default Validation
connectionRef ConnectionReference ConnectionRef selects the authentik instance this application lives in.
name string Name is the application's display name, shown on the user library page.
Defaults to the resource name.
Optional: {}
slug string Slug is the application's internal name, used in its URLs.
It is immutable. authentik keys an application by its slug, so changing
it cannot be an update: the operator would have to delete the old
application and create a new one, which silently discards every policy
binding attached to it. Create a new Application instead.
MaxLength: 50
MinLength: 1
Pattern: ^[-a-zA-Z0-9_]+$
providerRef ProviderReference ProviderRef is the provider that authenticates users for this
application. Leave unset for an application that only appears in the
user library and is not itself protected.
Optional: {}
backchannelProviderRefs ProviderReference array BackchannelProviderRefs are additional providers attached to this
application for back-channel use, such as SCIM provisioning or an LDAP
bind, alongside the primary provider that handles the login itself.
Optional: {}
openInNewTab boolean OpenInNewTab opens the launch URL in a new browser tab or window. Optional: {}
metaLaunchUrl string MetaLaunchURL is the address the library entry links to. Leave unset to
let authentik derive it from the provider.
Optional: {}
metaIcon string MetaIcon is the URL of the icon shown on the library entry.
Only a URL is accepted. authentik can also serve an icon uploaded to its
own media storage, and that is out of scope for this resource: the file
would have to travel through the custom resource as base64 and be
re-uploaded on every reconcile, which does not belong in etcd. Host the
image somewhere and point at it.
Optional: {}
metaDescription string MetaDescription is the short description shown on the library entry. Optional: {}
metaPublisher string MetaPublisher names the application's publisher on the library entry. Optional: {}
metaHide boolean MetaHide keeps the application off the user's library page while leaving
it usable. Useful for an application reached only by a direct link.
Optional: {}
group string Group names the section the application is filed under on the library
page. Applications sharing a group are shown together.
Optional: {}
policyEngineMode ApplicationPolicyEngineMode PolicyEngineMode selects whether every policy bound to this application
must pass, or any one of them.
any Enum: [all any]
Optional: {}
adoptionPolicy AdoptionPolicy AdoptionPolicy controls what happens when an application with this slug
already exists in authentik.
FailOnConflict Enum: [FailOnConflict AdoptExisting]
Optional: {}
deletionPolicy DeletionPolicy DeletionPolicy controls what happens to the authentik application when
this resource is deleted.
Delete Enum: [Delete Orphan]
Optional: {}

ApplicationStatus

ApplicationStatus reports the application's state in authentik.

Appears in: - Application

Field Description Default Validation
conditions Condition array Conditions describe the current state of the resource. Optional: {}
observedGeneration integer ObservedGeneration is the .metadata.generation this status reflects. Optional: {}
remoteID string RemoteID is authentik's own identifier for the managed object: a numeric
primary key for providers and applications, a UUID elsewhere.
Once set this is the authoritative handle for the object. Lookups prefer
it over the name, so that renaming the object on either side does not
cause the operator to lose track of it and create a duplicate.
Optional: {}
remoteName string RemoteName is the name or slug last observed in authentik. Informational. Optional: {}
adopted boolean Adopted records that this resource took over a pre-existing authentik
object rather than creating it.
Optional: {}
lastSyncedTime Time LastSyncedTime is when the resource last reconciled successfully. Optional: {}
providerID integer ProviderID is the numeric primary key the primary provider reference
resolved to. It is surfaced so a mis-wired reference can be diagnosed
without reading the provider resource as well.
Optional: {}
backchannelProviderIDs integer array BackchannelProviderIDs are the numeric primary keys the back-channel
provider references resolved to, in spec order.
Optional: {}
launchURL string LaunchURL is the address authentik currently resolves the library entry
to, whether taken from metaLaunchUrl or derived from the provider.
Optional: {}

AuthentikConnection

AuthentikConnection describes how to reach one authentik instance, using an API token stored in the same namespace.

Field Description Default Validation
apiVersion string authentik.k8s.rka.sh/v1alpha1
kind string AuthentikConnection
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec AuthentikConnectionSpec
status AuthentikConnectionStatus

AuthentikConnectionSpec

AuthentikConnectionSpec defines a connection to an authentik instance, using credentials held in the same namespace.

Appears in: - AuthentikConnection

Field Description Default Validation
url string URL is the base URL of the authentik instance, for example
https://authentik.example.com. Do not include the /api/v3 suffix.
MinLength: 1
Pattern: ^https?://
insecureSkipTLSVerify boolean InsecureSkipTLSVerify disables verification of the authentik server's TLS
certificate. Intended for local testing against a self-signed instance;
prefer caBundleSecretRef anywhere else.
false Optional: {}
probeInterval Duration ProbeInterval is how often the connection is re-checked for reachability. 5m Pattern: ^([0-9]+(s\|m\|h))+$
Type: string
Optional: {}
tokenSecretRef LocalSecretKeyReference TokenSecretRef points at a Secret in this object's own namespace holding
an authentik API token.
caBundleSecretRef LocalSecretKeyReference CABundleSecretRef optionally points at a Secret in this object's own
namespace holding a PEM CA bundle used to verify the authentik server.
Optional: {}

AuthentikConnectionStatus

AuthentikConnectionStatus reports reachability and version compatibility.

Appears in: - AuthentikConnection - ClusterAuthentikConnection

Field Description Default Validation
conditions Condition array Conditions describe the current state of the connection. Optional: {}
observedGeneration integer ObservedGeneration is the .metadata.generation this status reflects. Optional: {}
authentikVersion string AuthentikVersion is the version reported by the instance, e.g. "2026.8.2". Optional: {}
versionSupported boolean VersionSupported reports whether AuthentikVersion falls within the range
this operator is tested against. When false, dependent resources refuse to
reconcile rather than failing obscurely deep inside an API call.
Optional: {}
lastProbeTime Time LastProbeTime is when the instance was last contacted. Optional: {}

ClusterAuthentikConnection

ClusterAuthentikConnection describes how to reach one authentik instance, usable from any namespace.

Field Description Default Validation
apiVersion string authentik.k8s.rka.sh/v1alpha1
kind string ClusterAuthentikConnection
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ClusterAuthentikConnectionSpec
status AuthentikConnectionStatus

ClusterAuthentikConnectionSpec

ClusterAuthentikConnectionSpec defines a cluster-wide connection to an authentik instance.

SECURITY: because this object is cluster-scoped it must name the namespace holding its credentials explicitly, which means it can reference a Secret anywhere in the cluster. Permission to create or edit one of these is therefore close to a cluster-admin privilege, and RBAC for it should be granted accordingly. See SECURITY.md.

Appears in: - ClusterAuthentikConnection

Field Description Default Validation
url string URL is the base URL of the authentik instance, for example
https://authentik.example.com. Do not include the /api/v3 suffix.
MinLength: 1
Pattern: ^https?://
insecureSkipTLSVerify boolean InsecureSkipTLSVerify disables verification of the authentik server's TLS
certificate. Intended for local testing against a self-signed instance;
prefer caBundleSecretRef anywhere else.
false Optional: {}
probeInterval Duration ProbeInterval is how often the connection is re-checked for reachability. 5m Pattern: ^([0-9]+(s\|m\|h))+$
Type: string
Optional: {}
tokenSecretRef SecretKeyReference TokenSecretRef points at a Secret holding an authentik API token. The
namespace is required and is the only place the token is read from; the
namespace of a resource referring to this connection is never consulted.
caBundleSecretRef SecretKeyReference CABundleSecretRef optionally points at a Secret holding a PEM CA bundle
used to verify the authentik server.
Optional: {}
allowedNamespaces string array AllowedNamespaces optionally restricts which namespaces may reference this
connection. An empty list means every namespace may use it.
Without this, any user who can create a resource in any namespace can
drive an authentik instance they were never granted access to.
Optional: {}

ConnectionKind

Underlying type: string

ConnectionKind selects which connection CRD a ConnectionReference points at.

Validation: - Enum: [AuthentikConnection ClusterAuthentikConnection]

Appears in: - ConnectionReference

Field Description
AuthentikConnection ConnectionKindNamespaced refers to a namespaced AuthentikConnection.
ClusterAuthentikConnection ConnectionKindCluster refers to a cluster-scoped ClusterAuthentikConnection.

ConnectionReference

ConnectionReference points at the authentik instance a resource belongs to.

A namespaced AuthentikConnection is always resolved in the referring resource's own namespace. Cross-namespace references are deliberately not supported: they would let anyone who can create a resource in one namespace borrow credentials from another. Use a ClusterAuthentikConnection when a connection genuinely needs to be shared cluster-wide.

Appears in: - ApplicationSpec - DockerServiceConnectionSpec - KubernetesServiceConnectionSpec - OAuth2ProviderSpec - OutpostSpec - ProviderCommonSpec - ProxyProviderSpec - SAMLProviderSpec - ServiceConnectionCommonSpec

Field Description Default Validation
kind ConnectionKind Kind of connection object being referenced. AuthentikConnection Enum: [AuthentikConnection ClusterAuthentikConnection]
Optional: {}
name string Name of the connection object. MinLength: 1

ConnectionSettings

ConnectionSettings holds the transport configuration shared by the namespaced and cluster-scoped connection kinds.

Appears in: - AuthentikConnectionSpec - ClusterAuthentikConnectionSpec

Field Description Default Validation
url string URL is the base URL of the authentik instance, for example
https://authentik.example.com. Do not include the /api/v3 suffix.
MinLength: 1
Pattern: ^https?://
insecureSkipTLSVerify boolean InsecureSkipTLSVerify disables verification of the authentik server's TLS
certificate. Intended for local testing against a self-signed instance;
prefer caBundleSecretRef anywhere else.
false Optional: {}
probeInterval Duration ProbeInterval is how often the connection is re-checked for reachability. 5m Pattern: ^([0-9]+(s\|m\|h))+$
Type: string
Optional: {}

CredentialsSecretRef

CredentialsSecretRef says where to write the generated client credentials.

Appears in: - OAuth2ProviderSpec

Field Description Default Validation
name string Name of the Secret to create in this resource's namespace. MinLength: 1
clientIDKey string ClientIDKey is the Secret key holding the client id. client-id Optional: {}
clientSecretKey string ClientSecretKey is the Secret key holding the client secret. client-secret Optional: {}
issuerKey string IssuerKey optionally holds the provider's issuer URL, which most OIDC
clients need alongside the credentials.
issuer Optional: {}

DeletionPolicy

Underlying type: string

DeletionPolicy controls what happens to the authentik object when the Kubernetes resource that manages it is deleted.

Validation: - Enum: [Delete Orphan]

Appears in: - ApplicationSpec - DockerServiceConnectionSpec - KubernetesServiceConnectionSpec - OAuth2ProviderSpec - OutpostSpec - ProviderCommonSpec - ProxyProviderSpec - SAMLProviderSpec - ServiceConnectionCommonSpec

Field Description
Delete DeletionPolicyDelete removes the authentik object along with the resource.
Orphan DeletionPolicyOrphan leaves the authentik object in place.

DockerServiceConnection

DockerServiceConnection manages a Docker outpost service connection in authentik.

Field Description Default Validation
apiVersion string authentik.k8s.rka.sh/v1alpha1
kind string DockerServiceConnection
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec DockerServiceConnectionSpec
status DockerServiceConnectionStatus

DockerServiceConnectionSpec

DockerServiceConnectionSpec defines a Docker service connection.

Either authentik talks to the Docker socket it is mounted with, in which case local is set, or it dials an explicit URL. Setting both is rejected, because it hides which of the two endpoints is actually in use.

Appears in: - DockerServiceConnection

Field Description Default Validation
connectionRef ConnectionReference ConnectionRef selects the authentik instance this service connection
lives in.
name string Name is the service connection's name in authentik. Defaults to the
resource name.
Optional: {}
adoptionPolicy AdoptionPolicy AdoptionPolicy controls what happens when a service connection with this
name already exists in authentik.
FailOnConflict Enum: [FailOnConflict AdoptExisting]
Optional: {}
deletionPolicy DeletionPolicy DeletionPolicy controls what happens to the authentik service connection
when this resource is deleted.
Delete Enum: [Delete Orphan]
Optional: {}
local boolean Local makes authentik use the Docker socket mounted into its own
container instead of dialling a URL.
Optional: {}
url string URL of the Docker daemon, either "unix:///var/run/docker.sock" for a
local socket or "https://hostname:2376" for a remote daemon.
Optional: {}
tlsVerification string TLSVerification is the name of the certificate key pair holding the CA
the daemon's certificate is checked against. Leave unset for no
verification.
Optional: {}
tlsAuthentication string TLSAuthentication is the name of the certificate key pair used as a
client certificate when authenticating to the daemon. Leave unset for no
client authentication.
Optional: {}

DockerServiceConnectionStatus

DockerServiceConnectionStatus reports the connection's state in authentik.

Appears in: - DockerServiceConnection

Field Description Default Validation
conditions Condition array Conditions describe the current state of the resource. Optional: {}
observedGeneration integer ObservedGeneration is the .metadata.generation this status reflects. Optional: {}
remoteID string RemoteID is authentik's own identifier for the managed object: a numeric
primary key for providers and applications, a UUID elsewhere.
Once set this is the authoritative handle for the object. Lookups prefer
it over the name, so that renaming the object on either side does not
cause the operator to lose track of it and create a duplicate.
Optional: {}
remoteName string RemoteName is the name or slug last observed in authentik. Informational. Optional: {}
adopted boolean Adopted records that this resource took over a pre-existing authentik
object rather than creating it.
Optional: {}
lastSyncedTime Time LastSyncedTime is when the resource last reconciled successfully. Optional: {}
serviceConnectionID string ServiceConnectionID is authentik's UUID for this service connection. It
is what an Outpost's serviceConnectionRef ultimately resolves to, so it
is surfaced separately from the generic RemoteID string.
Optional: {}

KubernetesServiceConnection

KubernetesServiceConnection manages a Kubernetes outpost service connection in authentik.

Field Description Default Validation
apiVersion string authentik.k8s.rka.sh/v1alpha1
kind string KubernetesServiceConnection
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec KubernetesServiceConnectionSpec
status KubernetesServiceConnectionStatus

KubernetesServiceConnectionSpec

KubernetesServiceConnectionSpec defines a Kubernetes service connection.

Either authentik runs inside the cluster it should deploy outposts into, in which case local is set and its own service account is used, or it needs a kubeconfig for a remote cluster. Setting both is rejected, because it hides which of the two credentials is actually in use.

Appears in: - KubernetesServiceConnection

Field Description Default Validation
connectionRef ConnectionReference ConnectionRef selects the authentik instance this service connection
lives in.
name string Name is the service connection's name in authentik. Defaults to the
resource name.
Optional: {}
adoptionPolicy AdoptionPolicy AdoptionPolicy controls what happens when a service connection with this
name already exists in authentik.
FailOnConflict Enum: [FailOnConflict AdoptExisting]
Optional: {}
deletionPolicy DeletionPolicy DeletionPolicy controls what happens to the authentik service connection
when this resource is deleted.
Delete Enum: [Delete Orphan]
Optional: {}
local boolean Local makes authentik use the cluster it is itself running in, through
its own service account, instead of a kubeconfig.
Optional: {}
kubeconfigSecretRef LocalSecretKeyReference KubeconfigSecretRef reads the kubeconfig for a remote cluster from a
Secret in this resource's namespace.
A kubeconfig is never accepted inline: it is a cluster credential, and a
spec field would store it in plain text in etcd and print it in
kubectl get -o yaml.
Optional: {}
verifySSL boolean VerifySSL verifies the certificate presented by the Kubernetes API
endpoint. Defaults to true in authentik.
Optional: {}

KubernetesServiceConnectionStatus

KubernetesServiceConnectionStatus reports the connection's state in authentik.

Appears in: - KubernetesServiceConnection

Field Description Default Validation
conditions Condition array Conditions describe the current state of the resource. Optional: {}
observedGeneration integer ObservedGeneration is the .metadata.generation this status reflects. Optional: {}
remoteID string RemoteID is authentik's own identifier for the managed object: a numeric
primary key for providers and applications, a UUID elsewhere.
Once set this is the authoritative handle for the object. Lookups prefer
it over the name, so that renaming the object on either side does not
cause the operator to lose track of it and create a duplicate.
Optional: {}
remoteName string RemoteName is the name or slug last observed in authentik. Informational. Optional: {}
adopted boolean Adopted records that this resource took over a pre-existing authentik
object rather than creating it.
Optional: {}
lastSyncedTime Time LastSyncedTime is when the resource last reconciled successfully. Optional: {}
serviceConnectionID string ServiceConnectionID is authentik's UUID for this service connection. It
is what an Outpost's serviceConnectionRef ultimately resolves to, so it
is surfaced separately from the generic RemoteID string.
Optional: {}

LocalSecretKeyReference

LocalSecretKeyReference selects one key of a Secret in the same namespace as the referring object.

Appears in: - AuthentikConnectionSpec - KubernetesServiceConnectionSpec - OAuth2ProviderSpec

Field Description Default Validation
name string Name of the Secret. MinLength: 1
key string Key within the Secret's data. MinLength: 1

ManagedResourceStatus

ManagedResourceStatus is embedded in every authentik-backed resource status.

Appears in: - ApplicationStatus - DockerServiceConnectionStatus - KubernetesServiceConnectionStatus - OAuth2ProviderStatus - OutpostStatus - ProviderStatus - ProxyProviderStatus - SAMLProviderStatus - ServiceConnectionStatus

Field Description Default Validation
conditions Condition array Conditions describe the current state of the resource. Optional: {}
observedGeneration integer ObservedGeneration is the .metadata.generation this status reflects. Optional: {}
remoteID string RemoteID is authentik's own identifier for the managed object: a numeric
primary key for providers and applications, a UUID elsewhere.
Once set this is the authoritative handle for the object. Lookups prefer
it over the name, so that renaming the object on either side does not
cause the operator to lose track of it and create a duplicate.
Optional: {}
remoteName string RemoteName is the name or slug last observed in authentik. Informational. Optional: {}
adopted boolean Adopted records that this resource took over a pre-existing authentik
object rather than creating it.
Optional: {}
lastSyncedTime Time LastSyncedTime is when the resource last reconciled successfully. Optional: {}

OAuth2GrantType

Underlying type: string

OAuth2GrantType is an OAuth2 grant the provider will issue tokens for.

This is a named type rather than a marker on the slice field because controller-gen applies an enum marker to the array itself in that case, producing a schema that rejects every non-empty list.

The urn: values contain colons, which the marker parser reads as argument separators unless each value is quoted.

Validation: - Enum: [authorization_code implicit hybrid refresh_token client_credentials password urn:ietf:params:oauth:grant-type:device_code urn:ietf:params:oauth:grant-type:token-exchange]

Appears in: - OAuth2ProviderSpec

OAuth2Provider

OAuth2Provider manages an OAuth2/OpenID Connect provider in authentik.

Field Description Default Validation
apiVersion string authentik.k8s.rka.sh/v1alpha1
kind string OAuth2Provider
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec OAuth2ProviderSpec
status OAuth2ProviderStatus

OAuth2ProviderSpec

OAuth2ProviderSpec defines an OAuth2/OpenID Connect provider.

Appears in: - OAuth2Provider

Field Description Default Validation
connectionRef ConnectionReference ConnectionRef selects the authentik instance this provider lives in.
name string Name is the provider's name in authentik. Defaults to the resource name. Optional: {}
authorizationFlow string AuthorizationFlow is the slug of the flow used when authorizing this
provider.
MinLength: 1
invalidationFlow string InvalidationFlow is the slug of the flow used when ending a session. MinLength: 1
authenticationFlow string AuthenticationFlow is the slug of the flow used to authenticate a user
who reaches the application unauthenticated. Leave unset to use
authentik's default.
Optional: {}
propertyMappings string array PropertyMappings are the names of property mappings to attach. Optional: {}
adoptionPolicy AdoptionPolicy AdoptionPolicy controls what happens when a provider with this name
already exists in authentik.
FailOnConflict Enum: [FailOnConflict AdoptExisting]
Optional: {}
deletionPolicy DeletionPolicy DeletionPolicy controls what happens to the authentik provider when this
resource is deleted.
Delete Enum: [Delete Orphan]
Optional: {}
clientType string ClientType is confidential for clients that can keep a secret, public
for those that cannot (SPAs, native apps).
confidential Enum: [confidential public]
Optional: {}
grantTypes OAuth2GrantType array GrantTypes the provider will issue tokens for. Enum: [authorization_code implicit hybrid refresh_token client_credentials password urn:ietf:params:oauth:grant-type:device_code urn:ietf:params:oauth:grant-type:token-exchange]
Optional: {}
clientID string ClientID to use. When empty authentik generates one. Optional: {}
clientSecretRef LocalSecretKeyReference ClientSecretRef reads a fixed client secret from a Secret in this
namespace. When unset, authentik generates a secret.
A secret is never accepted inline: putting one in a spec field would
store it in plain text in etcd and print it in kubectl get -o yaml.
Optional: {}
writeCredentialsTo CredentialsSecretRef WriteCredentialsTo creates a Secret holding the client id and secret, so
the workload that needs them can mount it. This is usually the point of
creating the provider in the first place.
Optional: {}
redirectURIs RedirectURI array RedirectURIs permitted for this client. Optional: {}
accessCodeValidity string AccessCodeValidity in authentik duration syntax, e.g. "minutes=1". Pattern: ^(((microseconds\|milliseconds\|seconds\|minutes\|hours\|days\|weeks)=-?\d+);?)+$
Optional: {}
accessTokenValidity string AccessTokenValidity in authentik duration syntax, e.g. "hours=1". Pattern: ^(((microseconds\|milliseconds\|seconds\|minutes\|hours\|days\|weeks)=-?\d+);?)+$
Optional: {}
refreshTokenValidity string RefreshTokenValidity in authentik duration syntax, e.g. "days=30". Pattern: ^(((microseconds\|milliseconds\|seconds\|minutes\|hours\|days\|weeks)=-?\d+);?)+$
Optional: {}
includeClaimsInIDToken boolean IncludeClaimsInIDToken embeds scope claims in the id_token, for clients
that never call the userinfo endpoint.
Optional: {}
signingKey string SigningKey is the name of the certificate key pair used to sign tokens. Optional: {}
encryptionKey string EncryptionKey is the name of the certificate key pair used to encrypt
tokens. When set, tokens are returned as JWEs.
Optional: {}
subMode string SubMode selects what the sub claim contains. Enum: [hashed_user_id user_id user_uuid user_username user_email user_upn]
Optional: {}
issuerMode string IssuerMode selects how the issuer field is built. Enum: [global per_provider]
Optional: {}
logoutURI string LogoutURI is called on logout. Optional: {}
logoutMethod string LogoutMethod selects back-channel or front-channel logout. Enum: [backchannel frontchannel]
Optional: {}

OAuth2ProviderStatus

OAuth2ProviderStatus reports the provider's state in authentik.

Appears in: - OAuth2Provider

Field Description Default Validation
conditions Condition array Conditions describe the current state of the resource. Optional: {}
observedGeneration integer ObservedGeneration is the .metadata.generation this status reflects. Optional: {}
remoteID string RemoteID is authentik's own identifier for the managed object: a numeric
primary key for providers and applications, a UUID elsewhere.
Once set this is the authoritative handle for the object. Lookups prefer
it over the name, so that renaming the object on either side does not
cause the operator to lose track of it and create a duplicate.
Optional: {}
remoteName string RemoteName is the name or slug last observed in authentik. Informational. Optional: {}
adopted boolean Adopted records that this resource took over a pre-existing authentik
object rather than creating it.
Optional: {}
lastSyncedTime Time LastSyncedTime is when the resource last reconciled successfully. Optional: {}
providerID integer ProviderID is authentik's numeric primary key for this provider. It is
what an Application or Outpost must reference, so it is surfaced
separately from the generic RemoteID string.
Optional: {}
clientID string ClientID currently configured in authentik. The client id is not a
credential on its own, so it is safe to surface; the secret never is.
Optional: {}
credentialsSecretName string CredentialsSecretName is the Secret the credentials were written to. Optional: {}
credentialsRotatedAt Time CredentialsRotatedAt records the last client secret rotation. Optional: {}
observedRotationToken string ObservedRotationToken is the value of the rotation annotation that was
last acted on. A rotation happens when the annotation differs from this,
which makes the trigger idempotent: re-reconciling the same resource
cannot rotate the secret again and break running workloads.
Optional: {}

Outpost

Outpost manages an authentik outpost and the set of providers it serves.

Field Description Default Validation
apiVersion string authentik.k8s.rka.sh/v1alpha1
kind string Outpost
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec OutpostSpec
status OutpostStatus

OutpostSpec

OutpostSpec defines an authentik outpost.

Appears in: - Outpost

Field Description Default Validation
connectionRef ConnectionReference ConnectionRef selects the authentik instance this outpost is registered
with.
name string Name is the outpost's name in authentik. Defaults to the resource name. Optional: {}
type OutpostType Type selects which outpost implementation authentik registers. Enum: [proxy ldap radius rac]
providerRefs ProviderReference array ProviderRefs are the providers this outpost serves. Every reference must
resolve before the outpost is registered or updated.
Optional: {}
serviceConnectionRef string ServiceConnectionRef is the name, or UUID, of the service connection
authentik should use to deploy this outpost. Leave unset to register the
outpost without letting authentik manage its deployment, which is what a
self-hosted outpost wants.
Optional: {}
config object (keys:string, values:JSON) Config is passed to authentik verbatim as the outpost's configuration.
The schema differs per outpost type and per authentik version, so it is
deliberately not modelled here.
Well-known keys include: "log_level", "authentik_host",
"authentik_host_browser", "authentik_host_insecure",
"object_naming_template", "refresh_interval", "kubernetes_replicas",
"kubernetes_namespace", "kubernetes_service_type",
"kubernetes_ingress_class_name", "kubernetes_ingress_annotations",
"kubernetes_ingress_secret_name", "kubernetes_image_pull_secrets",
"kubernetes_json_patches", "kubernetes_disabled_components",
"docker_network", "docker_map_ports", "docker_labels" and "docker_image".
Consult the authentik documentation for the set your version accepts.
Optional: {}
writeTokenTo OutpostTokenSecretRef WriteTokenTo creates a Secret holding the outpost's API token and the
authentik base URL, which is what a self-hosted outpost needs in order to
connect back. Leave unset when authentik deploys the outpost itself.
Optional: {}
adoptionPolicy AdoptionPolicy AdoptionPolicy controls what happens when an outpost with this name
already exists in authentik.
FailOnConflict Enum: [FailOnConflict AdoptExisting]
Optional: {}
deletionPolicy DeletionPolicy DeletionPolicy controls what happens to the authentik outpost when this
resource is deleted.
Delete Enum: [Delete Orphan]
Optional: {}

OutpostStatus

OutpostStatus reports the outpost's state in authentik.

Appears in: - Outpost

Field Description Default Validation
conditions Condition array Conditions describe the current state of the resource. Optional: {}
observedGeneration integer ObservedGeneration is the .metadata.generation this status reflects. Optional: {}
remoteID string RemoteID is authentik's own identifier for the managed object: a numeric
primary key for providers and applications, a UUID elsewhere.
Once set this is the authoritative handle for the object. Lookups prefer
it over the name, so that renaming the object on either side does not
cause the operator to lose track of it and create a duplicate.
Optional: {}
remoteName string RemoteName is the name or slug last observed in authentik. Informational. Optional: {}
adopted boolean Adopted records that this resource took over a pre-existing authentik
object rather than creating it.
Optional: {}
lastSyncedTime Time LastSyncedTime is when the resource last reconciled successfully. Optional: {}
outpostID string OutpostID is authentik's UUID for this outpost. Optional: {}
providerIDs integer array ProviderIDs are the authentik primary keys every providerRef resolved
to, in spec order. It is empty until all of them resolve.
Optional: {}
serviceConnectionID string ServiceConnectionID is the UUID serviceConnectionRef resolved to. Optional: {}
tokenIdentifier string TokenIdentifier names the authentik token this outpost authenticates
with. It is an identifier, not the token itself, which is never placed
in status.
Optional: {}
tokenSecretName string TokenSecretName is the Secret the outpost token was written to. Optional: {}

OutpostTokenSecretRef

OutpostTokenSecretRef says where to write the outpost's connection token.

Appears in: - OutpostSpec

Field Description Default Validation
name string Name of the Secret to create in this resource's namespace. MinLength: 1
tokenKey string TokenKey is the Secret key holding the outpost API token, which a
self-hosted outpost passes as AUTHENTIK_TOKEN.
token Optional: {}
hostKey string HostKey is the Secret key holding the authentik base URL, which a
self-hosted outpost passes as AUTHENTIK_HOST.
authentik-host Optional: {}

OutpostType

Underlying type: string

OutpostType selects which authentik outpost implementation to register.

Validation: - Enum: [proxy ldap radius rac]

Appears in: - OutpostSpec

Field Description
proxy OutpostTypeProxy is a forward-auth / reverse proxy outpost.
ldap OutpostTypeLDAP is an LDAP outpost.
radius OutpostTypeRadius is a RADIUS outpost.
rac OutpostTypeRAC is a Remote Access Control outpost.

ProviderCommonSpec

ProviderCommonSpec holds the fields every authentik provider shares.

authentik takes flows, property mappings and certificate key pairs as UUIDs. These fields accept the human-readable slug or name instead and the operator resolves them, because nobody wants to paste UUIDs into version control. A value that already looks like a UUID is passed through unchanged, so either form works.

Appears in: - OAuth2ProviderSpec - ProxyProviderSpec - SAMLProviderSpec

Field Description Default Validation
connectionRef ConnectionReference ConnectionRef selects the authentik instance this provider lives in.
name string Name is the provider's name in authentik. Defaults to the resource name. Optional: {}
authorizationFlow string AuthorizationFlow is the slug of the flow used when authorizing this
provider.
MinLength: 1
invalidationFlow string InvalidationFlow is the slug of the flow used when ending a session. MinLength: 1
authenticationFlow string AuthenticationFlow is the slug of the flow used to authenticate a user
who reaches the application unauthenticated. Leave unset to use
authentik's default.
Optional: {}
propertyMappings string array PropertyMappings are the names of property mappings to attach. Optional: {}
adoptionPolicy AdoptionPolicy AdoptionPolicy controls what happens when a provider with this name
already exists in authentik.
FailOnConflict Enum: [FailOnConflict AdoptExisting]
Optional: {}
deletionPolicy DeletionPolicy DeletionPolicy controls what happens to the authentik provider when this
resource is deleted.
Delete Enum: [Delete Orphan]
Optional: {}

ProviderKind

Underlying type: string

ProviderKind selects which provider CRD a ProviderReference points at.

Validation: - Enum: [OAuth2Provider SAMLProvider ProxyProvider]

Appears in: - ProviderReference

Field Description
OAuth2Provider ProviderKindOAuth2 refers to an OAuth2Provider.
SAMLProvider ProviderKindSAML refers to a SAMLProvider.
ProxyProvider ProviderKindProxy refers to a ProxyProvider.

ProviderReference

ProviderReference points at a provider resource in the same namespace.

Declared here but shared with Outpost, which references providers the same way. It lives in this file rather than a shared one only because Application was the first consumer.

The reference is resolved through the provider resource's own status.providerID rather than by looking its name up in authentik, so the Kubernetes objects stay the source of truth and renaming a provider inside authentik cannot silently repoint an application at something else.

A namespaced provider is always resolved in the application's own namespace. Cross-namespace references are deliberately not supported: they would let anyone who can create a referring resource in one namespace attach a provider, and therefore credentials, owned by another.

Appears in: - ApplicationSpec - OutpostSpec

Field Description Default Validation
kind ProviderKind Kind of provider resource being referenced. OAuth2Provider Enum: [OAuth2Provider SAMLProvider ProxyProvider]
Optional: {}
name string Name of the provider resource. MinLength: 1

ProviderStatus

ProviderStatus is the status shared by every provider kind.

Appears in: - OAuth2ProviderStatus - ProxyProviderStatus - SAMLProviderStatus

Field Description Default Validation
conditions Condition array Conditions describe the current state of the resource. Optional: {}
observedGeneration integer ObservedGeneration is the .metadata.generation this status reflects. Optional: {}
remoteID string RemoteID is authentik's own identifier for the managed object: a numeric
primary key for providers and applications, a UUID elsewhere.
Once set this is the authoritative handle for the object. Lookups prefer
it over the name, so that renaming the object on either side does not
cause the operator to lose track of it and create a duplicate.
Optional: {}
remoteName string RemoteName is the name or slug last observed in authentik. Informational. Optional: {}
adopted boolean Adopted records that this resource took over a pre-existing authentik
object rather than creating it.
Optional: {}
lastSyncedTime Time LastSyncedTime is when the resource last reconciled successfully. Optional: {}
providerID integer ProviderID is authentik's numeric primary key for this provider. It is
what an Application or Outpost must reference, so it is surfaced
separately from the generic RemoteID string.
Optional: {}

ProxyMode

Underlying type: string

ProxyMode selects how the outpost serves the application.

Validation: - Enum: [proxy forward_single forward_domain]

Appears in: - ProxyProviderSpec

Field Description
proxy ProxyModeProxy terminates traffic in the outpost and forwards it to an
upstream host.
forward_single ProxyModeForwardSingle authorizes one application behind an existing
reverse proxy.
forward_domain ProxyModeForwardDomain authorizes every application on a domain behind
an existing reverse proxy.

ProxyProvider

ProxyProvider manages a proxy provider in authentik.

Field Description Default Validation
apiVersion string authentik.k8s.rka.sh/v1alpha1
kind string ProxyProvider
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec ProxyProviderSpec
status ProxyProviderStatus

ProxyProviderSpec

ProxyProviderSpec defines a proxy provider served by an authentik outpost.

The forwarding modes have no upstream of their own: an existing reverse proxy already holds the connection and only asks authentik whether to allow it. Rejecting the combination here turns a silently ignored field into an error on apply. The emptiness test uses size() rather than a comparison against an empty string literal: a pair of adjacent single quotes inside a comment is rewritten by gofmt into a typographic quote, which silently corrupts the rule.

Appears in: - ProxyProvider

Field Description Default Validation
connectionRef ConnectionReference ConnectionRef selects the authentik instance this provider lives in.
name string Name is the provider's name in authentik. Defaults to the resource name. Optional: {}
authorizationFlow string AuthorizationFlow is the slug of the flow used when authorizing this
provider.
MinLength: 1
invalidationFlow string InvalidationFlow is the slug of the flow used when ending a session. MinLength: 1
authenticationFlow string AuthenticationFlow is the slug of the flow used to authenticate a user
who reaches the application unauthenticated. Leave unset to use
authentik's default.
Optional: {}
propertyMappings string array PropertyMappings are the names of property mappings to attach. Optional: {}
adoptionPolicy AdoptionPolicy AdoptionPolicy controls what happens when a provider with this name
already exists in authentik.
FailOnConflict Enum: [FailOnConflict AdoptExisting]
Optional: {}
deletionPolicy DeletionPolicy DeletionPolicy controls what happens to the authentik provider when this
resource is deleted.
Delete Enum: [Delete Orphan]
Optional: {}
externalHost string ExternalHost is the URL the application is reached on by users, for
example "https://grafana.example.com". It is what the outpost matches
incoming requests against.
MinLength: 1
internalHost string InternalHost is the upstream the outpost forwards traffic to, for
example "http://grafana.monitoring.svc.cluster.local:3000". Valid only
in proxy mode.
Optional: {}
internalHostSSLValidation boolean InternalHostSSLValidation verifies the upstream's TLS certificate.
Disable it only for an upstream using a self-signed certificate.
Optional: {}
mode ProxyMode Mode selects how the outpost serves the application: proxy terminates
traffic and forwards it upstream, while the forward modes authorize
requests for an existing reverse proxy.
proxy Enum: [proxy forward_single forward_domain]
Optional: {}
certificate string Certificate is the name of the certificate key pair the outpost presents
for ExternalHost. Leave unset when TLS is terminated ahead of the
outpost.
Optional: {}
skipPathRegex string SkipPathRegex lists paths that bypass authentication, one regular
expression per line. Use it for health checks and public assets.
Every request matching one of these expressions reaches the application
unauthenticated, so keep the expressions anchored and narrow.
Optional: {}
basicAuthEnabled boolean BasicAuthEnabled sends HTTP Basic credentials to the upstream, for
applications that cannot read authentication headers.
Optional: {}
basicAuthUserAttribute string BasicAuthUserAttribute is the user attribute holding the username sent
as HTTP Basic credentials.
Optional: {}
basicAuthPasswordAttribute string BasicAuthPasswordAttribute is the user attribute holding the password
sent as HTTP Basic credentials.
Optional: {}
interceptHeaderAuth boolean InterceptHeaderAuth makes the outpost handle Authorization headers sent
by the client instead of passing them through to the application.
Optional: {}
cookieDomain string CookieDomain is the domain the session cookie is issued for. Set it in
forward_domain mode so one session covers every application on the
domain.
Optional: {}
accessTokenValidity string AccessTokenValidity in authentik duration syntax, e.g. "hours=24". Pattern: ^(((microseconds\|milliseconds\|seconds\|minutes\|hours\|days\|weeks)=-?\d+);?)+$
Optional: {}
refreshTokenValidity string RefreshTokenValidity in authentik duration syntax, e.g. "days=30". Pattern: ^(((microseconds\|milliseconds\|seconds\|minutes\|hours\|days\|weeks)=-?\d+);?)+$
Optional: {}

ProxyProviderStatus

ProxyProviderStatus reports the provider's state in authentik.

Appears in: - ProxyProvider

Field Description Default Validation
conditions Condition array Conditions describe the current state of the resource. Optional: {}
observedGeneration integer ObservedGeneration is the .metadata.generation this status reflects. Optional: {}
remoteID string RemoteID is authentik's own identifier for the managed object: a numeric
primary key for providers and applications, a UUID elsewhere.
Once set this is the authoritative handle for the object. Lookups prefer
it over the name, so that renaming the object on either side does not
cause the operator to lose track of it and create a duplicate.
Optional: {}
remoteName string RemoteName is the name or slug last observed in authentik. Informational. Optional: {}
adopted boolean Adopted records that this resource took over a pre-existing authentik
object rather than creating it.
Optional: {}
lastSyncedTime Time LastSyncedTime is when the resource last reconciled successfully. Optional: {}
providerID integer ProviderID is authentik's numeric primary key for this provider. It is
what an Application or Outpost must reference, so it is surfaced
separately from the generic RemoteID string.
Optional: {}
outposts string array Outposts names the outposts currently serving this provider. A proxy
provider that no outpost serves is unreachable, so an empty list is the
usual explanation for an application that cannot be opened.
Optional: {}

RedirectURI

RedirectURI is one permitted OAuth2 redirect target.

Appears in: - OAuth2ProviderSpec

Field Description Default Validation
matchingMode RedirectURIMatchingMode MatchingMode selects exact or regular-expression matching. strict Enum: [strict regex]
Optional: {}
url string URL is the redirect URI, or a regular expression matching one. MinLength: 1

RedirectURIMatchingMode

Underlying type: string

RedirectURIMatchingMode controls how a redirect URI is matched.

Validation: - Enum: [strict regex]

Appears in: - RedirectURI

SAMLBinding

Underlying type: string

SAMLBinding selects how a SAML message is carried over HTTP.

Validation: - Enum: [redirect post]

Appears in: - SAMLProviderSpec

SAMLDigestAlgorithm

Underlying type: string

SAMLDigestAlgorithm identifies the XML digest algorithm by its W3C URI.

SAML carries algorithms as URIs on the wire, so the URI is what this field takes; there is no short form.

The values contain colons, which the marker parser reads as argument separators unless each value is quoted.

Validation: - Enum: [http://www.w3.org/2000/09/xmldsig#sha1 http://www.w3.org/2001/04/xmlenc#sha256 http://www.w3.org/2001/04/xmldsig-more#sha384 http://www.w3.org/2001/04/xmlenc#sha512]

Appears in: - SAMLProviderSpec

SAMLLogoutMethod

Underlying type: string

SAMLLogoutMethod selects how single logout is delivered.

Validation: - Enum: [frontchannel_iframe frontchannel_native backchannel]

Appears in: - SAMLProviderSpec

SAMLNameIDPolicy

Underlying type: string

SAMLNameIDPolicy is the NameID format requested when a service provider does not ask for one itself.

Validation: - Enum: [urn:oasis:names🇹🇨SAML:1.1:nameid-format:emailAddress urn:oasis:names🇹🇨SAML:2.0:nameid-format:persistent urn:oasis:names🇹🇨SAML:1.1:nameid-format:X509SubjectName urn:oasis:names🇹🇨SAML:2.0:nameid-format:WindowsDomainQualifiedName urn:oasis:names🇹🇨SAML:2.0:nameid-format:transient urn:oasis:names🇹🇨SAML:1.1:nameid-format:unspecified]

Appears in: - SAMLProviderSpec

SAMLProvider

SAMLProvider manages a SAML 2.0 provider in authentik.

Field Description Default Validation
apiVersion string authentik.k8s.rka.sh/v1alpha1
kind string SAMLProvider
metadata ObjectMeta Refer to Kubernetes API documentation for fields of metadata.
spec SAMLProviderSpec
status SAMLProviderStatus

SAMLProviderSpec

SAMLProviderSpec defines a SAML 2.0 identity provider.

Appears in: - SAMLProvider

Field Description Default Validation
connectionRef ConnectionReference ConnectionRef selects the authentik instance this provider lives in.
name string Name is the provider's name in authentik. Defaults to the resource name. Optional: {}
authorizationFlow string AuthorizationFlow is the slug of the flow used when authorizing this
provider.
MinLength: 1
invalidationFlow string InvalidationFlow is the slug of the flow used when ending a session. MinLength: 1
authenticationFlow string AuthenticationFlow is the slug of the flow used to authenticate a user
who reaches the application unauthenticated. Leave unset to use
authentik's default.
Optional: {}
propertyMappings string array PropertyMappings are the names of property mappings to attach. Optional: {}
adoptionPolicy AdoptionPolicy AdoptionPolicy controls what happens when a provider with this name
already exists in authentik.
FailOnConflict Enum: [FailOnConflict AdoptExisting]
Optional: {}
deletionPolicy DeletionPolicy DeletionPolicy controls what happens to the authentik provider when this
resource is deleted.
Delete Enum: [Delete Orphan]
Optional: {}
acsURL string ACSURL is the service provider's Assertion Consumer Service endpoint,
where authentik posts the SAML response.
MinLength: 1
slsURL string SLSURL is the service provider's Single Logout Service endpoint. Leave
unset to disable single logout.
Optional: {}
audience string Audience is the intended recipient of the assertion, sent as the
AudienceRestriction. Most service providers require it to match their
own entity ID.
Optional: {}
issuerOverride string IssuerOverride replaces the issuer sent in the assertion. Set it when a
service provider expects an entity ID other than the one authentik
derives from the provider.
Optional: {}
assertionValidNotBefore string AssertionValidNotBefore is how far in the past an assertion becomes
valid, in authentik duration syntax, e.g. "minutes=-5". A negative
window absorbs clock skew between authentik and the service provider.
Pattern: ^(((microseconds\|milliseconds\|seconds\|minutes\|hours\|days\|weeks)=-?\d+);?)+$
Optional: {}
assertionValidNotOnOrAfter string AssertionValidNotOnOrAfter is how long an assertion stays valid, in
authentik duration syntax, e.g. "minutes=5".
Pattern: ^(((microseconds\|milliseconds\|seconds\|minutes\|hours\|days\|weeks)=-?\d+);?)+$
Optional: {}
sessionValidNotOnOrAfter string SessionValidNotOnOrAfter is how long the session the assertion
establishes stays valid, in authentik duration syntax, e.g. "hours=8".
Pattern: ^(((microseconds\|milliseconds\|seconds\|minutes\|hours\|days\|weeks)=-?\d+);?)+$
Optional: {}
nameIDMapping string NameIDMapping is the name of the property mapping that produces the
NameID. Leave unset to let the requested NameID policy decide.
Optional: {}
authnContextClassRefMapping string AuthnContextClassRefMapping is the name of the property mapping that
produces the AuthnContextClassRef sent in the assertion.
Optional: {}
digestAlgorithm SAMLDigestAlgorithm DigestAlgorithm used when signing assertions and responses. Enum: [http://www.w3.org/2000/09/xmldsig#sha1 http://www.w3.org/2001/04/xmlenc#sha256 http://www.w3.org/2001/04/xmldsig-more#sha384 http://www.w3.org/2001/04/xmlenc#sha512]
Optional: {}
signatureAlgorithm SAMLSignatureAlgorithm SignatureAlgorithm used when signing assertions and responses. It must
match the key type of the signing certificate key pair.
Enum: [http://www.w3.org/2000/09/xmldsig#rsa-sha1 http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 http://www.w3.org/2001/04/xmldsig-more#rsa-sha384 http://www.w3.org/2001/04/xmldsig-more#rsa-sha512 http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha1 http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256 http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha384 http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512 http://www.w3.org/2000/09/xmldsig#dsa-sha1]
Optional: {}
signingKeyPair string SigningKeyPair is the name of the certificate key pair used to sign
assertions and responses. Required for the sign* options to take effect.
Optional: {}
verificationKeyPair string VerificationKeyPair is the name of the certificate key pair whose public
certificate verifies signed AuthnRequests from the service provider.
When set, unsigned requests are rejected.
Optional: {}
encryptionKeyPair string EncryptionKeyPair is the name of the certificate key pair used to
encrypt assertions. When set, assertions are sent encrypted.
Optional: {}
signAssertion boolean SignAssertion signs the assertion element itself. Optional: {}
signResponse boolean SignResponse signs the enclosing SAML response element. Optional: {}
signLogoutRequest boolean SignLogoutRequest signs logout requests sent to the service provider. Optional: {}
signLogoutResponse boolean SignLogoutResponse signs logout responses sent to the service provider. Optional: {}
spBinding SAMLBinding SPBinding is the binding used to deliver the response to the service
provider's ACS endpoint.
Enum: [redirect post]
Optional: {}
slsBinding SAMLBinding SLSBinding is the binding used to deliver logout messages to the service
provider's SLS endpoint.
Enum: [redirect post]
Optional: {}
logoutMethod SAMLLogoutMethod LogoutMethod selects how single logout is delivered. Enum: [frontchannel_iframe frontchannel_native backchannel]
Optional: {}
defaultRelayState string DefaultRelayState is sent as RelayState when authentik starts the login
itself, for service providers that use it to pick a landing page.
Optional: {}
defaultNameIDPolicy SAMLNameIDPolicy DefaultNameIDPolicy is the NameID format used when the service provider
does not request one.
Enum: [urn:oasis:names🇹🇨SAML:1.1:nameid-format:emailAddress urn:oasis:names🇹🇨SAML:2.0:nameid-format:persistent urn:oasis:names🇹🇨SAML:1.1:nameid-format:X509SubjectName urn:oasis:names🇹🇨SAML:2.0:nameid-format:WindowsDomainQualifiedName urn:oasis:names🇹🇨SAML:2.0:nameid-format:transient urn:oasis:names🇹🇨SAML:1.1:nameid-format:unspecified]
Optional: {}

SAMLProviderStatus

SAMLProviderStatus reports the provider's state in authentik.

Appears in: - SAMLProvider

Field Description Default Validation
conditions Condition array Conditions describe the current state of the resource. Optional: {}
observedGeneration integer ObservedGeneration is the .metadata.generation this status reflects. Optional: {}
remoteID string RemoteID is authentik's own identifier for the managed object: a numeric
primary key for providers and applications, a UUID elsewhere.
Once set this is the authoritative handle for the object. Lookups prefer
it over the name, so that renaming the object on either side does not
cause the operator to lose track of it and create a duplicate.
Optional: {}
remoteName string RemoteName is the name or slug last observed in authentik. Informational. Optional: {}
adopted boolean Adopted records that this resource took over a pre-existing authentik
object rather than creating it.
Optional: {}
lastSyncedTime Time LastSyncedTime is when the resource last reconciled successfully. Optional: {}
providerID integer ProviderID is authentik's numeric primary key for this provider. It is
what an Application or Outpost must reference, so it is surfaced
separately from the generic RemoteID string.
Optional: {}
metadataURL string MetadataURL serves the provider's SAML metadata document, which most
service providers can consume directly instead of being configured
field by field.
Optional: {}
issuerURL string IssuerURL is the entity ID authentik presents as the issuer. Optional: {}

SAMLSignatureAlgorithm

Underlying type: string

SAMLSignatureAlgorithm identifies the XML signature algorithm by its W3C URI.

Validation: - Enum: [http://www.w3.org/2000/09/xmldsig#rsa-sha1 http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 http://www.w3.org/2001/04/xmldsig-more#rsa-sha384 http://www.w3.org/2001/04/xmldsig-more#rsa-sha512 http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha1 http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha256 http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha384 http://www.w3.org/2001/04/xmldsig-more#ecdsa-sha512 http://www.w3.org/2000/09/xmldsig#dsa-sha1]

Appears in: - SAMLProviderSpec

SecretKeyReference

SecretKeyReference selects one key of a Secret in an explicitly named namespace. Used by cluster-scoped objects, which have no namespace of their own to default to.

Appears in: - ClusterAuthentikConnectionSpec

Field Description Default Validation
name string Name of the Secret. MinLength: 1
namespace string Namespace holding the Secret. MinLength: 1
key string Key within the Secret's data. MinLength: 1

ServiceConnectionCommonSpec

ServiceConnectionCommonSpec holds the fields every outpost service connection shares.

A service connection is what authentik uses to deploy and manage an outpost on the caller's behalf. It is not a provider, so it carries none of the flow references providers need; only identity and lifecycle policy are shared.

Appears in: - DockerServiceConnectionSpec - KubernetesServiceConnectionSpec

Field Description Default Validation
connectionRef ConnectionReference ConnectionRef selects the authentik instance this service connection
lives in.
name string Name is the service connection's name in authentik. Defaults to the
resource name.
Optional: {}
adoptionPolicy AdoptionPolicy AdoptionPolicy controls what happens when a service connection with this
name already exists in authentik.
FailOnConflict Enum: [FailOnConflict AdoptExisting]
Optional: {}
deletionPolicy DeletionPolicy DeletionPolicy controls what happens to the authentik service connection
when this resource is deleted.
Delete Enum: [Delete Orphan]
Optional: {}

ServiceConnectionStatus

ServiceConnectionStatus is the status shared by every service connection kind.

Appears in: - DockerServiceConnectionStatus - KubernetesServiceConnectionStatus

Field Description Default Validation
conditions Condition array Conditions describe the current state of the resource. Optional: {}
observedGeneration integer ObservedGeneration is the .metadata.generation this status reflects. Optional: {}
remoteID string RemoteID is authentik's own identifier for the managed object: a numeric
primary key for providers and applications, a UUID elsewhere.
Once set this is the authoritative handle for the object. Lookups prefer
it over the name, so that renaming the object on either side does not
cause the operator to lose track of it and create a duplicate.
Optional: {}
remoteName string RemoteName is the name or slug last observed in authentik. Informational. Optional: {}
adopted boolean Adopted records that this resource took over a pre-existing authentik
object rather than creating it.
Optional: {}
lastSyncedTime Time LastSyncedTime is when the resource last reconciled successfully. Optional: {}
serviceConnectionID string ServiceConnectionID is authentik's UUID for this service connection. It
is what an Outpost's serviceConnectionRef ultimately resolves to, so it
is surfaced separately from the generic RemoteID string.
Optional: {}