apps/docs/content/guides/integrate/service-accounts/authenticate-service-accounts.mdx
import DocCardList from '@/components/docusaurus/doc-card-list';
<TerminologyUpdate newTerm="Service Accounts" oldTerms={["Service User", "Machine Users", "Technical Account"]} />
This guide explains ZITADEL service accounts and their role in facilitating secure machine-to-machine communication within your applications.
Service accounts in ZITADEL represent non-human entities within your system. They are ideal for scenarios involving secure communication between applications, particularly when interacting with backend services or APIs. Service accounts in combination with Administrator permissions are used to access ZITADEL's APIs, for example, to manage user resources. Unlike users, service accounts don't rely on traditional login methods (e.g., username/password) and require alternative authentication mechanisms.
Manage authorization for service accounts separately from human users, providing an extra layer of control.
Service accounts offer a secure way to authenticate and access various API endpoints and protected backend services.
You can use service accounts to access ZITADEL APIs, follow the guides to learn how to access the different ZITADEL APIs.
While you can define the scopes and required information in your requests for your applications API endpoints, when using the ZITADEL APIs, you must include the scope urn:zitadel:iam:org:project:id:zitadel:aud to gain access.
Actions performed by service accounts are clearly identifiable in logs, facilitating easier auditing and tracing.
Using the Event API you can use these logs for further analysis or to integrate the logs with external SOC / SIEM systems.
ZITADEL supports two primary authentication methods for service accounts:
Follow our guide on using private key JWT client authentication to get started authenticating service accounts and applications.
Follow our guide on using client credentials grant to get started authenticating service accounts and applications.
This method is still available in ZITADEL but is generally considered less secure than JWT due to:
Follow our guide on using personal access tokens to get started authenticating service accounts and applications.
PAT offer some benefits, such as:
However, PATs also come with limitations:
We have guides for the different authentication methods:
For most service account scenarios in ZITADEL, private key JWT authentication is the recommended choice due to its benefits in security, performance, and control. However, client credentials authentication might be considered in specific situations where simplicity and trust between servers are priorities.