1
0
mirror of https://github.com/bitwarden/help synced 2025-12-06 00:03:30 +00:00
Files
help/_articles/directory-connector/schedule-directory-sync.md
fred_the_tech_writer 906e2ca0dd Promote to Master (#748)
* initial commit

* adding quotes for the array error

* Create Gemfile

* Create Gemfile.lock

* add .nvmrc and .node-version

* removed /article from URL

* update links to work with netlify

* more fixed links

* link fixes

* update bad links

* Update netlify.toml

toml test for redirects

* article redirect

* link fixes

* Update index.html

* Update netlify.toml

* Update _config.yml

* Update netlify.toml

* Update netlify.toml

* Update netlify.toml

* Update netlify.toml

* Update netlify.toml

* add article back into URL for launch

* Update netlify.toml

* Update netlify.toml

* add order to categories front matter

* Update netlify.toml

* update

* sidemenu update

* Revert "sidemenu update"

This reverts commit 5441c3d35c.

* update order prop

* Navbar updates per Gary and compiler warnings

* font/style tweaks

* Update sidebar.html

* Stage Release Documentation (#739)

* initial drafts

* rewrite Custom Fields article to prioritize new context-menu option & better organize ancillary information

* edit

* edit

* Custom Field Context Menu & CAPTCHA item in release notes

* SSO relink event

* update rn

* small edits

* improve release notes titles

* fix side menu

* Edits courtest of mportune!

* update order

* link fixes

* link cleanup

* image updates and a link

* fix trailing slash

Co-authored-by: DanHillesheim <79476558+DanHillesheim@users.noreply.github.com>
2021-09-21 13:21:11 -04:00

3.9 KiB
Raw Blame History

layout, title, categories, featured, popular, tags, order
layout title categories featured popular tags order
article Schedule a Sync
directory-connector
true false
directory connector
directory sync
schedule
cronjob
07

For Organizations using the Directory Connector CLI, automatic syncs can be scheduled on defined intervals as an alternative to using the Desktop Applications Interval setting. This is particularly useful in headless environments, on in circumstances where a Desktop Application cannot be left running in the background.

Cron

In Unix-like environments, including Linux and macOS, use cron to schedule Directory Connector sync jobs:

Cron Permissions

When running a cron job, we recommend doing so as a dedicated Directory Connector user. Create a bwdc user if you haven't already, and add that user to the etc/cron.allow list. This will allow a non-Root user to set up and run cron jobs.

In order to continue, you will also need your Organization's API Key client_id and client_secret, which can be obtained by an Organization Owner from the Web Vault by navigating to Organization SettingsMy Organization.

Setup a Sync Script

In order avoid session timeouts, we recommend creating a shell script to run through cron. This script should securely read your client_secret to complete the login, and run a bwdc sync command that writes output to bwdc.log. If you need help creating a sync script, Contact Us.

{% comment %}

#!/bin/bash

#In order to protect your credentials, this script requires a .p0 file containing the API Key client_secret in base64. Create a temp file with the clear text client_secret and process it using `base64 clearTextFile > .p0`. The .p0 file should be owned and locked down by a unique account (e.g. bwdc) that is only utilized to run this script and Directory Connector. Delete the temp file after creating the .p0 file.

#Additionally, be sure to replace the BW_CLIENTID="..." value with your API Key client_id.

file=.p0
export BW_CLIENTID="organization.jAEFNqJ5-yKqx2-sX3jt-p7Mcw-aLY9qfFXbR69"
export BW_CLIENTSECRET=$(cat $file | base64 -d)

bwdc login

bwdc sync >> bwdc.log

{% endcomment %}

Setup the Cron Job

As the permitted bwdc user:

  1. Edit the user's crontab file by entering crontab -e in the terminal, or as edit the crontab file as any user by entering crontab -u <bwdc_username> -e.
  2. Add a line to the crontab that includes:
    • A scheduling expression that will determine the time/recurrence interval on which to execute the desired command (e.g. 0 0 * * 2 to run every Tuesday at midnight).
    • The command to execute at the specified time/recurrence interval. In this case, execute the previously created sync script (e.g. bwdcSyncService.sh):

For example, to run the sync script every Monday at 12:00:

# 0 12 * * 1 bwdcSyncService.sh

Cron Job Scheduling Expressions

Use the following reference when scheduling syncs via cron to ensure you're scheduling them for the desired time:

# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday;
# │ │ │ │ │                                   7 is also Sunday on some systems)
# │ │ │ │ │
# │ │ │ │ │
# * * * * * <command to execute>

{% callout success %} If you're not yet comfortable with cron job scheduling expressions, check out https://crontab.guru/{:target="_blank"} for help.

Please note, this is a third-party resource that is not operated or maintained by Bitwarden. {% endcallout %}