Okta SAML Implementation
This article contains Okta-specific help for configuring Login with SSO via SAML 2.0. For help configuring login with SSO for another IdP, refer to SAML 2.0 Configuration.
Configuration involves working simultaneously within the Bitwarden web vault and the Okta Admin Portal. As you proceed, we recommend having both readily available and completing steps in the order they are documented.
Already an SSO expert? Skip the instructions in this article and download screenshots of sample configurations to compare against your own.
Navigate to your organization's Settings → Single sign-on screen:
If you haven't already, create a unique SSO identifier for your organization. Otherwise, you don't need to edit anything on this screen yet, but keep it open for easy reference.
If you are 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.
In the Okta Admin Portal, select Applications → Applications from the navigation. On the Applications screen, select the Create App Integration button:
In the Create a New Application Integration dialog, select the SAML 2.0 radio button:
Select the Next button to proceed to configuration.
On the General Settings screen, give the application a unique, Bitwarden-specific name and select Next.
On the Configure SAML screen, configure the following fields:
Single sign on URL
Set this field to the pre-generated Assertion Consumer Service (ACS) URL retrieved from the Bitwarden SSO Configuration screen.
Audience URI (SP Entity ID)
Set this field to the pre-generated SP Entity ID retrieved from the Bitwarden SSO Configuration screen.
Name ID format
Select the SAML NameID format to use in SAML assertions. By default, Unspecified.
Select the Okta attribute users will use to login to Bitwarden.
Select the Show Advanced Settings link and configure the following fields:
Whether the SAML response is signed by Okta.
Whether the SAML assertion is signed by Okta.
The signing algorithm used to sign the response and/or assertion, depending on which is set to Signed. By default,
The digest algorithm used to sign the response and/or assertion, depending on which is set to Signed. This field must match the selected Signature Algorithm.
In the Attribute Statements section, construct the following SP → IdP attribute mappings:
Once configured, select the Next button to proceed to the Feedback screen and select Finish.
Once your application is created, select the Sign On tab for the app and select the View Setup Instructions button located on the right side of the screen:
Either leave this page up for future use, or copy the Identity Provider Single Sign-On URL and Identity Provider Issuer and download the X.509 Certificate:
Navigate to the Assignments tab and select the Assign button:
You can assign access to the application on a user-by-user basis using the Assign to People option, or in-bulk using the Assign to Groups option.
At this point, you have configured everything you need within the context of the Okta Admin Portal. Return to the Bitwarden web vault to complete configuration.
The Single Sign-On screen separates configuration into two sections:
SAML Service Provider Configuration will determine the format of SAML requests.
SAML Identity Provider Configuration will determine the format to expect for SAML responses.
Configure the following fields according to the choices selected in the Okta Admin Portal during app creation:
Name ID Format
Set this to whatever the Name ID format specified in Okta, otherwise leave Unspecified.
Outbound Signing Algorithm
The algorithm Bitwarden will use to sign SAML requests.
Whether/when SAML requests will be signed.
Minimum Incoming Signing Algorithm
Set this to the Signature Algorithm specified in Okta.
Want Assertions Signed
Check this box if you set the Assertion Signature field to Signed in Okta.
Check this box when using trusted and valid certificates from your IdP through a trusted CA. Self-signed certificates may fail unless proper trust chains are configure within the Bitwarden login with SSO docker image.
When you're done with the service provider configuration, Save your work.
Identity provider configuration will often require you to refer back to the Okta Admin Portal to retrieve application values:
Enter your Identity Provider Issuer, retrieved from the Okta Sign On Settings screen by selecting the View Setup Instructions button. This field is case sensitive.
Set to Redirect. Okta currently does not support HTTP POST.
Single Sign On Service URL
Enter your Identity Provider Single Sign-On URL, retrieved from the Okta Sign On Settings screen.
Single Log Out Service URL
Login with SSO currently does not support SLO. This option is planned for future development, however you may pre-configure it if you wish.
X509 Public Certificate
Paste the downloaded certificate, removing
Outbound Signing Algorithm
Select the Signature Algorithm selected during Okta app configuration. If you didn't change the Signature Algorithm, leave the default (
Allow outbound logout requests
Login with SSO currently does not support SLO.
Want Authentication Requests Signed
Whether Okta expects SAML requests to be signed.
When you're done with the identity provider configuration, Save your work.
You can require users to log in with SSO by activating the single sign-on authentication policy. Please note, this will require activating the single organization policy as well. Learn more.
Once your configuration is complete, test it by navigating to https://vault.bitwarden.com, entering your email address, selecting Continue, and selecting the Enterprise Single-On button:
Enter the configured organization identifier and select Log In. If your implementation is successfully configured, you will be redirected to the Okta login screen:
After you authenticate with your Okta credentials, enter your Bitwarden master password to decrypt your vault!
Bitwarden does not support unsolicited responses, so initiating login from your IdP will result in an error. The SSO login flow must be initiated from Bitwarden.