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

如何使用Bitwarden在Active Directory上进行密码保护相关推荐

  1. 在Windows XP 中使用Active Directory(活动目录)

    http://www.aiview.com/2005/10/windows_xp_active_directory.html 在Windows XP 中使用Active Directory(活动目录) ...

  2. java ldap操作实例_Java Spring Security示例教程中的2种设置LDAP Active Directory身份验证的方法...

    java ldap操作实例 LDAP身份验证是世界上最流行的企业应用程序身份验证机制之一,而Active Directory (Microsoft为Windows提供的LDAP实现)是另一种广泛使用的 ...

  3. Java Spring Security示例教程中的2种设置LDAP Active Directory身份验证的方法

    LDAP身份验证是全球范围内最流行的企业应用程序身份验证机制之一,而Active Directory (Microsoft针对Windows的LDAP实现)是另一种广泛使用的LDAP服务器. 在许多项 ...

  4. Nextcloud集成Active Directory(AD)LDAP用户身份验证

    1.概述 Nextcloud可以与身份管理解决方案(例如LDAP应用程序或Active Directory)集成在一起,以便LDAP或Active Directory上的用户可以出现在我们的Nextc ...

  5. Active Directory网域

    Active Directory网域 3.1Windows网络的管理方式 3.1.1工作组模式 工作组由一组用网络连接在一起的计算机组成,他们将计算机内的资源共享给用户访问.工作组网络也被称为&quo ...

  6. 详解MOM2005监控Active Directory:MOM2005系列之二

     用MOM2005监控Active Directory 上篇文章中我们介绍了如何部署MOM2005,本文我们来介绍一下如何利用MOM2005监控Active Directory.Active Dire ...

  7. Active Directory架构管理

    Active Directory由对象(用户,计算机,打印机,组等)及其属性(属性)组成.Schema 是Active Directory的重要组件,因为它定义了用于存储数据的所有对象和属性.Acti ...

  8. python操作Active Directory

    该说明基于python3和ldap3 2.5,只在Windows2012 R2的Active Directory上测试过 常见操作 1. 连接 server = Server(ldap_url, us ...

  9. 查询Active Directory

    目录 查询Active Directory BaseDN 过滤规则 LDAP高级搜索语法 LDAP 查找中的位操作 LDAP 查找中的objectCategory和objectClass 查询Acti ...

最新文章

  1. 1.12 改善你的模型表现-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  2. 如何成为一名入门级 iOS 开发者
  3. 爱摸鱼的Dillonh
  4. boost::shared_ptr用法测试程序
  5. BigDecimal转String,int,double及简单操作运算、方法
  6. 2019 The 19th Zhejiang University Programming Contest
  7. LINQ to SQL语句(1)之Where
  8. 一文吃透Json解析工具类合集(FastJson、Jackson、Gson)
  9. linux 启动启动服务_更快地启动Linux
  10. 试点高校网络教育部分公共基础课统一考试计算机应用基础答案,2019年6月试点高校网络教育部分公共基础课统一考试顺利结束...
  11. Unity3D内存释放
  12. librdkafka的安装和使用
  13. 流媒体技术学习笔记之(七)进阶教程OBS参数与清晰度流畅度的关系
  14. Android-环境搭建
  15. arduino调试的流程图_Arduino 的调试以及相关问题
  16. Alienware Area-51M 安装Win10+Ubuntu18.04 双系统
  17. java生成二维码(链接生成二维码)
  18. 微信开发者工具更换默认用户存储目录(User Data)方法
  19. 复旦python课补考_复旦学姐说:“这段科研,最终帮助我这个零经验小白拿下了量化岗实习!”...
  20. #一日一图#自己的小窝舒服

热门文章

  1. 亚马逊 html格式转换,亚马逊七种产品描述常用HTML代码,文字颜色代码让Listing更出彩...
  2. NIO和Netty经典面试题
  3. gitlab搭建与使用
  4. Vue 自定义指令上报 Google Analytics 事件统计
  5. 解读新突破“中国量子计算机”,真比神威·太湖之光还厉害?
  6. 2016年第二季度DDoS攻击同比增长129%
  7. Gallery 相册管理系统项目将不再维护
  8. 时间选择插件Foundation datepicker
  9. Hadoop之MapReduce分布式计算
  10. 2014年第一季度总结报告