Single Sign-On (SSO)
CVAT supports SSO using both OpenID Connect (OIDC) and Security Assertion Markup Language (SAML) protocols.Supported Identity Providers
- Microsoft Azure (OIDC and SAML)
- Okta (OIDC and SAML)
- Auth0 (OIDC and SAML)
- Keycloak (OIDC and SAML)
- Any OIDC or SAML compliant provider
Configuration Overview
To configure SSO:- Configure your Identity Provider (IdP) application
- Create an SSO configuration file (
auth_config.yml) - Set environment variables
- Start or restart CVAT
SSO Configuration File
Create anauth_config.yml file with your SSO settings:
OpenID Connect Example
SAML Example
SSO Settings Reference
| Setting | Description |
|---|---|
enabled | Enable or disable SSO functionality |
selection_mode | How to select IdP: email_address (by email domain) or lowest_weight (by weight value) |
enable_pkce | Enable Proof Key for Code Exchange for OIDC (default: false) |
Identity Provider Configuration
Required Fields
| Field | Description |
|---|---|
id | Unique URL-safe identifier for the IdP (used in callback URLs) |
name | Human-readable name displayed to users |
protocol | Authentication protocol: OIDC or SAML |
Optional Fields
| Field | Description |
|---|---|
email_domain | Company email domain (for email_address selection mode) |
weight | Priority value (for lowest_weight selection mode, default: 10) |
OIDC-Specific Fields
| Field | Required | Description |
|---|---|---|
client_id | Yes | OAuth client ID from IdP |
client_secret | Yes | OAuth client secret from IdP |
server_url | Yes | OIDC discovery URL (should have /.well-known/openid-configuration endpoint) |
token_auth_method | No | Token authentication method: client_secret_basic or client_secret_post |
SAML-Specific Fields
| Field | Required | Description |
|---|---|---|
entity_id | Yes | IdP entity ID |
metadata_url | No* | SAML metadata URL |
x509_cert | No* | SAML X.509 certificate |
sso_url | No* | SAML Single Sign-On service URL |
attribute_mapping | Yes | Mapping of user attributes |
metadata_url OR both x509_cert and sso_url are required.
Callback URLs
When configuring your IdP, use these callback URL patterns: OIDC Redirect URI:<idp-id> with your identity provider’s id from the configuration file.
Environment Variables
Set these environment variables before starting CVAT:docker-compose.override.yml:
Starting CVAT with SSO
LDAP Authentication
LDAP integration allows users to authenticate against Active Directory, FreeIPA, or other LDAP servers. Source:site/content/en/docs/administration/community/advanced/ldap.md
Prerequisites
Install the Python LDAP library in your CVAT container:Configuration
Create a custom Django settings file (settings.py) that imports production settings and adds LDAP configuration.
Active Directory Example
FreeIPA Example
Deploying LDAP Configuration
Update yourdocker-compose.override.yml:
LDAP Group Mapping
CVAT roles are mapped to LDAP groups:- admin: Full administrative access
- user: Standard annotation user
- worker: Limited worker access
Troubleshooting LDAP
Test LDAP Connection
Enable LDAP Debug Logging
Add to yoursettings.py:
Common Issues
- Connection refused: Check firewall rules and LDAP server accessibility
- Bind failed: Verify bind DN and password
- User not found: Check user search base DN and filter
- No groups assigned: Verify group search configuration and group DNs
IAM Type Configuration
Set the IAM type in your Django settings:cvat/settings/base.py:224 for the IAM_TYPE setting.
Additional Resources
SSO Resources
- Microsoft LDAP Distinguished Names
- Django-allauth OIDC Documentation
- Django-allauth SAML Documentation
- Source:
site/content/en/docs/account_management/sso.md
LDAP Resources
- Django LDAP Reference Manual
- Django LDAP with Active Directory Guide
- Source:
site/content/en/docs/administration/community/advanced/ldap.md
Enterprise Support
For enterprise deployments requiring SSO or LDAP integration, contact CVAT.ai:- Website: cvat.ai/pricing/on-prem
- Email: [email protected]
- SSO with OIDC and SAML
- LDAP/Active Directory integration
- Advanced analytics
- Priority support with 24-hour SLA
- Training and onboarding