Step 1: Set an Organization Identifier
Users who authenticate their identity using SSO will be required to enter an Organization Identifier that indicates the Organization (and therefore, the SSO integration) to authenticate against. To set a unique Organization Identifier:
- Log in to your Web Vault and open your Organization.
Open the Settings tab and enter a unique Identifier for your Organization.
- Save your changes before exiting this page.
You’ll need to share this value with users once the configuration is ready to be used.
Step 2: Enable Login with SSO
Once you have your Organization Identifier, you can proceed to enabling and configuring your integration. To enable Login with SSO:
From the Organization Vault, navigate to the Manage tab and select Single Sign-On from the left-hand menu:
- On the Single Sign-On Screen, check the Allow SSO Authentication checkbox.
- From the Type dropdown menu, select the OpenID Connect option. If you intend to use SAML instead, switch over the the SAML Configuration Guide.
If you’re self-hosting Bitwarden, you can use alternative Member Decryption Options. This feature is disabled by default, so continue with Master Password decryption for now and learn how to get started using Key Connector once your configuration is complete and successfully working.
Step 3: Configuration
From this point on, implementation will vary provider-to-provider. Jump to one of our specific Implementation Guides for help completing the configuration process:
|Azure||Azure Implementation Guide|
|Okta||Okta Implementation Guide|
Configuration Reference Materials
The following sections will define fields configured on the Single Sign-On configuration screen, agnostic of which IdP you’re integration with. Fields that must be configured will be marked (Required).
Unless you’re comfortable with OpenID Connect, we recommend using one of the above Implementation Guides instead of the following generic material.
|Callback Path||(Automatically generated) The URL for authentication automatic redirect. For Cloud-hosted customers, this is always
|Signed Out Callback Path||(Automatically generated) The URL for sign-out automatic redirect. For Cloud-hosted customers, this is always
|Authority||(Required) The URL of your Authorization Server (“Authority”), which Bitwarden will perform authentication against. For example,
|Client ID||(Required) An identifier for the OIDC Client. This value is typically specific to a constructed IdP App Integration, for example an Azure App Registration or Okta Web App.|
|Client Secret||(Required) The client secret used in conjunction with the Client ID to exchange for an access token. This value is typically specific to a constructed IdP App Integration, for example an Azure App Registration or Okta Web App.|
|Metadata Address||(Required if Authority is not valid) A Metadata URL where Bitwarden can access Authorization Server metadata as a JSON object. For example,
|OIDC Redirect Behavior||(Required) Method used by the IdP to response to authentication requests from Bitwarden. Options include Form POST and Redirect GET.|
|Get Claims From User Info Endpoint||Enable this option if you receive URL too long errors (HTTP 414), truncated URLS, and/or failures during SSO.|
|Additional/Custom Scopes||Define custom scopes to be added to the request (comma-delimited).|
|Additional/Custom User ID Claim Types||Define custom claim type keys for user identification (comma-delimited). When defined, custom claim types are searched for before falling back on standard types.|
|Additional/Custom Email Claim Types||Define custom claim type keys for users’ email addresses (comma-delimited). When defined, custom claim types are searched for before falling back on standard types.|
|Additional/Custom Name Claim Types||Define custom claim type keys for users’ full names or display names (comma-delimited). When defined, custom claim types are searched for before falling back on standard types.|
|Requested Authentication Context Class Reference values||Define Authentication Context Class Reference identifiers (
|Expected “acr” Claim Value in Response||Define the
OIDC Attributes & Claims
An email address is required for account provisioning, which can be passed as any of the attributes or claims in the below table.
A unique user identifier is also highly recommended. If absent, Email will be used in its place to link the user.
Attributes/Claims are listed in order of preference for matching, including Fallbacks where applicable:
|Unique ID||Configured Custom User ID Claims
NameID (when not Transient)
|Configured Custom Email Claims
|Name||Configured Custom Name Claims
|First Name + “ “ + Last Name (see below)|