Casvisor
访问控制

用户和管理员

账号有两个来源:

  • 自带账号,由Casvisor自己保存。这是默认方式,只要casdoorEndpoint为空就用它。
  • Casdoor,设置了casdoorEndpoint时使用。这时Casvisor不保存自己的账号,见对接Casdoor。

不论哪种,登录的用户能做什么都取决于一个问题:他是不是管理员?

自带账号

第一次启动、还没有任何用户时,Casvisor会创建管理员admin。它的密码是配置里的adminPassword,没有设置就随机生成,并在日志里打印一次,见快速上手。

管理员在用户里管理账号:

字段含义
名称登录用的用户名:字母、数字、.、_和-。建好后不能改。
显示名称、邮箱在列表里显示。
密码至少8个字符。编辑用户时留空表示不改。
用户组用户所在的组,用于权限和命令规则。可以选已有的组,也可以直接输入新组名。
管理员让这个用户成为管理员。
已禁用用户不能登录,开着的会话也会被断开。

最后一个能登录的管理员不能被删除、禁用或取消管理员,所以Casvisor不会落到没有管理员的地步。用户不能自己注册。

每个人都可以在右上角菜单的我的账户里改自己的密码。密码以bcrypt哈希保存。同一个用户从同一个地址连续输错5次密码,这个地址上的这个用户就会被拒绝登录15分钟;其他地址不受影响,所以别人没法从别处把管理员锁在外面。

所有自带账号都属于同一个组织,名字由casdoorOrganization决定,默认是casvisor。对用户的修改,例如改用户组、设为已禁用,对网页界面和开着的会话都立刻生效。

管理员

用户打开了管理员就是管理员:自带账号在用户里设置;用Casdoor时在Casdoor里打开Is admin,即他是所在Casdoor组织的管理员。用Casdoor时,属于Casdoor的built-in组织的用户也是管理员。

管理员可以:

  • 看到用户(只在用自带账号时)、网域网关、授权、补丁、会话、命令记录、命令规则和日志(即操作日志)页面,并能管理资产;
  • 不需要权限就能用所有动作连接本组织的所有资产;
  • 停止任何人的会话,实时旁观,回放它的录像。

一个组织的管理员管不了另一个组织的资产和权限。Casdoor的built-in组织的用户可以,所以这样的用户应当尽量少。

其他用户

不是管理员的用户:

  • 进来就是工作台,里面只有权限允许他连接的资产;
  • 只能调用列出这些资产、连接它们、在自己的会话里传文件,以及管理自己SSH公钥所需的接口;
  • 看不到保存的密码、别人的会话、录像、命令记录和操作日志。

一条权限都没有的用户,登录后看到的是一个空的工作台。

限制谁能登录

默认情况下所有用户都能登录:所有自带账号,或者Casdoor应用所在组织的所有用户。没有权限的人看到的是空工作台。要只让某些人登录,把allowedUsers设成逗号分隔的组织/用户名列表,例如my-org/alice,my-org/bob。其他人在登录时就会被拒绝。

用户组

用自带账号时,用户组就是在用户里填的组。用Casdoor时直接沿用Casdoor的用户组:Casdoor在登录时签发的令牌里带着用户所在的组。两种方式下,写了某个用户组的权限都对组里所有人生效。

Casdoor里的改动什么时候生效

Casvisor从登录时拿到的令牌里读取用户组和管理员标记,这次登录一直保持到用户退出或浏览器会话结束。所以在Casdoor里把人加进或移出用户组、打开或关闭Is admin、禁用用户,对网页界面都要等他下次登录Casvisor才生效,不是立刻生效。

SSH网关没有网页登录这一步:它在每次连接时都去Casdoor读取用户,所以被禁用或删除的用户从此就开不了新的网关连接。已经开着的连接沿用连接时的用户组。

要立刻把一个人挡在外面:

  1. 把他从写了他名字的权限里去掉,或者关掉这些权限。这样SSH网关也会拒绝他,不论他登记了什么公钥;他连着这些资产的会话也会马上被断开,见权限收回即断开。
  2. 在会话里停止他还开着的会话。

退出Casvisor只会清掉Casvisor自己的登录状态,不会退出Casdoor,所以下次访问可能不用再输密码就进来了,这和所有单点登录一样。

在GitHub上编辑

本页内容