目前使用的Es版本为7.5版本, 在7.X版本中已经可以免费的使用x-pack进行用户验证了

1. 修改elasticsearch主节点配置文件:

action.destructive_requires_name: true

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

 

action.destructive_requires_name: true: 设置之后只限于使用特定名称来删除索引,使用_all 或者通配符来删除索引无效(上述中说明配置文件中禁止后此方式不能使用)】

注意:上面对于跨域的配置,下面使用elasticsearch-head进行连接的时候会用到   使用到的是基础验证类型

2. 创建身份认证

#系统自动生成密码
./bin/elasticsearch-setup-passwords auto #自定义密码
./bin/elasticsearch-setup-passwords interactive

3. 重启elasticsearch服务

systemctl restart elasticsearch

Kibana配置:

elasticsearch.username: "elastic"
elasticsearch.password: "具体密码"

配置head插件

1. 安装

  GitHub地址:https://github.com/zhaoyunxing92/elasticsearch-head.git

  具体安装可以看说明,这里简单说一下:

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
open http://localhost:9100/

  打开服务器ip地址,访问即可: http://59.132.16.217:9100

  

  可以修改_site/app.js 大概4374行左右,指定默认访问的集群地址

app.App = ui.AbstractWidget.extend({
4368 defaults: {
4369 base_uri: null
4370 },
4371 init: function(parent) {
4372 this._super();
4373 this.prefs = services.Preferences.instance();
4374 this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://59.132.16.127:9200";
4375 if( this.base_uri.charAt( this.base_uri.length - 1 ) !== "/" ) {
4376 // XHR request fails if the URL is not ending with a "/"
4377 this.base_uri += "/";
4378 }
4379 if( this.config.auth_user ) {
4380 var credentials = window.btoa( this.config.auth_user + ":" + this.config.auth_passwo rd );

2.配置

  elasticsearch安装x-pack插件之后,head插件就无法使用了,因为x-pack中加入了安全模块(security机制),这个时候需要在elasticseach.yml中再增加下面一行配置即可解决

http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type 上面提到的内容

  这样访问页面的时候,就需要带上用户名和密码进行访问

http://59.132.16.127:9100/?auth_user=elastic&auth_password=123456

# 指定用户名和密码
auth_user
auth_password

现在已经添加了验证, 这个时候, 如果我们不想暴露自己的端口,可以使用nginx进行一次转发,对外只提供80端口

server {
listen 80;
server_name es.*.com; #公网域名地址 location / {
auth_basic "secret";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
proxy_pass http://localhost:9100;
proxy_set_header Host $host:9100;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
} }

具体账号密码配置,可参考:nginx之访问控制

我们来禁用9100端口,只在127.0.0.01:9100,配合nginx使用即可

elasticsearch-head/Gruntfile.js

在connect –>server–>options下添加hostname:’127.0.0.1’ 允许本地ip可以访问

connect: {
server: {
options: {
hostname: '127.0.0.1',
port: 9100,
base: '.',
keepalive: true
}
}
}

添加开机启动:

vim  /etc/rc.local

/usr/local/elasticsearch-head/node_modules/grunt/bin/grunt server &

Elasticsearch之权限验证(Basic)的更多相关文章

  1. mvc 4 ActionFilterAttribute 特性,进行权限验证

    权限验证: /// <summary> /// 管理员身份验证 /// </summary> public class BasicAuthenticationAttribute ...

  2. 转 Web用户的身份验证及WebApi权限验证流程的设计和实现

    前言:Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能,一个功能复杂的业务应用系统,通过角色授权来控制用户访问,本文通过Form认证,Mvc的Controller基类及Action的权 ...

  3. 从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之五 || Swagger的使用 3.3 JWT权限验证【必看】

    前言 关于JWT一共三篇 姊妹篇,内容分别从简单到复杂,一定要多看多想: 一.Swagger的使用 3.3 JWT权限验证[修改] 二.解决JWT权限验证过期问题 三.JWT完美实现权限与接口的动态分 ...

  4. [置顶] Web用户的身份验证及WebApi权限验证流程的设计和实现 (不是Token驗證!!!不是Token驗證!!!都是基於用户身份的票据信息驗證!!!)

     转发 http://blog.csdn.net/besley/article/details/8516894 不是Token驗證!!!不是Token驗證!!!都是基於用户身份的票据信息驗證!!! [ ...

  5. Web用户的身份验证及WebApi权限验证流程的设计和实现 asp.net mvc AllowAnonymous 不起作用, asp.net mvc 匿名访问

    原文地址: https://blog.csdn.net/zjlovety/article/details/17095627 前言:Web 用户的身份验证,及页面操作权限验证是B/S系统的基础功能,一个 ...

  6. Z从壹开始前后端分离【 .NET Core2.2/3.0 +Vue2.0 】框架之五 || Swagger的使用 3.3 JWT权限验证【必看】

    本文梯子 本文3.0版本文章 前言 1.如何给接口实现权限验证? 零.生成 Token 令牌 一.JWT ——自定义中间件 0.Swagger中开启JWT服务 1:API接口授权策略 2.自定义认证之 ...

  7. web权限验证方法说明[转载]

    前言 本文将会从最基本的一种web权限验证说起,即HTTP Basic authentication,然后是基于cookies和tokens的权限验证,最后则是signatures和一次性密码. HT ...

  8. ABP(现代ASP.NET样板开发框架)系列之18、ABP应用层——权限验证

    点这里进入ABP系列文章总目录 ABP(现代ASP.NET样板开发框架)系列之18.ABP应用层——权限验证 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目 ...

  9. Atitit HTTP 认证机制基本验证 (Basic Authentication) 和摘要验证 (Digest Authentication)attilax总结

    Atitit HTTP认证机制基本验证 (Basic Authentication) 和摘要验证 (Digest Authentication)attilax总结 1.1. 最广泛使用的是基本验证 ( ...

  10. ASP.NET MVC View 和 Web API 的基本权限验证

    ASP.NET MVC 5.0已经发布一段时间了,适应了一段时间,准备把原来的MVC项目重构了一遍,先把基本权限验证这块记录一下. 环境:Windows 7 Professional SP1 + Mi ...

随机推荐

  1. vim命令之多行注释

    vim常用命令之多行注释和多行删除 vim中多行注释和多行删除命令,这些命令也是经常用到的一些小技巧,可以大大提高工作效率. 1.多行注释: 1. 首先按esc进入命令行模式下,按下Ctrl + v, ...

  2. C#/.NET/.NET Core优秀项目和框架2024年8月简报

    前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍.功能特点.使用方式以及部分功能截图 ...

  3. VS Code – Keyboard Shortcuts

    前言 记入一些自己常用到的 Keyboard Shortcuts 和 Extensions. Keyboard Shortcuts undo redo 鼠标坐标:shift + left/right ...

  4. Figma 学习笔记 – Prototype

    挺简单的, 只要知道它有什么, 基本上就会用了 监听 Event Type 监听 Callback Action 过度 Animation Frame Scrolling

  5. ARM SMMU 与 IOMMU 的区别

    ARM SMMU (System Memory Management Unit) 和 IOMMU (Input-Output Memory Management Unit) 都是用于管理系统内存访问和 ...

  6. 03-jsx中使用js表达式

    // 在jsx中使用 js 表达式 /// 通过一个 {} 展示变量即可 vue 中使用 {{}} 展示js表达式 // 什么是js表达式 有结果的 import reactDom from &quo ...

  7. mysql进阶-索引篇

    索引(SQL主要的优化方式) 介绍: 索引(index)是帮助MySQL高效获取数据的数据结构(有序).在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据 ...

  8. 用 KubeKey 快速离线部署 K8s 与 KubeSphere

    作者:尹珉,KubeSphere Ambassador,KubeSphere 社区用户委员会杭州站站长 一.KubeKey 介绍 KubeKey(以下简称 KK) 是一个用于部署 Kubernetes ...

  9. 业务上线在即,ODBC应用程序性能频频掉线怎么搞?

  10. bash 连接操作符(& && | 等)的使用

    链式操作(Chaining Operators),就是用于将多个命令组合在一起,根据操作符类型执行各种复杂指令.链式操作常用于你在交互shell中写下一长串指令执行的时候,它让shell脚本的自动化能 ...