Cal.com supports both Security Assertion Markup Language (SAML) and OpenID Connect (OIDC), two of the industry’s leading authentication protocols. We prioritize your ease of access and security by providing robust Single Sign-On (SSO) capabilities. Whether you’re looking for the XML-based standard of SAML or the lightweight OIDC, our platform is equipped to integrate smoothly with your preferred identity provider, ensuring both convenience and security for your users.
You need an Enterprise License to avail this when self-hosting
Set SAML_DATABASE_URL to a Postgres database. Please use a different database than the main Cal instance since the migrations are separate for this database. For example postgresql://postgres:@localhost:5450/cal-saml
. If you are using a self-signed certificate for Postgres then use the sslmode=no-verify
query param in the database URL. For example postgresql://postgres:@localhost:5450/cal-saml?sslmode=no-verify
.
Set SAML_ADMINS to a comma separated list of admin emails from where the SAML metadata can be uploaded and configured.
Create a SAML application with your Identity Provider (IdP) using the instructions here - SAML Setup
Remember to configure access to the IdP SAML app for all your users (who need access to Cal).
You will need the XML metadata from your IdP later, so keep it accessible.
Log in to one of the admin accounts configured in SAML_ADMINS and then navigate to Settings -> Security.
You should see a SAML configuration section, copy and paste the XML metadata from step 5 and click on Save.
Your provisioned users can now log into Cal using SAML.
This guide explains the settings you need to use to configure SAML with your Identity Provider. Once this is set up you should get an XML metadata file that should then be uploaded on your Cal.com self-hosted instance.
Note: Please do not add a trailing slash at the end of the URLs. Create them exactly as shown below.
Assertion consumer service URL / Single Sign-On URL / Destination URL: https://<url for your self-hosted instance>/api/auth/saml/callback [Replace the placeholder with the URL for your self-hosted Cal instance]
Entity ID / Identifier / Audience URI / Audience Restriction: https://saml.cal.com
Response: Signed
Assertion Signature: Signed
Signature Algorithm: RSA-SHA256
Assertion Encryption: Unencrypted
Name ID Format: EmailAddress
Application username: email
Mapping Attributes / Attribute Statements:
Name | Name Format | Value |
---|---|---|
firstName | Basic | user.firstName |
lastName | Basic | user.lastName |
postgresql://postgres:@localhost:5450/cal-saml
. If you are using a self-signed certificate for Postgres then use the sslmode=no-verify
query param in the database URL. For example postgresql://postgres:@localhost:5450/cal-saml?sslmode=no-verify
.{BASE_URL}/settings/security/sso
and you should see something like this:
Cal.com supports both Security Assertion Markup Language (SAML) and OpenID Connect (OIDC), two of the industry’s leading authentication protocols. We prioritize your ease of access and security by providing robust Single Sign-On (SSO) capabilities. Whether you’re looking for the XML-based standard of SAML or the lightweight OIDC, our platform is equipped to integrate smoothly with your preferred identity provider, ensuring both convenience and security for your users.
You need an Enterprise License to avail this when self-hosting
Set SAML_DATABASE_URL to a Postgres database. Please use a different database than the main Cal instance since the migrations are separate for this database. For example postgresql://postgres:@localhost:5450/cal-saml
. If you are using a self-signed certificate for Postgres then use the sslmode=no-verify
query param in the database URL. For example postgresql://postgres:@localhost:5450/cal-saml?sslmode=no-verify
.
Set SAML_ADMINS to a comma separated list of admin emails from where the SAML metadata can be uploaded and configured.
Create a SAML application with your Identity Provider (IdP) using the instructions here - SAML Setup
Remember to configure access to the IdP SAML app for all your users (who need access to Cal).
You will need the XML metadata from your IdP later, so keep it accessible.
Log in to one of the admin accounts configured in SAML_ADMINS and then navigate to Settings -> Security.
You should see a SAML configuration section, copy and paste the XML metadata from step 5 and click on Save.
Your provisioned users can now log into Cal using SAML.
This guide explains the settings you need to use to configure SAML with your Identity Provider. Once this is set up you should get an XML metadata file that should then be uploaded on your Cal.com self-hosted instance.
Note: Please do not add a trailing slash at the end of the URLs. Create them exactly as shown below.
Assertion consumer service URL / Single Sign-On URL / Destination URL: https://<url for your self-hosted instance>/api/auth/saml/callback [Replace the placeholder with the URL for your self-hosted Cal instance]
Entity ID / Identifier / Audience URI / Audience Restriction: https://saml.cal.com
Response: Signed
Assertion Signature: Signed
Signature Algorithm: RSA-SHA256
Assertion Encryption: Unencrypted
Name ID Format: EmailAddress
Application username: email
Mapping Attributes / Attribute Statements:
Name | Name Format | Value |
---|---|---|
firstName | Basic | user.firstName |
lastName | Basic | user.lastName |
postgresql://postgres:@localhost:5450/cal-saml
. If you are using a self-signed certificate for Postgres then use the sslmode=no-verify
query param in the database URL. For example postgresql://postgres:@localhost:5450/cal-saml?sslmode=no-verify
.{BASE_URL}/settings/security/sso
and you should see something like this: