SlideShare a Scribd company logo
1 of 18
Download to read offline
© 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

What's hot

Azure Active Directory - An Introduction
Azure Active Directory  - An IntroductionAzure Active Directory  - An Introduction
Azure Active Directory - An IntroductionVenkatesh Narayanan
 
Azure Active Directory - An Introduction for Developers
Azure Active Directory - An Introduction for DevelopersAzure Active Directory - An Introduction for Developers
Azure Active Directory - An Introduction for DevelopersJohn Garland
 
Microsoft Azure ad in 10 slides
Microsoft Azure ad in 10 slidesMicrosoft Azure ad in 10 slides
Microsoft Azure ad in 10 slidesAndre Debilloez
 
Windows Azure Active Directory
Windows Azure Active DirectoryWindows Azure Active Directory
Windows Azure Active DirectoryKrunal Trivedi
 
Global Azure Bootcamp 2017 - Azure Key Vault
Global Azure Bootcamp 2017 - Azure Key VaultGlobal Azure Bootcamp 2017 - Azure Key Vault
Global Azure Bootcamp 2017 - Azure Key VaultAlberto Diaz Martin
 
Azure AD App Proxy Login Scenarios with an On Premises Applications - TSPUG
Azure AD App Proxy Login Scenarios with an On Premises Applications - TSPUGAzure AD App Proxy Login Scenarios with an On Premises Applications - TSPUG
Azure AD App Proxy Login Scenarios with an On Premises Applications - TSPUGRoy Kim
 
Azure Low Lands 2019 - Building secure cloud applications with Azure Key Vault
Azure Low Lands 2019 - Building secure cloud applications with Azure Key VaultAzure Low Lands 2019 - Building secure cloud applications with Azure Key Vault
Azure Low Lands 2019 - Building secure cloud applications with Azure Key VaultTom Kerkhove
 
Data Security - Storage Security
Data Security - Storage SecurityData Security - Storage Security
Data Security - Storage SecurityEng Teong Cheah
 
Azure key vault
Azure key vaultAzure key vault
Azure key vaultRahul Nath
 
Securing sensitive data with Azure Key Vault
Securing sensitive data with Azure Key VaultSecuring sensitive data with Azure Key Vault
Securing sensitive data with Azure Key VaultTom Kerkhove
 
Class Project: Security in Microsoft Azure
Class Project: Security in Microsoft AzureClass Project: Security in Microsoft Azure
Class Project: Security in Microsoft Azuresaitoserge
 
Certifications for Azure Developers
Certifications for Azure DevelopersCertifications for Azure Developers
Certifications for Azure DevelopersKrunal Trivedi
 
Consolidating Infrastructure with Azure Kubernetes Service
Consolidating Infrastructure with Azure Kubernetes ServiceConsolidating Infrastructure with Azure Kubernetes Service
Consolidating Infrastructure with Azure Kubernetes ServiceEng Teong Cheah
 
Microsoft Azure Active Directory
Microsoft Azure Active DirectoryMicrosoft Azure Active Directory
Microsoft Azure Active DirectoryÖnder Değer
 
ITPROCEED_WorkplaceMobility_Delivering traditional File Server Workloads in a...
ITPROCEED_WorkplaceMobility_Delivering traditional File Server Workloads in a...ITPROCEED_WorkplaceMobility_Delivering traditional File Server Workloads in a...
ITPROCEED_WorkplaceMobility_Delivering traditional File Server Workloads in a...ITProceed
 
Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...
Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...
Microsoft Reactor Toronto 5/5/2020 | Azure Kubernetes In Action - Running and...Roy Kim
 
ITPROCEED_TransformTheDatacenter_ten most common mistakes when deploying adfs...
ITPROCEED_TransformTheDatacenter_ten most common mistakes when deploying adfs...ITPROCEED_TransformTheDatacenter_ten most common mistakes when deploying adfs...
ITPROCEED_TransformTheDatacenter_ten most common mistakes when deploying adfs...ITProceed
 
04_Extending and Securing Enterprise Applications in Microsoft Azure_GAB2019
04_Extending and Securing Enterprise Applications in Microsoft Azure_GAB201904_Extending and Securing Enterprise Applications in Microsoft Azure_GAB2019
04_Extending and Securing Enterprise Applications in Microsoft Azure_GAB2019Kumton Suttiraksiri
 

What's hot (20)

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

Similar to Active Directory & LDAP Authentication with Search Guard

Elasticsearch Document- and Field-Level Security | Search Guard
Elasticsearch Document- and Field-Level Security | Search GuardElasticsearch Document- and Field-Level Security | Search Guard
Elasticsearch Document- and Field-Level Security | Search GuardJochen Kressin
 
Search Guard Configuration | Security for Elasticsearch
Search Guard Configuration | Security for ElasticsearchSearch Guard Configuration | Security for Elasticsearch
Search Guard Configuration | Security for ElasticsearchJochen Kressin
 
Configuring Domino To Be An Ldap Directory And To Use An Ldap Directory
Configuring Domino To Be An Ldap Directory And To Use An Ldap DirectoryConfiguring Domino To Be An Ldap Directory And To Use An Ldap Directory
Configuring Domino To Be An Ldap Directory And To Use An Ldap DirectoryEdson Oliveira
 
IRJET- Research Paper on Active Directory
IRJET-  	  Research Paper on Active DirectoryIRJET-  	  Research Paper on Active Directory
IRJET- Research Paper on Active DirectoryIRJET Journal
 
