如何使用Bitwarden在Active Directory上进行密码保护

Bitwarden是用于管理密码的绝佳工具。 它具有适用于每个平台的应用程序,浏览器插件和自托管版本,并且提供了一些很棒的密码管理技巧,例如文件夹和集合。 我最喜欢的功能之一是它将保留您的旧密码的历史记录,这对企业用户来说是一个很棒的功能。

如果您是企业用户,则您可能是Bitwarden的自托管主机,并希望将您的用户与人员目录同步。 我的组织使用Active Directory(AD),这是用户目录的标准,并且与Windows桌面无缝集成。 我还需要它与我们的开源工具配合使用,这就是本文共享的秘密之处。

允许您执行此操作的工具是Bitwarden目录连接器 (BWDC)。 如果您进行Google搜索,则不会在Linux上找到有关将BWDC与AD一起使用的更多信息。 如果您使用的是Windows版本,则Bitwarden的博客是一个不错的起点,但并不能帮助您将其集成到Linux环境中。 您可以在Bitwarden的GitHub页面上找到执行此操作的说明,但它们并不十分清楚。 因此,在这里,我将说明如何使您的Linux自托管版本的Bitwarden与您的企业Active Directory集成(并希望为将来寻找此信息的Google搜索者提供更有益的结果)。

在我的设置中,Bitwarden和Active Directory都托管在AWS上,前者托管在EC2实例中,后者托管在AWS Simple Directory中。 Bitwarden Docker容器安装在名为bitwarden的用户的主目录中。 Bitwarden的说明使其易于设置。 但是,设置BWDC尚不清楚,因此我将尝试在此处进行修复。

安装BWDC

首先为BWDC设置目录,然后下载ZIP文件并将其解压缩:


   
   
cd /home/bitwarden
mkdir directory-connector
cd directory-connector
wget https://github.com/bitwarden/directory-connector/releases/download/v2.6.2/bwdc-linux-2.6.2.zip
unzip bwdc-linux-2.6.2.zip
chmod +x bwdc

(在撰写本文时,BWDC 2.6.2是当前版本;可能会更改,因此请确保下载最新版本。)

您现在将拥有一个名为bwdc的二进制文件和一个名为keytar.node的文件; 将两个文件都放在正确的位置。

接下来,编辑位智者用户的个人资料:

 vi /home/bitwarden/.profile 

并添加以下行:


   
   
export BITWARDENCLI_CONNECTOR_PLAINTEXT_SECRETS=true
export PATH=$PATH:/home/bitwarden/directory-connector

注销并重新登录以获取新设置,或者您可以通过以下方式获取配置文件:

   . ~/.profile 

BITWARDENCLI_CONNECTOR_PLAINTEXT_SECRETS = true行告诉BWDC不要使用任何基于桌面的密钥库。 由于这是一台服务器,不太可能安装台式机,因此您必须将密码保留为纯文本格式(但是稍后将采取预防措施来保护它)。 第二行设置了bwdc二进制文件的路径,因此它可以从您所在的任何目录中运行。

配置BWDC

一旦安装了BWDC,请将其配置为连接到您的Bitwarden实例:


   
   
bwdc login
? Email address: <your email for your master account>
? Master password: [hidden]

登录后,就可以使用data.json文件了。

如果使用上述步骤设置BWDC,则其配置信息将存储在/home/bitwarden/.config/Bitwarden Directory Connector / data.json中 。 该文件包含appId访问令牌 ; 这些是您的Bitwarden实例的登录凭据。 但是您说Active Directory呢? 您可以通过编辑data.json文件来手动添加(我假设您在服务器上并且正在使用Vi):

 vi '/home/bitwarden/.config/Bitwarden Directory Connector/data.json' 

appId行下方添加以下内容:


   
   
