* initial draft * codeblock e.g.'s * initial draft of f4e end-user doc * first round of feedback * feedback round 2 * feedback round 3 * update screenshots * safari/macos import guide sketch * adios, friendly name * cli note * fix typo * finish import from macos/safari * feedback round 4 * more feedback * updated diagrams * fix typo * linked custom fields & more release note items * new auto-fill unlock behavior for context menu & keyboard! * release notes - autofill unlock * new events * fixes to 'using sso' * updated KC screenshot & test step * KC URL * send extension & release notes * hide ios extension * updates to sso faqs * SEO desc's & tags * Key Connector > Impact on Unlock > Add a note for online dependency * clarify "account is lost" * add some references to CME * final edits * f4e * quick edit to RNpull/818/head
@ -0,0 +1,80 @@
@@ -0,0 +1,80 @@
|
||||
--- |
||||
layout: article |
||||
title: Import Data from macOS & Safari |
||||
categories: [import-export] |
||||
featured: true |
||||
popular: false |
||||
tags: [import, macos, safari] |
||||
order: "05" |
||||
description: "This article explains how you can export data from macOS Keychain or Safari and import into the Bitwarden password manager." |
||||
--- |
||||
|
||||
Use this article for help exporting data from Safari or macOS and importing into Bitwarden. |
||||
|
||||
{% callout success %} |
||||
Exporting passwords requires **Safari 15.0+** or **macOS Monterey (12.0)+**. |
||||
{% endcallout %} |
||||
|
||||
## Export from Safari or macOS |
||||
|
||||
You can export your passwords directly from Safari or from macOS System Preferences: |
||||
|
||||
|
||||
<ul class="nav nav-tabs" id="myTab" role="tablist"> |
||||
<li class="nav-item" id="tab" role="presentation"> |
||||
<a class="nav-link active" id="safaritab" data-bs-toggle="tab" data-target="#safari" role="tab" aria-controls="safari" aria-selected="true">Safari</a> |
||||
</li> |
||||
<li class="nav-item" id="tab" role="presentation"> |
||||
<a class="nav-link" id="mactab" data-bs-toggle="tab" data-target="#mac" role="tab" aria-controls="mac" aria-selected="false">macOS System Preferences</a> |
||||
</li> |
||||
</ul> |
||||
|
||||
<div class="tab-content" id="clientsContent"> |
||||
<div class="tab-pane show active" id="safari" role="tabpanel" aria-labelledby="safaritab"> |
||||
{% capture safari_content %} |
||||
### Safari |
||||
|
||||
To export your data from Safari: |
||||
|
||||
1. Select **File** → **Export** → **Passwords...** from the macOS menu bar: |
||||
|
||||
{% image importing/safari.png Export from Safari %} |
||||
2. You will be prompted with a dialog confirming that you want to export saved passwords. Select **Export Passwords...** to continue. |
||||
3. Save your export to any location and use Touch ID or your macOS password to complete the export. |
||||
|
||||
{% endcapture %} |
||||
{{ safari_content | markdownify }} |
||||
</div> |
||||
<div class="tab-pane" id="mac" role="tabpanel" aria-labelledby="mactab"> |
||||
{% capture macos_content %} |
||||
### macOS System Preferences |
||||
|
||||
To export your data from macOS: |
||||
|
||||
1. Open the macOS **System Preferences** app. |
||||
2. In System Preferences, select **Passwords**. You'll be prompted to use Touch ID or your password to continue. |
||||
3. On the Passwords dialog, select the menu icon ( {% icon fa-ellipsis-h %} ) and select **Export Passwords...**: |
||||
|
||||
{% image importing/macos.png Export from macOS System preferences %} |
||||
4. You will be prompted with a dialog confirming that you want to export saved passwords. Select **Export Passwords...** to continue. |
||||
5. Save your export to any location and use Touch ID or your password to complete the export. |
||||
|
||||
{% endcapture %} |
||||
{{ macos_content | markdownify }} |
||||
</div> |
||||
</div> |
||||
|
||||
## Import to Bitwarden |
||||
|
||||
Importing data to Bitwarden **can only be done from the Web Vault** or CLI. Data is [encrypted]({{site.baseurl}}/article/what-encryption-is-used) locally before being sent to the server for storage. To import your data: |
||||
|
||||
1. In the Web Vault, select **Tools** from the top navigation bar. |
||||
2. Select **Import Data** from the left-hand Tools menu. |
||||
3. From the format dropdown, choose **Safari and macOS (csv)**. |
||||
4. Select the **Choose File** button and add the file to import or copy/paste the contents of your file into the input box. |
||||
|
||||
{% callout warning %}Import to Bitwarden can't check whether items in the file to import are duplicative of items in your Vault. This means that **importing multiple files will create duplicates** of Vault items if that item is alread in the Vault.{% endcallout %} |
||||
5. Select the **Import Data** button to complete your import. |
||||
6. After successful import, delete the import source file from your computer. This will protect you in the event your computer is compromised. |
||||
|
||||
Currently, file attachments are not included in Bitwarden import operations and will need to be uploaded to your Vault manually. For more information, see [File Attachments]({{site.baseurl}}/article/attachments/). |
||||
@ -0,0 +1,70 @@
@@ -0,0 +1,70 @@
|
||||
--- |
||||
layout: article |
||||
title: About Key Connector |
||||
categories: [login-with-sso] |
||||
featured: false |
||||
popular: false |
||||
tags: [key connector, customer-managed encryption, login with sso] |
||||
order: "05" |
||||
description: "Bitwarden enterprise plan users can take advantage of Single Sign On (SSO) Customer-managed Encryption through Key Connector to streamline Vault authentication and decryption. Find out more in this article." |
||||
--- |
||||
|
||||
## What is Key Connector? |
||||
|
||||
Key Connector is a self-hosted application that facilitates **Customer-managed Encryption**, allowing Enterprise Organizations to serve cryptographic keys to Bitwarden clients. Key Connector runs as a docker container on the same network as existing services, and can be used with [Login with SSO]({{site.baseurl}}/article/about-sso/) to serve cryptographic keys for an Organization as an alternative to requiring a Master Password for Vault decryption ([learn more](#why-use-key-connector)). |
||||
|
||||
Key Connector requires connection to a **database where encrypted user keys are stored** and an **RSA Key Pair to encrypt and decrypt stored user keys**. Key Connector can be [configured]({{site.baseurl}}/article/deploy-key-connector/) with a variety of both database providers (e.g. MSSQL, PostgreSQL, MySQL) and Key Pair storage providers (e.g. Hashicorp Vault, Cloud KMS Providers, On-prem HSM devices) in order to fit your business' infrastructure requirements. |
||||
|
||||
{% image sso/keyconnector/keyconnector-diagram.png Key Connector Architecture %} |
||||
|
||||
## Why use Key Connector? |
||||
|
||||
**In implementations that leverage Master Password decryption**, your Identity Provider handles authentication and a member's Master Password is required for Vault decryption. This separation of concerns is an important step that ensures that only an Organization member has access to the key which is required to decrypt your Organization's sensitive Vault data. |
||||
|
||||
**In implementations that leverage Key Connector for decryption**, your Identity Provider still handles authentication, but Vault decryption is handled by Key Connector. By accessing an encrypted Key Database (*see the above diagram*), Key Connector provides a user their decryption key when they log in, without requiring a Master Password. |
||||
|
||||
We often refer to Key Connector implementations as leveraging **Customer-Managed Encryption**, because your business has sole responsibility for the management of the Key Connector application and of the Vault decryption keys it serves. For enterprises ready to deploy and maintain a Customer-Managed Encryption environment, Key Connector facilitates a streamlined Vault login experience. |
||||
|
||||
### Impact on Master Passwords |
||||
|
||||
Because Key Connector replaces Master Password-based decryption with customer-managed decryption keys, Organization members will be **required to remove the Master Password from their account**. Once removed, all Vault decryption actions will be conducted using the stored user key. Besides logging in, this will have some impacts on [offboarding](#impact-on-offboarding) and [on other features](#impact-on-other-features) you should be aware of. |
||||
|
||||
{% callout warning %} |
||||
Currently, there is not a way to re-create Master Passwords for accounts that have removed them. |
||||
|
||||
For this reason, Organization Owners and Admins are not able to remove their Master Password and must continue using their Master Password even if using SSO. It is possible to elevate a user who has removed their Master Password to Owner or Admin, however we **strongly recommend** that your Organization always have at least one Owner with a Master Password. |
||||
{% endcallout %} |
||||
|
||||
### Impact on Organization Membership |
||||
|
||||
Key Connector required users to [remove their Master Passwords](#impact-on-master-passwords) and instead uses a company-owned database of cryptographic keys to decrypt users' Vaults. Because Master Passwords can not be re-created for accounts that have removed them, this means that once an account uses Key Connector decryption it is for all intents and purposes **owned by the Organization**. |
||||
|
||||
These accounts **may not leave the Organization**, as in doing so they would lose any means of decrypting Vault data. Similarly, if an Organization administrator removes the account from the Organization, the account will lose any means of decrypting Vault data. |
||||
|
||||
### Impact on other Features |
||||
|
||||
|Feature|Impact| |
||||
|-------|------| |
||||
|**Verification**|There are a number of features in Bitwarden client applications that ordinarily require entry of a Master Password in order to be used, including [exporting]({{site.baseurl}}/article/export-your-data/) Vault data, changing [Two-step Login]({{site.baseurl}}/article/setup-two-step-login) settings, retrieving [API Keys]({{site.baseurl}}/article/personal-api-key/), and more.<br><br>**All these features** will replace Master Password confirmation with email-based TOTP verification.| |
||||
|**Vault Lock/Unlock**|Under ordinary circumstances, a [locked Vault can be unlocked]({{site.baseurl}}/article/vault-timeout/#vault-timeout-action) using a Master Password. When your Organization is using Key Connector, locked client applications can only be unlocked with a [PIN]({{site.baseurl}}/article/unlock-with-pin/) or with [Biometrics]({{site.baseurl}}/article/biometrics/).<br><br>If neither PIN nor Biometrics are enabled for a client application, the Vault will always log out instead of lock. Unlike unlocking, logging in **always** requires an internet connection ([learn more]({{site.baseurl}}/article/vault-timeout/#vault-timeout-action)).| |
||||
|**Master Password re-prompt**|When Key Connector is being used, [Master Password re-prompt]({{site.baseurl}}/article/managing-items/#protect-individual-items) will be disabled for any user that has removed their Master Password as a result of your Key Connector implementation.| |
||||
|**Admin Password Reset**|When Key Connector is being used, [Admin Password Reset]({{site.baseurl}}/article/admin-reset/) will be disabled for any user that has removed their Master Password as a result of your Key Connector implementation.| |
||||
|**Emergency Access**|When Key Connector is being used, the Emergency Access [Account Takeover option]({{site.baseurl}}/article/emergency-access/#user-access) will be disabled for any user that has removed their Master Password as a result of your Key Connector implementation.<br><br>Trusted emergency contacts may still **View** a grantor's personal Vault data, subject to the established [emergency access workflow]({{site.baseurl}}/article/emergency-access/#initiate-emergency-access).| |
||||
|
||||
## How do I start using Key Connector? |
||||
|
||||
In order to get started using Key Connector for Customer-managed Encryption, please review the following requirements: |
||||
|
||||
{% callout warning %} |
||||
Management of cryptographic keys is incredibly sensitive and is **only recommended for enterprises with a team and infrastructure** that can securely support deploying and managing a key server. |
||||
{% endcallout %} |
||||
|
||||
In order to use Key Connector you must also: |
||||
|
||||
- [Have an Enterprise Organization]({{site.baseurl}}/article/about-bitwarden-plans/#enterprise-organizations) |
||||
- [Have a self-hosted Bitwarden server]({{site.baseurl}}/hosting/) |
||||
- [Have an active SSO implementation]({{site.baseurl}}/article/about-sso/) |
||||
- [Activate the Single Organization and Single Sign-On policies]({{site.baseurl}}/article/policies/) |
||||
|
||||
<br> |
||||
If your Organization meets or can meet these requirements, including a team and infrastructure that can support management of a key server, [Contact Us](https://bitwarden.com/contact) and we'll activate Key Connector. |
||||
@ -0,0 +1,331 @@
@@ -0,0 +1,331 @@
|
||||
--- |
||||
layout: article |
||||
title: Deploy Key Connector |
||||
categories: [login-with-sso] |
||||
featured: false |
||||
popular: false |
||||
tags: [key connector, customer-managed encryption, login with sso] |
||||
order: "06" |
||||
description: "This article guides you through the process of installing and deploying the Key Connector Bitwarden service to your self-hosted Bitwarden server." |
||||
--- |
||||
|
||||
This article will walk you through the procedure for enabling and configuring Key Connector in an existing self-hosted environment. **Before proceeding**, please thoroughly review the [About Key Connector]({{site.baseurl}}/article/about-key-connector/) article to ensure a full understanding of what Key Connector is, how it works, and the impacts of implementation. |
||||
|
||||
## Requirements |
||||
|
||||
{% callout warning %} |
||||
Management of cryptographic keys is incredibly sensitive and is **only recommended for enterprises with a team and infrastructure** that can securely support deploying and managing a key server. |
||||
{% endcallout %} |
||||
|
||||
In order to use Key Connector you must: |
||||
|
||||
- [Have an Enterprise Organization]({{site.baseurl}}/article/about-bitwarden-plans/#enterprise-organizations) |
||||
- [Have a self-hosted Bitwarden server]({{site.baseurl}}/hosting/) |
||||
- [Have an active SSO implementation]({{site.baseurl}}/article/about-sso/) |
||||
- [Activate the Single Organization and Single Sign-On policies]({{site.baseurl}}/article/policies/) |
||||
|
||||
<br> |
||||
If your Organization meets or can meet these requirements, including a team and infrastructure that can support management of a key server, [Contact Us](https://bitwarden.com/contact) and we'll activate Key Connector. |
||||
|
||||
## Setup & Deploy Key Connector |
||||
|
||||
**Once you've contacted us regarding Key Connector**, we'll reach out to kick off a Key Connector discussion. The steps that follow in this article must be completed in collaboration with Bitwarden Customer Success & Implementation specialists. |
||||
|
||||
### Obtain New License File |
||||
|
||||
Once you've contacted us regarding Key Connector, a member of the Customer Success & Implementation team will generate a Key Connector-enabled license file for your Organization. When your Bitwarden collaborator instructs you it is ready, complete the following steps to obtain the new license: |
||||
|
||||
1. Open your Bitwarden Cloud Web Vault and navigate to your Organization's **Settings** → **Subscription** screen. |
||||
2. Select the **Download License** button. |
||||
3. When prompted, enter the Installation ID that was used to install your self-hosted server and select **Submit**. If you don't know your Installation ID off-hand, you can retrieve it from `./bwdata/env/global.override.env`. |
||||
|
||||
You won't need your license file immediately, but you will be required to upload it to your self-hosted server [in a later step](#activate-key-connector). |
||||
|
||||
### Initialize Key Connector |
||||
|
||||
To prepare your Bitwarden server for Key Connector: |
||||
|
||||
1. Save a [backup]({{site.baseurl}}/article/backup-on-premise/) of, at a minimum, `.bwdata/mssql`. Once Key Connector is in use, it's recommended that you have access to a pre-Key Connector backup image in case of an issue. |
||||
|
||||
{% callout info %}If you're using an [external MSSQL database]({{site.baseurl}}/article/external-db/), take a backup of your database in whatever way fits your implementation.{% endcallout %} |
||||
2. Update your self-hosted Bitwarden installation in order to retrieve the latest changes: |
||||
|
||||
``` |
||||
./bitwarden.sh update |
||||
``` |
||||
3. Edit the `.bwdata/config.yml` file and enable Key Connector by toggling `enable_key_connector` to `true`. |
||||
|
||||
``` |
||||
nano bwdata/config.yml |
||||
``` |
||||
4. Update your self-hosted Bitwarden installation again in order to apply the change made in **Step 3**: |
||||
|
||||
``` |
||||
./bitwarden.sh update |
||||
``` |
||||
|
||||
### Configure Key Connector |
||||
|
||||
To configure Key Connector: |
||||
|
||||
1. Edit the `.bwdata/env/key-connector.override.env` file that will have been downloaded with the `./bitwarden.sh update`. |
||||
|
||||
``` |
||||
nano bwdata/env/key-connector.override.env |
||||
``` |
||||
|
||||
{% callout warning %}This file will be pre-populated with default values that will spin up a functional local Key Connector setup, however the **default values are not recommended for production environments**.{% endcallout %} |
||||
2. In `key-connector.override.env`, you will need to specify values for the following: |
||||
|
||||
- [Endpoints](#endpoints): What Bitwarden endpoints Key Connector can communicate with. |
||||
- [Database](#database): Where Key Connector will store and retrieve user keys. |
||||
- [RSA Key Pair](#rsa-key): How Key Connector will access an RSA key pair to protect user keys at rest. |
||||
|
||||
#### Endpoints |
||||
|
||||
Automated setup will populate endpoint values based on your installation configuration, however it's recommended that you confirm the following values in `key-connector.override.env` are accurate for your setup: |
||||
|
||||
``` |
||||
keyConnectorSettings__webVaultUri=https://your.bitwarden.domain.com |
||||
keyConnectorSettings__identityServerUri=https://your.bitwarden.domain.com/identity/ |
||||
``` |
||||
|
||||
#### Database |
||||
|
||||
Key Connector must access a database which stores encrypted user keys keys for your Organization members. Create a secure database to store encrypted users keys and replace the default `keyConnectorSettings__database__` values in `key-connector.override.env` with the values designated in the **Required Values** column for the chosen database: |
||||
|
||||
{% callout warning %} |
||||
Migration from one database to another is **not supported** at this time. Regardless of which provider you choose, **implement a frequent automated backup schedule** for the database. |
||||
{% endcallout %} |
||||
|
||||
|Database|Required Values| |
||||
|--------|---------------| |
||||
|Local JSON (**default**)|**Not recommended outside of testing.**<br><br>`keyConnectorSettings__database__provider=json`<br>`keyConnectorSettings__database__jsonFilePath={File_Path}`| |
||||
|Microsoft SQL Server|`keyConnectorSettings__database__provider=sqlserver`<br> `keyConnectorSettings__database__sqlServerConnectionString={Connection_String}`<br><br>[Learn how to format MSSQL Connection Strings](https://docs.microsoft.com/en-us/sql/connect/ado-net/connection-string-syntax?view=sql-server-ver15){:target="\_blank"}| |
||||
|PostgreSQL|`keyConnectorSettings__database__provider=postgresql`<br>`keyConnectorSettings__database__postgreSqlConnectionString={Connection_String}`<br><br>[Learn how to format PostgreSQL Connection Strings](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING){:target="\_blank"}| |
||||
|MySQL/MariaDB|`keyConnectorSettings__database__provider=mysql`<br>`keyConnectorSettings__database__mySqlConnectionString={Connection_String}`<br><br>[Learn how to format MySQL Connection Strings](https://dev.mysql.com/doc/connector-net/en/connector-net-connections-string.html){:target="\_blank"}| |
||||
|SQLite|`keyConnectorSettings__database__provider=sqlite`<br>`keyConnectorSettings__database__sqliteConnectionString={Connection_String}`<br><br>[Learn how to format SQLite Connection Strings](https://docs.microsoft.com/en-us/dotnet/standard/data/sqlite/connection-strings){:target="\_blank"}| |
||||
|MongoDB|`keyConnectorSettings__database__provider=mongo`<br>`keyConnectorSettings__database__mongoConnectionString={Connection_String}`<br>`keyConnectorSettings__database__mongoDatabaseName={DatabaseName}`<br><br>[Learn how to format MongoDB Connection Strings](https://docs.mongodb.com/manual/reference/connection-string/){:target="\_blank"}| |
||||
|
||||
#### RSA Key Pair |
||||
|
||||
Key Connector uses an RSA key pair to protect user keys at rest. Create a key pair and replace the default `keyConnectorSettings__rsaKey__` and `keyConnectorSettings__certificate__` values in `key-connector.override.env` with the values required for your chosen implementation. |
||||
|
||||
{% callout success %} |
||||
The RSA key pair must be **at a minimum** 2048 bits in length. |
||||
{% endcallout %} |
||||
|
||||
Generally, your options include granting Key Connector access to an X509 **Certificate** that contains the key pair or granting Key Connector access directly to the **Key Pair**: |
||||
|
||||
<ul class="nav nav-tabs" id="myTab" role="tablist"> |
||||
<li class="nav-item" id="tab" role="presentation"> |
||||
<a class="nav-link active" id="certtab" data-bs-toggle="tab" data-target="#cert" role="tab" aria-controls="cert" aria-selected="true">Certificate</a> |
||||
</li> |
||||
<li class="nav-item" id="tab" role="presentation"> |
||||
<a class="nav-link" id="azuretab" data-bs-toggle="tab" data-target="#azure" role="tab" aria-controls="azure" aria-selected="false">Key Pair</a> |
||||
</li> |
||||
</ul> |
||||
|
||||
<div class="tab-content" id="clientsContent"> |
||||
<div class="tab-pane show active" id="cert" role="tabpanel" aria-labelledby="certtab"> |
||||
{% capture cert_content %} |
||||
### Certificate |
||||
|
||||
To use an X509 certificate that contains an RSA key pair, specify the values required depending on the location where your certificate is stored (see **Filesystem**, **OS Certificate Store**, etc.): |
||||
|
||||
{% callout success %} |
||||
The certificate **must** be made available as a PKCS12 `.pfx` file, for example: |
||||
|
||||
``` |
||||
openssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout bwkc.key -out bwkc.crt -subj "/CN=Bitwarden Key Connector" -days 36500 |
||||
|
||||
openssl pkcs12 -export -out ./bwkc.pfx -inkey bwkc.key -in bwkc.crt -passout pass:{Password} |
||||
``` |
||||
|
||||
In all certificate implementations, you'll need the `CN` value shown in this example. |
||||
{% endcallout %} |
||||
|
||||
#### Filesystem (default) |
||||
|
||||
If the certificate is stored on the filesystem of the machine running Key Connector, specify the following values: |
||||
|
||||
{% callout info %} |
||||
By default, Key Connector will be configured to create a `.pfx` file located at `etc/bitwarden/key-connector/bwkc.pfx` with a generated password. **It is not recommended** for enterprise implementations to use these defaults. |
||||
{% endcallout %} |
||||
|
||||
``` |
||||
keyConnectorSettings__rsaKey__provider=certificate |
||||
keyConnectorSettings__certificate__provider=filesystem |
||||
keyConnectorSettings__certificate__filesystemPath={Certificate_Path} |
||||
keyConnectorSettings__certificate__filesystemPassword={Certificate_Password} |
||||
``` |
||||
|
||||
#### OS Certificate Store |
||||
|
||||
If the certificate is stored on the Operating System Certificate Store of the machine running Key Connector, specify the following values: |
||||
|
||||
``` |
||||
keyConnectorSettings__rsaKey__provider=certificate |
||||
keyConnectorSettings__certificate__provider=store |
||||
keyConnectorSettings__certificate__storeThumbprint={Certificate_Thumbprint} |
||||
``` |
||||
|
||||
#### Azure Blob Storage |
||||
|
||||
If the certificate is uploaded to Azure Blob Storage, specify the following values: |
||||
|
||||
``` |
||||
keyConnectorSettings__rsaKey__provider=certificate |
||||
keyConnectorSettings__certificate__provider=azurestorage |
||||
keyConnectorSettings__certificate__azureStorageConnectionString={Connection_String} |
||||
keyConnectorSettings__certificate__azureStorageContainer={Container_Name} |
||||
keyConnectorSettings__certificate__azureStorageFileName={File_Name} |
||||
keyConnectorSettings__certificate__azureStorageFilePassword={File_Password} |
||||
``` |
||||
|
||||
[Learn how to format Azure Blob Storage Connection Strings](https://docs.microsoft.com/en-us/azure/data-explorer/kusto/api/connection-strings/storage#azure-blob-storage){:target="\_blank"} |
||||
|
||||
#### Azure Key Vault |
||||
|
||||
If certificate is stored in Azure Key Vault, specify the following values: |
||||
|
||||
{% callout info %} |
||||
To use Azure Key Vault to store your `.pfx` certificate, you'll need to create an Active Directory **App Registration**. This App Registration must: |
||||
- Give delegated API permissions to access Azure Key Vault |
||||
- Have a client secret generated to allow access by Key Connector |
||||
{% endcallout %} |
||||
|
||||
``` |
||||
keyConnectorSettings__certificate__provider=azurekv |
||||
keyConnectorSettings__certificate__azureKeyvaultUri={Vault_URI} |
||||
keyConnectorSettings__certificate__azureKeyvaultCertificateName={Certificate_Name} |
||||
keyConnectorSettings__certificate__azureKeyvaultAdTenantId={ActiveDirectory_TenantId} |
||||
keyConnectorSettings__certificate__azureKeyvaultAdAppId={AppRegistration_ApplicationId} |
||||
keyConnectorSettings__certificate__azureKeyvaultAdSecret={AppRegistration_ClientSecretValue} |
||||
``` |
||||
|
||||
#### Hashicorp Vault |
||||
|
||||
If the certificate is stored in Hashicorp Vault, specify the following values: |
||||
|
||||
``` |
||||
keyConnectorSettings__rsaKey__provider=certificate |
||||
keyConnectorSettings__certificate__provider=vault |
||||
keyConnectorSettings__certificate__vaultServerUri={Server_URI} |
||||
keyConnectorSettings__certificate__vaultToken={Token} |
||||
keyConnectorSettings__certificate__vaultSecretMountPoint={Secret_MountPoint} |
||||
keyConnectorSettings__certificate__vaultSecretPath={Secret_Path} |
||||
keyConnectorSettings__certificate__vaultSecretDataKey={Secret_DataKey} |
||||
keyConnectorSettings__certificate__vaultSecretFilePassword={Secret_FilePassword} |
||||
``` |
||||
|
||||
{% endcapture %} |
||||
{{ cert_content | markdownify }} |
||||
</div> |
||||
<div class="tab-pane" id="azure" role="tabpanel" aria-labelledby="azuretab"> |
||||
{% capture key_content %} |
||||
### Key Pair |
||||
|
||||
To use a Cloud Provider or physical device to store to a RSA 2048 key pair, specify the values required depending on your chosen implementation (see **Azure Key Vault**, **Google Cloud Key Management**, etc.): |
||||
|
||||
#### Azure Key Vault |
||||
|
||||
If you're using Azure Key Vault to store a RSA 2048 key pair, specify the following values: |
||||
|
||||
{% callout info %} |
||||
To use Azure Key Vault to store your RSA 2048 key, you'll need to create an Active Directory **App Registration**. This App Registration must: |
||||
- Give delegated API permissions to access Azure Key Vault |
||||
- Have a client secret generated to allow access by Key Connector |
||||
{% endcallout %} |
||||
|
||||
``` |
||||
keyConnectorSettings__rsaKey__provider=azurekv |
||||
keyConnectorSettings__rsaKey__azureKeyvaultUri={Vault_URI} |
||||
keyConnectorSettings__rsaKey__azureKeyvaultKeyName={Key_Name} |
||||
keyConnectorSettings__rsaKey__azureKeyvaultAdTenantId={ActiveDirectory_TenantId} |
||||
keyConnectorSettings__rsaKey__azureKeyvaultAdAppId={AppRegistration_ApplicationId} |
||||
keyConnectorSettings__rsaKey__azureKeyvaultAdSecret={AppRegistration_ClientSecretValue} |
||||
``` |
||||
|
||||
[Learn how to use Azure Key Vault to create a key pair](https://docs.microsoft.com/en-us/azure/key-vault/keys/quick-create-portal){:target="\_blank"} |
||||
|
||||
#### Google Cloud Key Management |
||||
|
||||
If you're using Google Cloud Key Management to store a RSA 2048 key pair, specify the following values: |
||||
|
||||
``` |
||||
keyConnectorSettings__rsaKey__provider=gcpkms |
||||
keyConnectorSettings__rsaKey__googleCloudProjectId={Project_Id} |
||||
keyConnectorSettings__rsaKey__googleCloudLocationId={Location_Id} |
||||
keyConnectorSettings__rsaKey__googleCloudKeyringId={Keyring_Id} |
||||
keyConnectorSettings__rsaKey__googleCloudKeyId={Key_Id} |
||||
keyConnectorSettings__rsaKey__googleCloudKeyVersionId={KeyVersionId} |
||||
``` |
||||
|
||||
[Learn how to use Google Cloud Key Management Service to create key rings and asymmetric keys](https://cloud.google.com/kms/docs/creating-asymmetric-keys){:target="\_blank"} |
||||
|
||||
#### AWS Key Management Service |
||||
|
||||
If you're using AWS Key Management Service (KMS) to store a RSA 2048 key pair, specify the following values: |
||||
|
||||
``` |
||||
keyConnectorSettings__rsaKey__provider=awskms |
||||
keyConnectorSettings__rsaKey__awsAccessKeyId={AccessKey_Id} |
||||
keyConnectorSettings__rsaKey__awsAccessKeySecret={AccessKey_Secret} |
||||
keyConnectorSettings__rsaKey__awsRegion={Region_Name} |
||||
keyConnectorSettings__rsaKey__awsKeyId={Key_Id} |
||||
``` |
||||
|
||||
[Learn how to use AWS KMS to create asymmetric keys](https://docs.aws.amazon.com/kms/latest/developerguide/asymm-create-key.html){:target="\_blank"} |
||||
|
||||
#### PKCS11 Physical HSM |
||||
|
||||
If you're using a physical HSM device with the PKCS11 provider, specify the following values: |
||||
|
||||
``` |
||||
keyConnectorSettings__rsaKey__provider=pkcs11 |
||||
keyConnectorSettings__rsaKey__pkcs11Provider={Provider} |
||||
keyConnectorSettings__rsaKey__pkcs11SlotTokenSerialNumber={Token_SerialNumber} |
||||
keyConnectorSettings__rsaKey__pkcs11LoginUserType={Login_UserType} |
||||
keyConnectorSettings__rsaKey__pkcs11LoginPin={Login_PIN} |
||||
|
||||
ONE OF THE FOLLOWING TWO: |
||||
keyConnectorSettings__rsaKey__pkcs11PrivateKeyLabel={PrivateKeyLabel} |
||||
keyConnectorSettings__rsaKey__pkcs11PrivateKeyId={PrivateKeyId} |
||||
``` |
||||
|
||||
Where: |
||||
- `{Provider}` can be `yubihsm` or `opensc` |
||||
- `{Login_UserType}` can be `user`, `so`, or `context_specific` |
||||
|
||||
{% callout info %} |
||||
If you're using the PKCS11 provider to store your private key on an HSM device, the associated public key must be made available and configured as a certificate using any of the options found in the **Certificates** tab. |
||||
{% endcallout %} |
||||
|
||||
{% endcapture %} |
||||
{{ key_content | markdownify }} |
||||
</div> |
||||
</div> |
||||
|
||||
### Activate Key Connector |
||||
|
||||
Now that Key Connector is [fully configured](#configure-key-connector) and you have a [Key Connector-enabled license](#obtain-a-new-license), complete the following steps: |
||||
|
||||
1. Restart your self-hosted Bitwarden installation in order to apply the configuration changes: |
||||
|
||||
``` |
||||
./bitwarden.sh restart |
||||
``` |
||||
2. Log in to your self-hosted Bitwarden as an **Organization Owner** and navigate to the Organization **Settings** → **Subscription** screen. |
||||
3. Select the **Update License** button and upload the Key Connector-enabled license [retrieved in an earlier step](#obtain-new-license-file): |
||||
|
||||
{% image hosting/update-license.png Update your License %} |
||||
3. Navigate to the Organization **Manage** screen. |
||||
4. If you haven't already, navigate to the **Policies** screen and enable the [Single Organization]({{site.baseurl}}/article/policies/#single-organization) and [Single Sign-On Authentication]({{site.baseurl}}/article/policies/#single-sign-on-authentication) policies. **Both are required to use Key Connector**. |
||||
5. Navigate to the **Single Sign-On** screen: |
||||
|
||||
{% callout success %}The next few steps assume that you already have an active [Login with SSO]({{site.baseurl}}/article/about-sso/) implementation using [SAML 2.0]({{site.baseurl}}/article/configure-sso-saml/) or [OIDC]({{site.baseurl}}/article/configure-sso-oidc/). **If you don't**, please implement and test Login with SSO before proceeding.{% endcallout %} |
||||
{% image sso/keyconnector/enable-keyconnector.png %} |
||||
6. In the **Member Decryption Options** section, select **Key Connector**. |
||||
7. In the **Key Connector URL** input, enter the address Key Connector is running at (by default, `http://localhost:5000`) and select the **Test** button to ensure you can reach Key Connector. |
||||
8. Scroll to the bottom of the screen and select **Save**. |
||||
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
--- |
||||
layout: article |
||||
title: Member Decryption Options |
||||
categories: [login-with-sso] |
||||
featured: false |
||||
popular: false |
||||
tags: [key connector, customer-managed encryption, login with sso, master password decryption] |
||||
order: "04" |
||||
description: "This article covers the Vault decryption options available for Enterprise Organizations leveraging Login with SSO." |
||||
--- |
||||
|
||||
What makes Login with SSO unique is that it retains our zero-knowledge encryption model. Nobody at Bitwarden has access to your Vault data and, similarly, **neither should your Identity Provider**. That's why Login with SSO **decouples authentication and decryption**. In all Login with SSO implementations, your Identity Provider cannot and will not have access to the decryption key needed to decrypt Vault data. |
||||
|
||||
**Member Decryption Options** are used to determine what decryption key will be used to decrypt Vault data in scenarios where Login with SSO is handling authentication. Options include: |
||||
|
||||
- **Master Password**: Once authenticated, Organization members will decrypt Vault data using their [Master Passwords]({{site.baseurl}}/article/master-password/). |
||||
- **Key Connector**: Connect Login with SSO to your self-hosted decryption key server. Using this option, Organization members won't need to use their Master Passwords to decrypt Vault data. Instead, [Key Connector]({{site.baseurl}}/article/about-key-connector/) will retrieve a decryption key securely stored in a database owned and managed by you. |
||||
|
||||
|
||||
{% callout success %} |
||||
Due to the sensitivity of storing decryption keys, the **Key Connector** option is **disabled by default** and currently **only available to Organizations self-hosting Bitwarden**. |
||||
|
||||
If you're interesting in using Key Connector, check out the [About Key Connector]({{site.baseurl}}/article/about-key-connector/) and [Deploy Key Connector]({{site.baseurl}}/article/deploy-key-connector/) articles and [Contact Us](https://bitwarden.com/contact/) to setup a time for us to help you get started. |
||||
{% endcallout %} |
||||
@ -0,0 +1,72 @@
@@ -0,0 +1,72 @@
|
||||
--- |
||||
layout: article |
||||
title: Redeem Families Sponsorship |
||||
categories: [plans-and-pricing] |
||||
featured: false |
||||
popular: false |
||||
tags: [families organizations, enterprise organizations, sponsorship] |
||||
order: "05" |
||||
description: "This article explains how Enterprise Organization users can redeem a free Families Organization for use in their personal lives." |
||||
--- |
||||
|
||||
Members of [Enterprise Organizations]({{site.baseurl}}/article/about-organizations/#types-of-organizations) are offered a **free Families Organization** sponsorship that can be applied to a new or pre-existing Families Organization and redeemed directly from the Web Vault. |
||||
|
||||
Using a **Families Organization**, you can securely share Vault data between yourself and up to 5 friends or family members. Families Organizations include premium Bitwarden features for all 6 users, including [advanced Two-step Login methods]({{site.baseurl}}/article/setup-two-step-login), [encrypted file attachments]({{site.baseurl}}/article/attachments), [Emergency Access]({{site.baseurl}}/article/emergency-access/), and [more]({{site.baseurl}}/article/about-bitwarden-plans/#compare-the-plans). |
||||
|
||||
## Redeem your Sponsorship |
||||
|
||||
To redeem your sponsorship: |
||||
|
||||
1. Log in to the Bitwarden account attached to the sponsoring Organization. |
||||
2. Navigate to **Settings** → **Free Bitwarden Families**: |
||||
|
||||
{% image plans-and-pricing/f4e/f4e-1-alt.png Redeem your Free Bitwarden Families Sponsorship %} |
||||
3. On this screen, provide a **personal email** you want to redeem the sponsorship with and select **Redeem**: |
||||
|
||||
{% callout success%}If you already have a separate personal Bitwarden account, use the email address attached to that account. If you don't already have a separate personal Bitwarden account, you'll need to create one with the personal email you enter here.<br><br>**Do not** use the email address or Bitwarden account attached to the sponsoring Organization.{% endcallout %} |
||||
4. In your inbox, you'll get an email from Bitwarden inviting you to accept the sponsorship: |
||||
|
||||
{% image plans-and-pricing/f4e/f4e-2.png Families Sponsorship Email %} |
||||
|
||||
Select **Accept Sponsorship** to continue. |
||||
5. If there is a Bitwarden account associated with the provided **personal email**, log in. If there is not an account associated with the personal email, you'll be directed to the Create Account screen. |
||||
6. Once you've logged in, you'll be directed to a screen where you can finish redeeming your sponsorship for a **New Families Organization** or an **Existing Families Organization**: |
||||
|
||||
<ul class="nav nav-tabs" id="myTab" role="tablist"> |
||||
<li class="nav-item" role="presentation"> |
||||
<a class="nav-link active" id="mobtab" data-target="#mobile" role="tab" aria-controls="mobile" aria-selected="false">New Families Organization</a> |
||||
</li> |
||||
<li class="nav-item" role="presentation"> |
||||
<a class="nav-link" id="desktab" data-target="#desktop" role="tab" aria-controls="desktop" aria-selected="false">Existing Families Organization</a> |
||||
</li> |
||||
</ul> |
||||
<div class="tab-content" id="clientsContent"> |
||||
<div class="tab-pane show active" id="mobile" role="tabpanel" aria-labelledby="mobtab"> |
||||
<br> |
||||
<p>Select <b>New Families Organization</b> from the dropdown:</p> |
||||
<img src="../../images/plans-and-pricing/f4e/f4e-4.png" style="border-style: solid; border-width: 2.5px; border-color: #DEE2E6; width: 100%;"> |
||||
<br> |
||||
<br> |
||||
<p>Fill in the following information:</p> |
||||
<ul> |
||||
<li>An <b>Organization Name</b>.</li> |
||||
<li>A <b>Billing Email</b>.</li> |
||||
<li>Whether you want to add <b>Additional Storage (GB)</b>. Your sponsorship covers 1 GB free.</li> |
||||
<li><b>Payment Information</b>.</li> |
||||
</ul> |
||||
<br> |
||||
<p> You won't have to make any payments for the Families Organization as long as you are an active member of the sponsoring Organization, unless you add <b>Additional Storage</b>. When you're done filling in your information, select <b>Submit</b>.</p> |
||||
</div> |
||||
<div class="tab-pane" id="desktop" role="tabpanel" aria-labelledby="desktab"> |
||||
<br> |
||||
<p>Select the Organization from the dropdown and select <b>Accept Offer</b>:</p> |
||||
<img src="../../images/plans-and-pricing/f4e/f4e-3.png" style="border-style: solid; border-width: 2.5px; border-color: #DEE2E6; width: 100%;"> |
||||
<br> |
||||
<br> |
||||
<p>When you accept the offer, your old subscription will be replaced by the Enterprise Sponsorship. You won't have to make any payments for the Families Organization as long as you are an active member of the sponsoring Organization.</p> |
||||
</div> |
||||
</div> |
||||
|
||||
{% callout success %} |
||||
**Congratulations!** If you're new to using Bitwarden Families Organizations, we recommend checking out [this article]({{site.baseurl}}/article/getting-started-organizations/#get-to-know-your-organization) to learn the basics. |
||||
{% endcallout %} |
||||
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
--- |
||||
layout: article |
||||
title: Send from iOS Extension |
||||
categories: [send] |
||||
featured: true |
||||
popular: false |
||||
hidden: true |
||||
tags: [bitwarden send, send, create a send, how to, ephemeral sharing] |
||||
order: "07" |
||||
description: "Learn how to use Bitwarden Send directly from the iOS Share menu." |
||||
--- |
||||
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 109 KiB |
|
After Width: | Height: | Size: 405 KiB |
|
After Width: | Height: | Size: 159 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 146 KiB |
|
After Width: | Height: | Size: 1.1 MiB |
|
After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 72 KiB |
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 1020 KiB |