SlideShare a Scribd company logo
© 2018 floragunn GmbH - All Rights Reserved
SEARCH GUARD
ACTIVE DIRECTORY
& LDAP AUTHENTICATION
DOCUMENTS
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
01.
LDAP vs ACTIVE DIRECTORY
LDAP (Lightweight Directory Access Protocol)
“an open, vendor-neutral, industry standard application protocol for accessing and
maintaining distributed directory information services over an Internet Protocol (IP) network”
Active Directory
“a service that provides LDAP based authentication with Kerberos based authorization.”
Both provide a tree-based directory service: “Directory Information Tree” (DIT)
“Directory Information Tree” (DIT)
Typically stored users and groups, amongst other objects
Objects identified by their Distinguished Name (DN)
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
DIRECTORY INFORMATION TREE
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
02.
LDAP SUPPORT IN SEARCH GUARD
The LDAP backend can be used for
Authentication (verify user credentials)
Authorization (fetch a users backend roles)
For Active Directory and LDAP likewise
One or multiple LDAP servers supported
For high availability
For connecting to multiple directories
In Windows environments often combined with Kerberos
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
LDAP AUTHENTICATION BACKEND
ldap:
http_enabled: true
transport_enabled: true
order: 0
http_authenticator:
type: basic
challenge: false
authentication_backend:
type: ldap
config:
enable_ssl: true
verify_hostnames: true
hosts:
- ldap.example.com:636
bind_dn: cn=admin,dc=example,dc=com
password: password
userbase: 'ou=people,dc=example,dc=com'
# Filter to search for users (currently in the whole subtree beneath userbase)
# {0} is substituted with the username
usersearch: '(sAMAccountName={0})'
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
04.
CONNECTING SETTINGS
Hosts
Authentication (verify user credentials)
Authorization (fetch a users backend roles)
For Active Directory and LDAP likewise
One or multiple LDAP servers supported
For high availability
For connecting to multiple directories
In Windows environments often combined with Kerberos
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
05.
CONNECTING SETTINGS
LDAPS and TLS support
Hostname verification & DNS lookups
Client certificate authentication)
Support for separate root CA, if different from Search Guard root CA
Bind settings
Anonymous bind
bind_dn / password
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
06.
USER AUTHENTICATION
Search Guard performs LDAP queries for user authentication
userbase
Subtree that stores user information, specified by full DN
usersearch
LDAP query to find the user
{0} is a placeholder and substituted with the users name
username_attribute
attribute of the LDAP entry that contains the username
If not specified, the full DN is used
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
07.
USER AUTHENTICATION
LDAP Entry:
dn: CN=hr_employee,CN=Users,DC=test,DC=local
objectClass: person
cn: AD_hr_employee
distinguishedName: CN=AD_hr_employee,CN=Users,DC=test,DC=local
displayName: AD_hr_employee
memberOf: CN=HumanResources_Employees,OU=Groups,DC=test,DC=local
name: AD_hr_employee
sAMAccountName: hr_employee
Configuration:
config:
hosts:
- ldap.example.com:636
bind_dn: cn=admin,dc=test,dc=local
password: password
userbase: 'CN=Users,DC=test,DC=local'
# Filter to search for users (currently in the whole subtree beneath userbase)
# {0} is substituted with the username
usersearch: '(sAMAccountName={0})'
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
LDAP AUTHORIZATION BACKEND
authorization_backend:
type: ldap # NOT FREE FOR COMMERCIAL USE
config:
… (tls, hostnames and bind_dn as before) …
rolebase: 'ou=groups,dc=example,dc=com'
# Filter to search for roles (currently in the whole subtree beneath rolebase)
# {0} is substituted with the DN of the user
# {1} is substituted with the username
# {2} is substituted with an attribute from user's directory entry(userroleattribute)
# Specify the name of the attribute which value should be substituted with {2} above
userroleattribute: null
rolesearch: '(uniqueMember={0})'
# Roles as an attribute of the user entry
userrolename: memberOf
# The attribute in a role entry containing the name of that role
rolename: cn
# Resolve nested roles transitive (roles which are members of other roles on ...)
resolve_nested_roles: true
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
09.
USER AUTHORIZATION
Connection settings are identical to authentication
Basic principle for fetching roles similar to authentication
Configure role subtree
Defined LDAP query for retrieving roles
Configure the attribute of the LDAP entry that is used as role name
Configure support for nested roles
Alternative: Roles as direct user attributes
Both approaches can be combined
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
rolesearch LDAP query can contain three placeholders
# {0} is substituted with the DN of the user
# {1} is substituted with the username
# {2} is substituted with an attribute value from the user's directory entry
use “userroleattribute” to specify the name of this attribute
E.g.: rolesearch: “(uniqueMember={0})”
Configure role name attribute
E.g.: rolename: “cn”
10.
USING THE ROLE SUBTREE
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
Roles can be stored as user attributes
Attributes of the LDAP user entry in the user subtree
Search Guard can extract these roles
userrolename: “myroleattribute”
Attribute values can be:
DN pointing to a LDAP role
This role must exist in the role subtree
Arbitrary, non-DN values
These values are returned as-is
11.
ATTRIBUTE BASED ROLES
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
Roles on LDAP can be nested
Roles which are members of roles
Search Guard can be configured resolve nested roles
resolve_nested_roles: <true|false>
Depending on the nesting level, can have performance impact
One LDAP call for each level
12.
NESTED ROLES
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
Exclude users from role lookups
E.g. service users like logstash or Kibana
Exclude roles from nested role lookups
Performance optimization
Only resolve nested roles when necessary
Wildcards and regular expressions are supported
13.
ADVANCED FEATURES
© 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication
14.
RESOURCES
Search Guard website
https://search-guard.com/
Documentation
https://docs.search-guard.com
Community Forum
https://groups.google.com/d/forum/search-guard
GitHub
https://github.com/floragunncom
© 2018 floragunn GmbH - All Rights Reserved
WE LOOK FORWARD
TO YOUR MESSAGE
CONTACT US:
info@search-guard.com
© 2018 floragunn GmbH - All Rights Reserved
floragunn GmbH
Tempelhofer Ufer 16
D-10963 Berlin, Germany


