In this example, users credentials are validate via LDAP. The groups associated to each validated users are resolved using the same LDAP server.
Simpler: authentication and authorization in one rule
readonlyrest:
enable: true
readonlyrest: | |
access_control_rules: | |
- name: "LDAP users via basic auth" | |
ldap_auth: | |
name: "ldap1" | |
groups: ["ldap_group1"] | |
ldaps: | |
- name: ldap1 | |
hosts: |
readonlyrest: | |
access_control_rules: | |
- name: "analysts group permissions" | |
indices: ["logstash-*"] | |
groups: ["analysts"] | |
users: | |
- username: ada | |
auth_key: ada:passwd1 | |
groups: ["analysts"] |
readonlyrest: | |
access_control_rules: | |
- name: "user1 can see logstash data" | |
auth_key: "user1:password" | |
indices: ["logstash-*"] |
readonlyrest: | |
access_control_rules: | |
- name: "No sensitive fields in search" | |
fields: ["~credit_card", "~birth_date"] |
readonlyrest: | |
access_control_rules: | |
- name: "Never return secret documents!" | |
filter: '{"bool": | |
{"must_not": | |
{"match": {"is_secret": true}} | |
}}' |
readonlyrest: | |
access_control_rules: | |
- name: "Allow read catalogue from local" | |
indices: ["catalogue-*"] | |
filter: '{"bool": {"must_not": {"match": {"secret": true}}}}' |
readonlyrest: | |
access_control_rules: | |
- name: "Local, RO catalogue" | |
methods: ["GET","POST"] | |
hosts: ["127.0.0.0/24"] | |
indices: ["catalogue-*"] | |
actions: ["indices:data/read*"] |
version: "2.0" | |
services: | |
elasticsearch: | |
image: docker.elastic.co/elasticsearch/elasticsearch:5.6.0 | |
ports: | |
- "9200:9200" | |
- "9300:9300" | |
environment: | |
- discovery.type single-node | |
volumes: |
/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/bin/java -Xms2g -Xmx2g -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Djna.nosys=true -Dio.netty.noUnsafe=true -Dio.netty.noKeySetOptimization=true -Dlog4j.shutdownHookEnabled=false -Dlog4j2.disable.jmx=true -Dlog4j.skipJansi=true -Des.path.home=/me/elasticsearch-readonlyrest-plugin/src/test/eshome -Djava.security.policy=/me/elasticsearch-readonlyrest-plugin/src/main/resources/plugin-security.policy -Didea.launcher.port=7533 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA CE.app/Contents/bin" -classpath "/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0 |