
* website/docs: Clean up config. Add types. * website/docs: Format MDX. * website: Fix build warnings. Lint badges frontmatter.
109 lines
5.3 KiB
Markdown
109 lines
5.3 KiB
Markdown
---
|
|
title: Service Accounts
|
|
sidebar_label: Service Accounts
|
|
---
|
|
|
|
Service accounts are specialized user accounts designed for machine-to-machine authentication and automation purposes rather than interactive human use. They're ideal for integrating authentik with external systems, APIs, and services.
|
|
|
|
## Types of Service Accounts
|
|
|
|
authentik distinguishes between two types of service accounts:
|
|
|
|
1. **User-created Service Accounts**: Created by administrators for integrating with external systems or for automation purposes.
|
|
2. **Internal Service Accounts**: Created and managed automatically by authentik for internal purposes, such as outpost communications. These cannot be created manually.
|
|
|
|
## Limitations
|
|
|
|
Service accounts have certain limitations compared to regular user accounts:
|
|
|
|
1. Cannot log in through the UI.
|
|
2. Cannot have a password (they use tokens exclusively).
|
|
3. Cannot participate in multi-factor authentication flows.
|
|
4. Cannot be used for interactive sessions that require human interaction.
|
|
5. Cannot have permissions assigned directly if they are internal service accounts.
|
|
6. Cannot change their own password or manage their own account settings.
|
|
7. Are subject to token expiration policies that differ from regular user accounts.
|
|
|
|
## Creating a Service Account
|
|
|
|
To create a service account:
|
|
|
|
1. In the authentik **Admin interface**, navigate to **Directory** > **Users**.
|
|
2. Click the **Create Service Account** button.
|
|
3. Configure the following settings:
|
|
- **Username**: The user's primary identifier (150 characters or fewer).
|
|
- **Create Group**: Enabling this toggle will create a group named after the user, with the user as a member.
|
|
- **Expiring**: If selected, the token will expire and be automatically rotated upon expiration.
|
|
- **Expires on**: Sets the expiration date (defaults to 1 year from the creation date).
|
|
4. Click **Create Service Account**.
|
|
|
|
After creating the service account, you'll see a confirmation screen that shows the username and generated password (token). Make sure to copy this information somewhere secure as you'll need it for authentication.
|
|
|
|
## Token Properties
|
|
|
|
Service account tokens have the following properties:
|
|
|
|
- **Expiration**: By default, tokens expire after 360 days but can be configured to be non-expiring.
|
|
- **Custom Expiration Date**: You can set a specific expiration date when creating the service account.
|
|
- **Revocation**: Tokens can be revoked at any time by deleting them or generating new ones.
|
|
- **Automatic Rotation**: When a token expires, it's automatically rotated to maintain security.
|
|
|
|
## Managing Service Account Tokens
|
|
|
|
Tokens for service accounts are managed through the authentik Admin interface:
|
|
|
|
1. Log in to the Admin interface and navigate to **Directory** > **Tokens and App passwords**.
|
|
2. Here you can view, create, copy, delete, and manage tokens.
|
|
|
|
### Creating New Tokens
|
|
|
|
To create a new token for a service account:
|
|
|
|
1. Click **Create**.
|
|
2. Set the identifier for your token.
|
|
3. In the **User** dropdown list, select your service account.
|
|
4. For **Intent**, choose one of the following:
|
|
- **API Token**: Used to access the API programmatically (30-minute default lifespan).
|
|
- **App password**: Used for logging in using a flow executor (1-year default lifespan).
|
|
5. Click **Create** to generate the new token.
|
|
|
|
### Managing and Regenerating Tokens
|
|
|
|
- To copy a token's value, use the copy button under the **Actions** column.
|
|
- To delete a token, select it from the list and click the **Delete** button.
|
|
- To regenerate a token, delete the existing token and create a new one with the same settings, ensuring you select the same username under the **User** dropdown list.
|
|
|
|
## Authentication with Service Accounts
|
|
|
|
Service accounts authenticate using [HTTP Basic Authentication](https://datatracker.ietf.org/doc/html/rfc7617). The username and password (token) generated during account creation are used as credentials.
|
|
|
|
## Permissions and Access Control
|
|
|
|
Like regular user accounts, with service accounts you can assign [permissions and use RBAC](../users-sources/access-control/manage_permissions).
|
|
|
|
1. Assign the service account to groups to inherit group permissions.
|
|
2. Grant specific permissions directly to the service account.
|
|
3. Restrict the service account to specific applications or resources.
|
|
|
|
We recommend following the principle of least privilege and only grant service accounts the permissions they absolutely need.
|
|
|
|
## Common Use Cases
|
|
|
|
### Integration with External Systems
|
|
|
|
Service accounts are commonly used for:
|
|
|
|
1. **LDAP Authentication**: Systems like SSSD, QNAP NAS, and other LDAP clients often use service accounts to bind to authentik's LDAP provider.
|
|
2. **Directory Synchronization**: Tools that sync users and groups between authentik and other systems.
|
|
3. **API Automation**: For scripts, CI/CD pipelines, or other systems that need to interact with authentik's API.
|
|
|
|
## Security Best Practices
|
|
|
|
When using service accounts, follow these security practices:
|
|
|
|
1. **Least Privilege**: Grant service accounts only the permissions they need.
|
|
2. **Secure Storage**: Store service account tokens securely in encrypted storage, environment variables, or secret management systems.
|
|
3. **Token Rotation**: Rotate tokens periodically for sensitive integrations.
|
|
4. **Use Expiration**: Set appropriate token expiration dates for your use case.
|
|
5. **Audit Usage**: Monitor service account activity for unexpected behavior.
|