E-Mail: info@search-guard.com
Web: search-guard.com
Managing Directors: Claudia Kressin, Jochen Kressin

Registergericht: Amtsgericht Charlottenburg 

Registernummer: HRB 147010 B E-Mail: info@floragunn.com
Search Guard is a trademark of floragunn GmbH, registered in the U.S. and in other countries.
Elasticsearch, Kibana, Logstash, and Beats are trademarks of Elasticsearch BV, registered in the U.S. and in other countries.
floragunn GmbH is not affiliated with Elasticsearch BV.
Search Guard is an independent implementation of a security access layer for Elasticsearch.
It is completely independent from Elasticsearch own products.

More Related Content

PPTX
Assessing security of your Active Directory
PDF
Identity Security - Azure Active Directory
PDF
Access Security - Hybrid Identity
PDF
Access Security - Privileged Identity Management
PDF
Programming with Azure Active Directory
PPTX
Azure Key Vault with a PaaS Architecture and ARM Template Deployment
PPTX
Azure active directory
PDF
Azure Active Directory
Assessing security of your Active Directory
Identity Security - Azure Active Directory
Access Security - Hybrid Identity
Access Security - Privileged Identity Management
Programming with Azure Active Directory
Azure Key Vault with a PaaS Architecture and ARM Template Deployment
Azure active directory
Azure Active Directory

What's hot (20)

