CasWAF
入门

用Casdoor登录

CasWAF没有自己的账号。管理界面通过Casdoor登录,同一个Casdoor连接还支撑登录保护、验证码和健康告警。Casdoor是开源的,可以和CasWAF并排运行,也可以作为CasWAF的一个站点放在它后面。

在Casdoor里

  1. 选择或新建CasWAF管理员所在的组织。

  2. 在这个组织里添加一个应用。

  3. 在Redirect URLs里加上管理界面的回调地址,你用哪些地址打开管理界面,就每个都加一条:

    http://localhost:17000/callback
    https://waf.example.com/callback
  4. 记下Client ID和Client secret。

在CasWAF里

后端从conf/app.conf读取这几项:

配置项值
casdoorEndpointCasdoor的地址,例如https://door.example.com
clientId、clientSecret应用的Client ID和Client secret
casdoorOrganization组织
casdoorApplication应用名

浏览器里的登录按钮读的是web/src/Conf.js,它会编译进web/build。在那里填上相同的地址、Client ID、应用和组织,再用yarn build重新编译管理界面:

export const AuthConfig = {
  serverUrl: "https://door.example.com",
  clientId: "<client ID>",
  appName: "<application>",
  organizationName: "<organization>",
  redirectPath: "/callback",
};

谁能登录

只有组织的管理员,即在Casdoor里打开了Is admin的用户,才能管理CasWAF。其他人登录这个应用后能看到管理界面,但每个页面都会提示“this operation requires admin privilege”。每个管理员都能管理所有站点、证书和规则;目前还没有只读角色。

所以只给运维CasWAF的人打开Is admin,这个组织里的其他人都不要打开。给CasWAF单独建一个组织,并关掉应用的注册,管理起来最简单。

一次登录会话有效一年。会话以文件形式保存在程序旁边的tmp/里;设置了redisEndpoint时保存在Redis里,这样多个管理界面实例可以共用会话。

只读演示模式

在conf/app.conf里设置isDemoMode = true后,CasWAF拒绝通过API做的一切修改,登录和退出除外。同时在web/src/Conf.js里设置IsDemoMode,管理界面会提示访客这是只读演示站。

在GitHub上编辑

本页内容