Kibana嵌入web系统简单实现SSO
安装X-pack之后需要登录验证,嵌入自己的web系统之后,如果不实现SSO,内嵌的必然需要登录,这边简单实现下内部系统登录的同时保持kibana也登录成功。
一.安装X-pack之后需要登录验证,嵌入自己的web系统之后,如果不实现SSO,内嵌的必然需要登录,这边简单实现下内部系统登录的同时保持kibana也登录成功。
1.kibana自带的登录接口名称/internal/security/login,
Header 参数
key-value =>kbn-version : 7.6.1
key-value =>kbn-name : kibana
body的参数(用户名和密码都是自己es设置的用户名和密码):
username:user
password: password
然后请求获取到cookie sid:
所以我们只要实现调用本地系统的同时,带入es系统的用户名和密码,进行kibana的登录即可。
二、统一登出
统一登出其实只要实现本地系统登出的同时,清除cookie即可,由于出现跨域,所有清除cookie需要设置domain.
1 /**
2 * 清除cookie
3 * @return
4 */
5 @ResponseBody
6 @PutMapping(value = "/clearcookie")
7 public ResponseEntity<ResultVo<?>> getCookies(HttpServletRequest httpServletRequest, HttpServletResponse response) {
8 try{
9 Cookie cookie = new Cookie("sid", null);
10 cookie.setDomain(httpServletRequest.getHeader("x-forwarded-host").split(":")[0]);
11 cookie.setPath("/");
12 cookie.setHttpOnly(true);
13 cookie.setMaxAge(0);
14 response.addCookie(cookie);
15 return ResponseEntity.ok(new ResultVo<>(ResultStatus.SUCCESS));
16 }catch (Exception ex){
17 return ResponseEntity.ok(new ResultVo<>(ResultStatus.FAIL));
18 }
19
20 }
上述实现了统一登录和统一登出的功能。