MMC Integration with LDAP and LDAP PS(SSL)
MMC Integration with LDAP and LDAP PS(SSL)MMC Integration with LDAP and LDAP PS(SSL)
MMC Integration with LDAP and LDAP PS(SSL)alfa
 
Chapter_11_LDAP_and_Kerberos-converted.pptx
Chapter_11_LDAP_and_Kerberos-converted.pptxChapter_11_LDAP_and_Kerberos-converted.pptx
Chapter_11_LDAP_and_Kerberos-converted.pptxahmedsayed947221
 
Authorization in active directory
Authorization in active directoryAuthorization in active directory
Authorization in active directoryssuser1eca7d
 
Microsoft Active Directory.pptx
Microsoft Active Directory.pptxMicrosoft Active Directory.pptx
Microsoft Active Directory.pptxmasbulosoke
 
Search Guard Architecure | Security for Elasticsearch
Search Guard Architecure | Security for ElasticsearchSearch Guard Architecure | Security for Elasticsearch
Search Guard Architecure | Security for ElasticsearchJochen Kressin
 
The Ldap Protocol
The Ldap ProtocolThe Ldap Protocol
The Ldap ProtocolGlen Plantz
 
LDAP Injection & Blind LDAP Injection
LDAP Injection & Blind LDAP InjectionLDAP Injection & Blind LDAP Injection
LDAP Injection & Blind LDAP InjectionChema Alonso
 
Shibboleth 2.0 IdP slides - Installfest (Edited)
Shibboleth 2.0 IdP slides - Installfest (Edited)Shibboleth 2.0 IdP slides - Installfest (Edited)
Shibboleth 2.0 IdP slides - Installfest (Edited)JISC.AM
 
Ldap 121020013604-phpapp01
Ldap 121020013604-phpapp01Ldap 121020013604-phpapp01
Ldap 121020013604-phpapp01SANE Ibrahima
 

Similar to Active Directory & LDAP Authentication with Search Guard (20)

Elasticsearch Document- and Field-Level Security | Search Guard
Elasticsearch Document- and Field-Level Security | Search GuardElasticsearch Document- and Field-Level Security | Search Guard
Elasticsearch Document- and Field-Level Security | Search Guard
 
Search Guard Configuration | Security for Elasticsearch
Search Guard Configuration | Security for ElasticsearchSearch Guard Configuration | Security for Elasticsearch
Search Guard Configuration | Security for Elasticsearch
 
Configuring Domino To Be An Ldap Directory And To Use An Ldap Directory
Configuring Domino To Be An Ldap Directory And To Use An Ldap DirectoryConfiguring Domino To Be An Ldap Directory And To Use An Ldap Directory
Configuring Domino To Be An Ldap Directory And To Use An Ldap Directory
 
LDAP
LDAPLDAP
LDAP
 
Ldap
LdapLdap
Ldap
 
LDAP
LDAPLDAP
LDAP
 
Xcap
XcapXcap
Xcap
 
IRJET- Research Paper on Active Directory
IRJET-  	  Research Paper on Active DirectoryIRJET-  	  Research Paper on Active Directory
IRJET- Research Paper on Active Directory
 
MMC Integration with LDAP and LDAP PS(SSL)
MMC Integration with LDAP and LDAP PS(SSL)MMC Integration with LDAP and LDAP PS(SSL)
MMC Integration with LDAP and LDAP PS(SSL)
 
Active directory slides
Active directory slidesActive directory slides
Active directory slides
 
Active Directory
Active Directory Active Directory
Active Directory
 
Chapter_11_LDAP_and_Kerberos-converted.pptx
Chapter_11_LDAP_and_Kerberos-converted.pptxChapter_11_LDAP_and_Kerberos-converted.pptx
Chapter_11_LDAP_and_Kerberos-converted.pptx
 
Authorization in active directory
Authorization in active directoryAuthorization in active directory
Authorization in active directory
 
Microsoft Active Directory.pptx
Microsoft Active Directory.pptxMicrosoft Active Directory.pptx
Microsoft Active Directory.pptx
 
Search Guard Architecure | Security for Elasticsearch
Search Guard Architecure | Security for ElasticsearchSearch Guard Architecure | Security for Elasticsearch
Search Guard Architecure | Security for Elasticsearch
 
The Ldap Protocol
The Ldap ProtocolThe Ldap Protocol
The Ldap Protocol
 
70 640 Lesson01 Ppt 041009
70 640 Lesson01 Ppt 04100970 640 Lesson01 Ppt 041009
70 640 Lesson01 Ppt 041009
 
LDAP Injection & Blind LDAP Injection
LDAP Injection & Blind LDAP InjectionLDAP Injection & Blind LDAP Injection
LDAP Injection & Blind LDAP Injection
 
Shibboleth 2.0 IdP slides - Installfest (Edited)
Shibboleth 2.0 IdP slides - Installfest (Edited)Shibboleth 2.0 IdP slides - Installfest (Edited)
Shibboleth 2.0 IdP slides - Installfest (Edited)
 
Ldap 121020013604-phpapp01
Ldap 121020013604-phpapp01Ldap 121020013604-phpapp01
Ldap 121020013604-phpapp01
 

Recently uploaded

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 

Recently uploaded (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 

Active Directory & LDAP Authentication with Search Guard

  • 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.