"rememberEmail": true,
  "rememberedEmail": "<the email address you logged in with>",
  "organizationId": "<your organization id>",
  "directoryType": 0,
  "directoryConfig_0": {
    "ssl": false,
    "sslAllowUnauthorized": false,
    "port": 389,
    "currentUser": false,
    "ad": true,
    "hostname": "<hostname of your active directory>",
    "rootPath": "<root path of AD, something like; dc=com,dc=au>",
    "username": "<username with privilege to read the AD; DOMAIN\\Username>",
    "password": "<password for the above account>"
  },
  "directoryConfig_2": {},
  "directoryConfig_1": {},
  "directoryConfig_3": {},
  "syncConfig": {
    "users": true,
    "groups": true,
    "interval": 5,
    "removeDisabled": true,
    "overwriteExisting": true,
    "useEmailPrefixSuffix": false,
    "creationDateAttribute": "whenCreated",
    "revisionDateAttribute": "whenChanged",
    "emailPrefixAttribute": "sAMAccountName",
    "memberAttribute": "member",
    "userObjectClass": "person",
    "groupObjectClass": "group",
    "userEmailAttribute": "mail",
    "groupNameAttribute": "name",
    "userFilter": "(&(memberOf=CN=bitwarden,OU=groups,DC=work,DC=corp))",
    "groupPath": "OU=Groups",
    "userPath": "CN=Users"
  },
  "environmentUrls": {
    "base": "<base url of your bitwarden instance; https://bitwarden.yourdomain>",
    "api": null,
    "identity": null,
    "webVault": null,
    "icons": null,
    "notifications": null,
    "events": null
  },

如果仔细研究,您将发现需要更改此条目中的几个值,包括userFiltergroupPathuserPath 。 (我假设您熟悉LDAP和AD,并且知道这些值对于您的实例应该是什么。)保留CN = bitwarden部分作为您稍后创建的Bitwarden AD组的一部分。 您需要更改的另一个值是OrganizationID ,您可以在bwdata目录中找到该ID作为JSON文件之一的名称。 列出文件:

 ls /home/bitwarden/bwdata/core/licenses/organization 

这应该返回目录列表,其中包含单个文件名,格式为<organization id> .json 。 文件名本身就是您组织的ID。 将其插入以上代码中的organizationID行中。

正确获取data.json文件后, 强烈建议您备份此文件 。 如果BWDC发现与此文件有关的问题,则似乎有一个问题将此文件设置为默认设置。 这意味着,如果您无辜地对该文件进行了更改并且有错误,则将丢失整个配置。

接下来,以位智能用户的身份测试与AD的连接性:

 bwdc test 

这应该返回您广告中组的转储。 为了保护您的密码,请对该文件设置权限,以便只有位高位用户才能读取它:

 chmod 700 '/home/bitwarden/.config/Bitwarden Directory Connector/data.json' 

建立你的小组

现在将一个组添加到您的广告中(我的组称为bitwarden ),您将在其中添加和删除需要访问Bitwarden的用户。 该组是必需的,因为如果您不基于此组过滤用户,则BWDC会尝试使用AD中的所有用户。 如果用户数量大于您的Bitwarden许可所允许的数量,则BWDC将无声地失败,并且您将恨自己很长时间……。 就像我一样!

组建立并拥有至少一个用户后,请再次运行测试。 您应该在输出中看到用户的电子邮件地址。

现在该同步了。 同步后,出现在bitwarden组中的所有用户都将被添加到Bitwarden,并且将向他们发送电子邮件以邀请他们注册。 以用户身份使用以下命令同步目录:

 bwdc sync 

假设data.json文件中的removeDisabled设置为true ,则可以设置cron作业以使bitwarden组的成员和Bitwarden用户保持恒定同步,以便您在AD中所做的任何更改都立即反映在您的Bitwarden实例。 将以下内容添加到您的/ etc / crontab中


   
   
# Sync for Active Directory to Bitwarden
* *     * * *   bitwarden export BITWARDENCLI_CONNECTOR_PLAINTEXT_SECRETS=true ; /home/bitwarden/directory-connector/bwdc sync >/dev/null 2>&1

完成自动同步后,您将在Bitwarden中获得所有广告组的完整列表。 从那里开始,只需将一个组分配给一个集合,然后将成员添加到AD中的组,这很简单。 将自动为用户分配正确的密码集合,并查看他们所需的密码。

潜在陷阱

最后,我将告诉您一些有关设置的陷阱。 首先,请注意AD Primary Group 。 如果您的任何Linux或其他POSIX系统都从AD获得登录凭据,则可能已为用户设置了此选项。 如果该组设置为主要组,则AD似乎不会在该组搜索结果中包括该用户。 这可能会将用户从组中删除,从而失去对集合的访问权限。

 https://<your bitwarden site>/#/recover-delete 

输入用户注册的电子邮件地址。 他们将收到一封电子邮件,指示他们单击链接以确认删除该帐户。 完成此操作后,可以将用户放回Bitwarden AD组中,并再次进行登录过程。

现在,您知道如何使自托管的Bitwarden与AD一起工作。 我认为您仍然会遇到一些问题,但是只要稍稍耐心和修改配置,它就会起作用。 只是不要在工作后就乱扔它!

翻译自: https://opensource.com/article/19/11/bitwarden-password-protection-active-directory

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值