Skip to main content
The Admin service provides a web-based administrative portal for Bitwarden cloud operations, offering tools for user management, organization administration, billing operations, and system utilities.

Overview

The Admin service is primarily for Bitwarden cloud infrastructure. Self-hosted instances have limited admin functionality.
The Admin service provides:
  • User Management: View, edit, and delete user accounts
  • Organization Management: Organization configuration and licensing
  • Billing Operations: Manual billing adjustments and Stripe operations
  • System Tools: Database migrations, cache management, utilities
  • Provider Administration: MSP provider management
  • Reporting: System statistics and usage reports

Architecture

Configuration

Application Settings

From src/Admin/Startup.cs:33:
Service Configuration

Admin Settings

AdminSettings Configuration

Authentication

Read-Only Identity Store

The Admin service uses a read-only environment-based identity store:
Admin users are configured via environment variables, not stored in the database.
Read-Only User Store
For self-hosted deployments:
Cookie Path

Controllers

The Admin service includes several controller areas:

Core Controllers

Tools Controller

From src/Admin/Controllers/ToolsController.cs:25: Provides administrative utilities:

Braintree Charging

Manual payment processing for Braintree customers

Stripe Operations

Direct Stripe API operations and adjustments

License Generation

Generate organization licenses

User Promotion

Promote users to premium

Organization Management

Administrative organization operations:
Organization Tools

Database Migrations

Database migrations run automatically on startup for self-hosted instances.
From src/Admin/Startup.cs:120:
Migration Service
Supported database providers:
  • SQL Server
  • MySQL
  • PostgreSQL
  • SQLite

Background Jobs

From src/Admin/Startup.cs:118:
Job Services
Background jobs handle:
  • Email queue processing (cloud only)
  • Database migrations (self-hosted)
  • Scheduled maintenance tasks

View Structure

The Admin service uses Razor views organized by feature:
View Locations
View areas:
  • Auth: Login and authentication views
  • AdminConsole: Organization and user management
  • Billing: Billing operations and reports

Middleware Pipeline

From src/Admin/Startup.cs:133:
Request Pipeline

Access Control

The Admin service implements permission-based access control:
Permission System
Permissions are enforced via attributes:
Permission Attribute

Deployment

Environment Variables

Docker

Self-Hosted Access

In self-hosted deployments, admin functionality is limited. The portal runs at /admin path.
Nginx Configuration

Self-Hosted vs Cloud

Integration with Other Services

Stripe

Direct Stripe API integration for billing operations

Database

Direct database access for administrative queries

Email

Azure Queue integration for email processing (cloud)

Cache

Distributed cache for performance

Security Considerations

The Admin service should only be accessible to trusted administrators.
  • Environment-based user authentication
  • No user self-registration
  • Permission-based access control
  • Read-only operations preferred
  • Audit logging for sensitive operations