SAML & OIDC Setup
This guide explains how to configure SAML and OIDC (OAuth2) authentication for Comper.
Comper Cloud
Dedicated Environment (Custom URL)
If you are using a dedicated Comper Cloud environment (e.g., yourcompany.comper.io), we can configure SAML/OIDC for you.
Please send us:
- The relevant metadata file (XML) from your Identity Provider (IdP).
- Any specific configuration details (attribute mappings, etc.).
Shared Environment
SAML/OIDC configuration is not available for the shared Comper Cloud environment (app.comper.io).
Self-Hosted
If you are hosting Comper yourself, you can configure SAML via environment variables or Helm chart values.
Comper supports SAML 2.0 authentication and can work with any SAML 2.0-compliant Identity Provider (IdP), including:
- Google Workspace
- Generic SAML 2.0 providers
- Keycloak
- Azure AD / Microsoft Entra ID
- Okta
- Other SAML 2.0-compliant IdPs
Google Workspace SAML Setup
To configure SAML with Google Workspace as your Identity Provider:
-
Get your IdP metadata from Google Workspace:
- Follow the Google Workspace SAML setup guide to set up a custom SAML app
- Download the IDP metadata file from the Google Admin console (Step 5 in the guide)
- Alternatively, copy the SSO URL, Entity ID, and Certificate if your setup requires manual configuration
-
Configure Comper with the information from Google Workspace:
- ACS URL:
https://<your-comper-domain>/api/saml/callback - Entity ID: Your Comper domain URL (e.g.,
https://comper.example.com) - Start URL (optional): Can be set in Google Workspace to redirect users after authentication
- ACS URL:
-
In Google Workspace, provide Comper's Service Provider details:
- ACS URL:
https://<your-comper-domain>/api/saml/callback - Entity ID:
https://<your-comper-domain>(or your preferred Entity ID) - Name ID: Use the primary email address (default)
- ACS URL:
For detailed instructions on configuring Google Workspace as an IdP, refer to the official Google Workspace SAML documentation.
Docker Configuration
To enable SAML in your Docker deployment, set the following environment variables:
SAML_ENABLED: Set totrueto enable SAML.SAML_IDP_METADATA_PATH: Path to the IdP metadata XML file. This file must be accessible by the Comper container (e.g., mounted via a volume).SAML_SP_ENTITY_ID: The Entity ID for the Service Provider (Comper). This is typically your Comper URL or a specific URI defined in your IdP.SAML_SP_ACS_URL: The Assertion Consumer Service (ACS) URL. This is usuallyhttps://<your-comper-domain>/api/saml/callback.SAML_PROVIDER: The provider type. Common values includegeneric,keycloak,azure-ad,okta,google-workspace.
Example docker-compose.yml snippet:
services:
comper:
environment:
- SAML_ENABLED=true
- SAML_IDP_METADATA_PATH=/config/idp-metadata.xml
- SAML_SP_ENTITY_ID=https://comper.example.com
- SAML_SP_ACS_URL=https://comper.example.com/api/saml/callback
- SAML_PROVIDER=generic
volumes:
- ./idp-metadata.xml:/config/idp-metadata.xml
Kubernetes (Helm Chart)
The Comper Helm chart supports SAML configuration.
Download the Helm chart:
- Download Helm Chart ZIP - Contains the complete Helm chart ready to use
After downloading:
# Extract the zip file
unzip comper-helm-chart.zip
# Navigate to the chart directory
cd helm-chart
You can provide the necessary values in your values.yaml file.
Step 1: Create a ConfigMap/Secret for Metadata First, create a ConfigMap or Secret containing your IdP metadata XML.
kubectl create configmap saml-metadata --from-file=metadata.xml=./path/to/idp-metadata.xml
Step 2: Configure Values
Update your values.yaml to enable SAML and mount the metadata file:
auth:
saml:
enabled: true
# Path where the metadata file will be mounted
idpMetadataPath: "/etc/comper/saml/metadata.xml"
spEntityId: "https://comper.example.com"
spAcsUrl: "https://comper.example.com/api/saml/callback"
provider: "generic"
# Mount the ConfigMap as a volume
volumes:
- name: saml-metadata
configMap:
name: saml-metadata
volumeMounts:
- name: saml-metadata
mountPath: /etc/comper/saml
readOnly: true
Comper Support SAML
Comper Support SAML allows the Comper support team to authenticate to your Comper instance for troubleshooting and support purposes. This feature is useful if your Comper instance is accessible on the internet and you need assistance from our support team.
Important Notes
- Access Control: Even with Comper Support SAML enabled, support team members must still be invited to individual boards by board administrators. This ensures that support access is granted only where needed.
- Internet Access Required: Your Comper instance must be accessible on the internet for this feature to work.
- Security: The support team uses SAML authentication through Comper's identity provider, ensuring secure access.
Enabling Comper Support SAML
To enable Comper Support SAML, set the following environment variable:
COMPER_SUPPORT_SAML: Set totrueto enable Comper Support SAML.
The configuration uses a pre-configured metadata file (comper-support-idp-metadata.xml) that is included with Comper. No additional configuration is required.
Example docker-compose.yml snippet:
services:
comper:
environment:
- COMPER_SUPPORT_SAML=true
Kubernetes (Helm Chart) configuration:
auth:
comperSupportSaml:
enabled: true
Once enabled, Comper support team members can authenticate to your instance using SAML, but they will still need to be invited to specific boards by your board administrators.
OIDC (OAuth2) Configuration
Comper supports OIDC via specific OAuth2 providers. The following providers are supported:
- GitHub
- Microsoft Entra ID (formerly Azure AD)
You can configure these using the following environment variables.
Supported Providers
Google
GOOGLE_OAUTH_CLIENT_IDGOOGLE_OAUTH_CLIENT_SECRET
GitHub
GITHUB_OAUTH_CLIENT_IDGITHUB_OAUTH_CLIENT_SECRET
Microsoft Entra ID (Azure AD)
MICROSOFT_OAUTH_CLIENT_IDMICROSOFT_OAUTH_CLIENT_SECRETMICROSOFT_OAUTH_TENANT_ID(optional, defaults tocommonif not specified)
Docker Configuration
To enable OIDC providers in your Docker deployment, set the environment variables for the providers you want to use:
Example docker-compose.yml snippet:
services:
comper:
environment:
# Google OAuth
- GOOGLE_OAUTH_CLIENT_ID=your-google-client-id
- GOOGLE_OAUTH_CLIENT_SECRET=your-google-client-secret
# GitHub OAuth
- GITHUB_OAUTH_CLIENT_ID=your-github-client-id
- GITHUB_OAUTH_CLIENT_SECRET=your-github-client-secret
# Microsoft Entra ID OAuth
- MICROSOFT_OAUTH_CLIENT_ID=your-microsoft-client-id
- MICROSOFT_OAUTH_CLIENT_SECRET=your-microsoft-client-secret
- MICROSOFT_OAUTH_TENANT_ID=your-tenant-id # Optional, defaults to 'common'
Kubernetes Configuration
For Kubernetes, these secrets are typically managed via the auth.oauth section in values.yaml:
auth:
oauth:
microsoft:
clientId: "..."
tenantId: "..."
clientSecret: "..."
google:
clientId: "..."
clientSecret: "..."
github:
clientId: "..."
clientSecret: "..."