Service Account and Federation Reference
This reference lists a service account’s attributes, its two credential modes, the roles and group memberships it can hold, the realm prerequisites federated mode needs, the federation-options response, and its token lifetime.
Type |
Reference |
Goal |
Look up service-account fields, credential modes, roles, and federation requirements. |
Audience |
Tenant admins and engineers who create, configure, or authenticate a service account. |
When to use |
Use this while filling the create or edit form, or while setting up a federated credential. |
Attributes
A service account is a user of type service account. These are its fields.
| Field | Type | Set by | Description |
|---|---|---|---|
Name |
string |
Admin, on create |
The human label for the account. Immutable after creation, because the client id derives from it. |
Client id |
string |
System |
The machine identity, of the form |
string |
System |
Generated address of the form |
|
Credential mode |
enum |
Admin, on create |
|
Secret |
string |
System |
The client secret. Secret mode only, returned once on create and rotate, never stored or shown again. |
Federated subject |
string |
Admin, editable |
Federated mode only. The external workload identity’s object id that the account is bound to. |
Roles |
list |
Admin, editable |
The tenant-scoped roles the account holds. See Roles. |
Group memberships |
list |
Admin, editable |
The groups the account belongs to. See Group membership. |
Credential modes
The credential mode, labelled Authentication method in the portal, is chosen on creation and cannot be changed afterwards. It decides how the account proves its identity.
| Mode | Secret returned | Rotation | Identity proof |
|---|---|---|---|
|
Once, on create and rotate |
In Self-Service, supersedes the old secret immediately |
Client id and client secret |
|
Never (no secret exists) |
Not applicable; owned by the external identity provider |
An assertion signed by the bound identity provider, for the bound subject |
Roles
A service account can hold the same tenant-scoped roles as a human user, administrative roles included, up to and including the permission to manage other service accounts. There is no separate role set for service accounts.
A service account’s authority is always scoped to its own tenant. A role a tenant admin may not assign to a human user cannot be assigned to a service account either. For the definition of each role, see Users and Roles.
Group membership
A service account’s group membership is authored in Self-Service and stored by Axual, never read from an identity provider. The rules below govern it.
-
A service account can be a member of any group of its tenant, both Axual-managed groups and identity-provider-managed (IAM) groups.
-
Adding a service account to a group is a tenant-admin action, whichever path is used.
-
Removing a service account, or promoting one that is already a member to group manager or resource manager, is available to a group manager.
-
A group manager or resource manager must also be a member of that group; this holds for every group type and both human and service-account principals.
-
For an IAM group, the stored members are its service-account members plus any humans recorded for management; this is a subset of the identity provider’s roster, which Axual cannot enumerate.
For the group operations themselves, see Groups.
Federated realm prerequisites
Federated mode depends on per-realm configuration that Axual does not create. An operator sets these up once per realm before a federated service account can be created; creation fails fast with a clear error when one is missing. For the procedure, see How to Prepare a Keycloak Realm for Federated Service Accounts.
| Prerequisite | Purpose |
|---|---|
|
Lets the realm accept a signed JWT as client authentication. Realms upgraded from Keycloak older than 26.6 do not have it. |
Identity provider enabled for client assertions |
Designates the provider Axual trusts for federated authentication. |
Identity provider audience set to its login client id |
Fixes the |
Client-assertion reuse allowed |
Entra tokens carry |
A raised client-assertion maximum age |
Azure caches managed-identity tokens for around 24 hours; the default age check rejects them. |
Signature validation on, with issuer and JWKS URL set |
Lets the realm validate the assertion offline against the provider. |
Federation options response
The federation-options endpoint reports, for the caller’s tenant realm, whether federated mode is available and the values a workload needs to mint an acceptable assertion. These are its fields.
| Field | Type | Description |
|---|---|---|
|
boolean |
Whether the realm meets the prerequisites. |
|
enum |
|
|
string |
The backing provider’s issuer. |
|
string |
The value an assertion’s |
|
string |
Entra only. The Entra directory (tenant) GUID. |
|
string |
Entra only. The resource a workload requests from Entra, of the form |
When federationSupported is false, no other field is present. For a generic provider, the entra block is absent.
Token lifetime and audit attribution
A service account’s access token is issued with a short lifetime of five minutes. A deleted account’s already-issued token keeps working until it expires, and the short lifetime bounds that window.
Every lifecycle action and every API call a service account makes is recorded in the audit trail against its client id, not its generated email. The audit history can be filtered by that client id. Because a service account can hold the permission to manage other service accounts, the acting administrator in an audit record may itself be a service account.