PPTX
Azure Active Directory - An Introduction
PPTX
Azure Active Directory - An Introduction for Developers
PPTX
Microsoft Azure ad in 10 slides
PPTX
Windows Azure Active Directory
PPTX
Global Azure Bootcamp 2017 - Azure Key Vault
PPTX
Azure AD App Proxy Login Scenarios with an On Premises Applications - TSPUG
PDF
Understanding Azure AD
PPTX
Azure Low Lands 2019 - Building secure cloud applications with Azure Key Vault
PDF
Data Security - Storage Security
PPTX
Azure key vault
PPTX
Securing sensitive data with Azure Key Vault
PPTX
Class Project: Security in Microsoft Azure
PPTX
Certifications for Azure Developers
PDF
Consolidating Infrastructure with Azure Kubernetes Service
PPTX
Microsoft Azure Active Directory
PDF
ITPROCEED_WorkplaceMobility_Delivering traditional File Server Workloads in a...
PPTX
Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...
PDF
ITPROCEED_TransformTheDatacenter_ten most common mistakes when deploying adfs...
PPTX
Windows azure
PDF
04_Extending and Securing Enterprise Applications in Microsoft Azure_GAB2019
Azure Active Directory - An Introduction
Azure Active Directory - An Introduction for Developers
Microsoft Azure ad in 10 slides
Windows Azure Active Directory
Global Azure Bootcamp 2017 - Azure Key Vault
Azure AD App Proxy Login Scenarios with an On Premises Applications - TSPUG
Understanding Azure AD
Azure Low Lands 2019 - Building secure cloud applications with Azure Key Vault
Data Security - Storage Security
Azure key vault
Securing sensitive data with Azure Key Vault
Class Project: Security in Microsoft Azure
Certifications for Azure Developers
Consolidating Infrastructure with Azure Kubernetes Service
Microsoft Azure Active Directory
ITPROCEED_WorkplaceMobility_Delivering traditional File Server Workloads in a...
Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...
ITPROCEED_TransformTheDatacenter_ten most common mistakes when deploying adfs...
Windows azure
04_Extending and Securing Enterprise Applications in Microsoft Azure_GAB2019
Ad

Similar to Active Directory & LDAP | Security for Elasticsearch (20)

PDF
Elasticsearch Document- and Field-Level Security | Search Guard
PDF
Search Guard Configuration | Security for Elasticsearch
PPT
Configuring Domino To Be An Ldap Directory And To Use An Ldap Directory
PPTX
Xcap
PDF
IRJET- Research Paper on Active Directory
PPTX
MMC Integration with LDAP and LDAP PS(SSL)
PPT
Active directory slides
PPT
Active Directory
PPTX
Chapter_11_LDAP_and_Kerberos-converted.pptx
DOCX
Authorization in active directory
PPTX
Microsoft Active Directory.pptx
PDF
Search Guard Architecure | Security for Elasticsearch
PPT
The Ldap Protocol
PPT
70 640 Lesson01 Ppt 041009
PPT
LDAP Injection & Blind LDAP Injection
PPT
Shibboleth 2.0 IdP slides - Installfest (Edited)
PDF
Ldap 121020013604-phpapp01
Elasticsearch Document- and Field-Level Security | Search Guard
Search Guard Configuration | Security for Elasticsearch
Configuring Domino To Be An Ldap Directory And To Use An Ldap Directory
Xcap
IRJET- Research Paper on Active Directory
MMC Integration with LDAP and LDAP PS(SSL)
Active directory slides
Active Directory
Chapter_11_LDAP_and_Kerberos-converted.pptx
Authorization in active directory
Microsoft Active Directory.pptx
Search Guard Architecure | Security for Elasticsearch
The Ldap Protocol
70 640 Lesson01 Ppt 041009
LDAP Injection & Blind LDAP Injection
Shibboleth 2.0 IdP slides - Installfest (Edited)
Ldap 121020013604-phpapp01
Ad

Recently uploaded (20)

PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Spectroscopy.pptx food analysis technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Electronic commerce courselecture one. Pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
A Presentation on Artificial Intelligence
PPTX
Cloud computing and distributed systems.
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Big Data Technologies - Introduction.pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Machine learning based COVID-19 study performance prediction
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
cuic standard and advanced reporting.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Diabetes mellitus diagnosis method based random forest with bat algorithm
Spectroscopy.pptx food analysis technology
Reach Out and Touch Someone: Haptics and Empathic Computing
Electronic commerce courselecture one. Pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
A Presentation on Artificial Intelligence
Cloud computing and distributed systems.
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Big Data Technologies - Introduction.pptx
Assigned Numbers - 2025 - Bluetooth® Document
“AI and Expert System Decision Support & Business Intelligence Systems”
Dropbox Q2 2025 Financial Results & Investor Presentation
sap open course for s4hana steps from ECC to s4
Machine learning based COVID-19 study performance prediction
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Encapsulation_ Review paper, used for researhc scholars
cuic standard and advanced reporting.pdf

Active Directory & LDAP | Security for Elasticsearch

  • 1. © 2018 floragunn GmbH - All Rights Reserved SEARCH GUARD ACTIVE DIRECTORY & LDAP AUTHENTICATION DOCUMENTS
  • 2. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication 01. LDAP vs ACTIVE DIRECTORY LDAP (Lightweight Directory Access Protocol) “an open, vendor-neutral, industry standard application protocol for accessing and maintaining distributed directory information services over an Internet Protocol (IP) network” Active Directory “a service that provides LDAP based authentication with Kerberos based authorization.” Both provide a tree-based directory service: “Directory Information Tree” (DIT) “Directory Information Tree” (DIT) Typically stored users and groups, amongst other objects Objects identified by their Distinguished Name (DN)
  • 3. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication DIRECTORY INFORMATION TREE
  • 4. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication 02. LDAP SUPPORT IN SEARCH GUARD The LDAP backend can be used for Authentication (verify user credentials) Authorization (fetch a users backend roles) For Active Directory and LDAP likewise One or multiple LDAP servers supported For high availability For connecting to multiple directories In Windows environments often combined with Kerberos
  • 5. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication LDAP AUTHENTICATION BACKEND ldap: http_enabled: true transport_enabled: true order: 0 http_authenticator: type: basic challenge: false authentication_backend: type: ldap config: enable_ssl: true verify_hostnames: true hosts: - ldap.example.com:636 bind_dn: cn=admin,dc=example,dc=com password: password userbase: 'ou=people,dc=example,dc=com' # Filter to search for users (currently in the whole subtree beneath userbase) # {0} is substituted with the username usersearch: '(sAMAccountName={0})'
  • 6. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication 04. CONNECTING SETTINGS Hosts Authentication (verify user credentials) Authorization (fetch a users backend roles) For Active Directory and LDAP likewise One or multiple LDAP servers supported For high availability For connecting to multiple directories In Windows environments often combined with Kerberos
  • 7. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication 05. CONNECTING SETTINGS LDAPS and TLS support Hostname verification & DNS lookups Client certificate authentication) Support for separate root CA, if different from Search Guard root CA Bind settings Anonymous bind bind_dn / password
  • 8. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication 06. USER AUTHENTICATION Search Guard performs LDAP queries for user authentication userbase Subtree that stores user information, specified by full DN usersearch LDAP query to find the user {0} is a placeholder and substituted with the users name username_attribute attribute of the LDAP entry that contains the username If not specified, the full DN is used
  • 9. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication 07. USER AUTHENTICATION LDAP Entry: dn: CN=hr_employee,CN=Users,DC=test,DC=local objectClass: person cn: AD_hr_employee distinguishedName: CN=AD_hr_employee,CN=Users,DC=test,DC=local displayName: AD_hr_employee memberOf: CN=HumanResources_Employees,OU=Groups,DC=test,DC=local name: AD_hr_employee sAMAccountName: hr_employee Configuration: config: hosts: - ldap.example.com:636 bind_dn: cn=admin,dc=test,dc=local password: password userbase: 'CN=Users,DC=test,DC=local' # Filter to search for users (currently in the whole subtree beneath userbase) # {0} is substituted with the username usersearch: '(sAMAccountName={0})'
  • 10. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication LDAP AUTHORIZATION BACKEND authorization_backend: type: ldap # NOT FREE FOR COMMERCIAL USE config: … (tls, hostnames and bind_dn as before) … rolebase: 'ou=groups,dc=example,dc=com' # Filter to search for roles (currently in the whole subtree beneath rolebase) # {0} is substituted with the DN of the user # {1} is substituted with the username # {2} is substituted with an attribute from user's directory entry(userroleattribute) # Specify the name of the attribute which value should be substituted with {2} above userroleattribute: null rolesearch: '(uniqueMember={0})' # Roles as an attribute of the user entry userrolename: memberOf # The attribute in a role entry containing the name of that role rolename: cn # Resolve nested roles transitive (roles which are members of other roles on ...) resolve_nested_roles: true
  • 11. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication 09. USER AUTHORIZATION Connection settings are identical to authentication Basic principle for fetching roles similar to authentication Configure role subtree Defined LDAP query for retrieving roles Configure the attribute of the LDAP entry that is used as role name Configure support for nested roles Alternative: Roles as direct user attributes Both approaches can be combined
  • 12. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication rolesearch LDAP query can contain three placeholders # {0} is substituted with the DN of the user # {1} is substituted with the username # {2} is substituted with an attribute value from the user's directory entry use “userroleattribute” to specify the name of this attribute E.g.: rolesearch: “(uniqueMember={0})” Configure role name attribute E.g.: rolename: “cn” 10. USING THE ROLE SUBTREE
  • 13. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication Roles can be stored as user attributes Attributes of the LDAP user entry in the user subtree Search Guard can extract these roles userrolename: “myroleattribute” Attribute values can be: DN pointing to a LDAP role This role must exist in the role subtree Arbitrary, non-DN values These values are returned as-is 11. ATTRIBUTE BASED ROLES
  • 14. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication Roles on LDAP can be nested Roles which are members of roles Search Guard can be configured resolve nested roles resolve_nested_roles: <true|false> Depending on the nesting level, can have performance impact One LDAP call for each level 12. NESTED ROLES
  • 15. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication Exclude users from role lookups E.g. service users like logstash or Kibana Exclude roles from nested role lookups Performance optimization Only resolve nested roles when necessary Wildcards and regular expressions are supported 13. ADVANCED FEATURES
  • 16. © 2018 floragunn GmbH - All Rights Reserved Search Guard – Active Directory & LDAP Authentication 14. RESOURCES Search Guard website https://search-guard.com/ Documentation https://docs.search-guard.com Community Forum https://groups.google.com/d/forum/search-guard GitHub https://github.com/floragunncom
  • 17. © 2018 floragunn GmbH - All Rights Reserved WE LOOK FORWARD TO YOUR MESSAGE CONTACT US: info@search-guard.com
  • 18. © 2018 floragunn GmbH - All Rights Reserved floragunn GmbH Tempelhofer Ufer 16 D-10963 Berlin, Germany 
 E-Mail: info@search-guard.com Web: search-guard.com Managing Directors: Claudia Kressin, Jochen Kressin
 Registergericht: Amtsgericht Charlottenburg 
 Registernummer: HRB 147010 B E-Mail: info@floragunn.com Search Guard is a trademark of floragunn GmbH, registered in the U.S. and in other countries. Elasticsearch, Kibana, Logstash, and Beats are trademarks of Elasticsearch BV, registered in the U.S. and in other countries. floragunn GmbH is not affiliated with Elasticsearch BV. Search Guard is an independent implementation of a security access layer for Elasticsearch. It is completely independent from Elasticsearch own products.