SlideShare a Scribd company logo
1 of 73
User Administration
(Without You)
Integrating LDAP with MongoDB
v 20181108
JIM BLACKHURST
Principal Solutions Architect
(London)
RONAN BOHAN
Senior Solutions Architect
(Dublin/London)
Agenda
Section
One
Section
Three
LDAP Primer
LDAP general overview, What do all these
things mean?
MongoDB Atlas and LDAPS
Configuring MongoDB Atlas to work with
Secure LDAP
Section
Two
Section
Four
MongoDB LDAP Configuration
How to configure MongoDB to run with
LDAP
Gotcha’s, Wrap up and Q&A
Things to know, What we’ve learned, and
what you wish we’d covered
LDAP Primer
LDAP Primer - What is LDAP
Lightweight Directory Access Protocol
(LDAP, geddit?)
• It’s a protocol for managing and querying entities in a specific tree structure
• You may know it by its server implementations, Active Directory or OpenLDAP
• Used very heavily in MS Windows network management, but also seen
throughout Linux world too
Section
One
LDAP Primer - Why is it useful?
• Centralised service, good for RBAC with many consuming systems
• Fast!
• Well supported with many good server options (AD, OpenLDAP, OpenDJ,
RHDS)
• Highly structured but extensible
• Vendor neutral and industry standard - based on a subset of the X.500 standard
Section
One
LDAP Primer - What does it look like?
Section
One
dc=mongodb
ou=groups
cn=admins cn=users
ou=users
uid=jim uid=ronan
dc=ldap
dc=local
LDAP Primer - What does it look like?
Section
One
dc=mongodb
ou=groups
cn=admins cn=users
ou=users
uid=jim uid=ronan
dc=ldap
dc=local
LDAP Primer - Domain Components
Section
One
dc=mongodb
ou=groups
cn=admins cn=users
ou=users
uid=jim uid=ronan
dc=ldap
dc=local
Domain: ldap.mongodb.localDomain Components
LDAP Primer - Domain Components
Section
One
ou=groups
cn=admins cn=users
ou=users
uid=jim uid=ronan
dc=ldap,dc=mongodb,dc=local Domain: ldap.mongodb.local
LDAP Primer - Objects
Section
One
ou=groups
cn=admins cn=users
ou=users
uid=jim uid=ronan
Objects
dc=ldap,dc=mongodb,dc=local
LDAP Primer - Organizational Units
Section
One
ou=groups
cn=admins cn=users
ou=users
uid=jim uid=ronan
Organizational
Units
dc=ldap,dc=mongodb,dc=local
LDAP Primer - Leaf Objects
Section
One
ou=groups
cn=admins cn=users
ou=users
uid=jim uid=ronan
dc=ldap,dc=mongodb,dc=local
user objects group objects
LDAP Primer - Distinguished Name
Section
One
ou=groups
cn=admins cn=users
ou=users
uid=jim uid=ronan
dc=ldap,dc=mongodb,dc=local
DN: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local
LDAP Primer - Demo - Directory Studio
Section
One
LDAP Primer - What does it look like?
• The Directory is a hierarchical tree
• Objects in the tree consist of:
• A Distinguished Name
• Defined by the object's location / path in the directory
• A set of Attributes and associated Values
• One or more '<attribute> = <value>' pairs
• A set of Object Classes
• Defines the role of the object in the directory
Section
One
Terminology
How many of these attributes do I have to remember?
Abbreviation Full Name Description Example
DN Distinguished Name
dc Domain Component
ou Organizational Unit
cn Common Name
uid User ID
Section
One
LDAP Primer – 1. Distinguished Name
• The Distinguished Name (DN) is not related to Aristocracy, Breeding
or Nobility.
• It is a compound of a number of objects that together Distinguish that
entity from all others in the directory
• The DN is defined by the full path from that object to the root of the
tree
• It is by definition, unique.
DN: uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local
Section
One
LDAP Primer – 2. Domain Components
• A Domain Component (dc) is a component part of the domain name
at the top level of the tree
DN: dc=ldap,dc=mongodb,dc=local
Section
One
• An Organisational Unit (ou) is a directory object into which you can
place things like groups, users, computers, etc..
• Similar in concept to a folder in a file system.
• Typically found between the DCs and leaf objects in a DN
ou=users
DN: uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local
Section
One
LDAP Primer – 3. Organisational Units
LDAP Primer – 4. Common Name
• cn is the Common Name for an object
• A friendly name, used all over the place:
• Not necessarily (and often not) unique
• The attribute is also used for lots of other things like cn=users to
identify a group
cn=jim
Section
One
LDAP Primer – 5. UID
• uid is the User Identifier or User ID
• Just a name, or other identifier for a user
• Typically unique in the tree
• In Active Directory, UPN (User Principal Name) is often used instead
and is defined using an email address format (name@domain)
uid=jim
Section
One
upn=jim@mongodb.com
LDAP Primer – ** Side Note **
• Windows Vs Linux
• Due to the popularity of LDAP with Windows networking, many Windows only
attributes and objects exist within Active Directory (AD), which may not exist in
OpenLDAP or other server implementations
• Examples Include
• UPN (User Principal Name)
• SAM (sAMAccountName)
Section
One
Terminology – Recap
Abbreviation Full Name Description Example
DN Distinguished Name The unique entity description DN: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local
dc Domain Component The parts of the domain of the DN dc=ldap,dc=mongodb,dc=local
ou Organizational Unit a ‘folder’ that contains entities ou=users
cn Common Name basic name, not guaranteed unique cn=jim
uid User ID
a more formal name, typically unique
in the tree
uid=ronan
Section
One
LDAP Primer – Group Membership
• Group membership in LDAP is kinda difficult...
• Why? Because LDAP only provides unidirectional mappings.
Section
One
LDAP Primer – Unidirectional What?
• You can provide a DN (e.g. for the user 'ronan') as the value for an
attribute (e.g. the 'member' attribute) in another object (say the group
'admins')
• But that user object doesn't know it's "in" that group.
• In OpenLDAP you can use the MemberOf overlay to achieve this
reverse lookup (AD on Windows does this automatically)
• The overlay provides a (set of) calculated 'memberOf' attribute(s), the values of
which are the DN's of the group(s) to which the object belongs
Section
One
LDAP Primer – Queries
There are four parts to any LDAP query, delimited by ?'s
Section
One
<Base DN>?<Attributes To Return>?<Scope>?<Filter>
LDAP Primer – Queries
There are four parts to any LDAP query, delimited by ?'s
1. The Base Distinguished Name you want to target (perhaps a top level DC, a
user or an OU)
• ou=users,dc=ldap,dc=mongodb,dc=local
Section
One
<Base DN>?<Attributes To Return>?<Scope>?<Filter>
LDAP Primer – Queries
There are four parts to any LDAP query, delimited by ?'s
2. The Attributes you want to return, specified as a comma separated list
• cn,sn,uid,...
Section
One
<Base DN>?<Attributes To Return>?<Scope>?<Filter>
LDAP Primer – Queries
There are four parts to any LDAP query, delimited by ?'s
3. The Scope which is one of three options
• base (only the base) | one (one below, not base) | sub (recursive lookup - Default)
Section
One
<Base DN>?<Attributes To Return>?<Scope>?<Filter>
LDAP Primer – Queries
There are four parts to any LDAP query, delimited by ?'s
4. A Filter which limits the search to specific objects
• uid=jim
Section
One
<Base DN>?<Attributes To Return>?<Scope>?<Filter>
LDAP Primer – Queries By Example
Sub-tree example:
1. Begin the search at dc=ldap,dc=mongodb,dc=local
2. Return just the cn attribute
3. Perform a sub-tree search (default)
4. Only return results for objects which match uid=jim
Section
One
dc=ldap,dc=mongodb,dc=local?cn??uid=jim
LDAP Primer – Queries By Example
A more efficient example:
1. Begin at ou=users,dc=ldap,dc=mongodb,dc=local
2. Return just the cn attribute
3. Perform a search one level below the base dn
4. Only return results for objects which match uid=jim
Section
One
ou=users,dc=ldap,dc=mongodb,dc=local?cn?one?uid=jim
LDAP Primer – Queries By Example
Base search example:
1. Begin at
uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local
2. Return all the attributes
3. Perform a single-node base search (fast!)
4. Do not filter results
Section
One
uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local??base?
LDAP Primer – Queries By Example
Membership example:
1. Begin at
uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local
2. Return the (derived) memberOf attribute(s)
3. Perform a single-node base search
4. Do not filter results
Section
One
uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local?memberOf?base?
LDAP Primer – Queries
• ldapsearch : command line tool to query an LDAP server
• Unfortunately it doesn't natively support LDAP URI format
• But we can use it to express an equivalent query
Section
One
LDAP Primer – Queries
The following query:
Can be expressed as follows:
Section
One
<Base DN>?<Attributes To Return>?<Scope>?<Filter>
ldapsearch -b <Base DN> -s <Scope> <Filter> <Attributes>
1 23 4
1 2 3 4
MongoDB
Configuration
Section
Two
MongoDB LDAP Support
• LDAP support is a MongoDB Enterprise feature
• MongoDB 2.6 introduced LDAP Authentication (via saslauthd)
• Linux only
• MongoDB 3.4 introduced:
• Authentication via System/OS libraries on both Linux & Windows
• LDAP Authorization
• Enabled through the operational tooling or through config options.
Section
two
MongoDB LDAP Support
5 Easy Steps
1. Client logs in with Username
2. Username is (optionally) converted into a DN via userToDNMapping
3. The DN is run against the authorization queryTemplate
4. Check results of this authorization query against the roles defined in
MongoDB (roles@admin)
5. Access! (Or not)
Section
two
MongoDB LDAP Support
Section
two
user: jim
pass: ???
User DN:
uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local
userToDNMapping
MongoDB LDAP Support
Section
two
user: jim
pass: ???
User DN:
uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local
userToDNMapping
MongoDB LDAP Support
Section
two
user: jim
pass: ???
User DN:
uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local
Group DN:
cn=users,ou=groups,dc=ldap,dc=mongodb,dc=local
userToDNMapping
queryTemplate
MongoDB LDAP Support
Section
two
user: jim
pass: ???
User DN:
uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local
Group DN:
cn=users,ou=groups,dc=ldap,dc=mongodb,dc=local
userToDNMapping
queryTemplate
Role:
readAnyDatabase@admin
roles@admin
MongoDB LDAP Support
Section
two
user: jim
pass: ???
User DN:
uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local
Group DN:
cn=users,ou=groups,dc=ldap,dc=mongodb,dc=local
userToDNMapping
queryTemplate
Role:
readAnyDatabase@admin
roles@admin
LDAP Authentication
security.ldap.userToDNMapping
● Optional
● Converts the supplied user credentials into a DN
● Array of JSON documents containing 2 fields:
○ match
○ substitution || ldapQuery
Section
two
LDAP Authentication
security.ldap.userToDNMapping
LDAP Substitution example:
userToDNMapping: [
{
match: "(.+)",
substitution: "uid={0},ou=users,dc=ldap,dc=mongodb,dc=local"
}
]
Section
two
LDAP Authentication
security.ldap.userToDNMapping
LDAP Substitution example:
userToDNMapping: [
{
match: "(.+)",
substitution: "uid={0},ou=users,dc=ldap,dc=mongodb,dc=local"
}
]
e.g. ronan => DN: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local
Section
two
LDAP Authentication
security.ldap.userToDNMapping
LDAP Query example:
userToDNMapping: [
{
match: "(.+)",
ldapQuery: "dc=ldap,dc=mongodb,dc=local??sub?(uid={0})"
}
]
Section
two
LDAP Authentication
security.ldap.userToDNMapping
LDAP Query example:
userToDNMapping: [
{
match: "(.+)",
ldapQuery: "dc=ldap,dc=mongodb,dc=local??sub?(uid={0})"
}
]
e.g. ronan => LDAP Query: dc=ldap,dc=mongodb,dc=local??sub?(uid=ronan)
Section
two
LDAP Authentication
security.ldap.userToDNMapping
LDAP Query example:
userToDNMapping: [
{
match: "(.+)",
ldapQuery: "dc=ldap,dc=mongodb,dc=local??sub?(uid={0})"
}
]
e.g. ronan => LDAP Query: dc=ldap,dc=mongodb,dc=local??sub?(uid=ronan)
=> DN: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local
Section
two
LDAP Authorization
security.ldap.authz.queryTemplate
● LDAP query to run for authorization
● Results compared against MongoDB roles @admin
Section
two
LDAP Authorization
security.ldap.authz.queryTemplate
LDAP AuthZ query example:
queryTemplate: "{USER}?memberOf?base"
e.g. DN: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local
=> LDAP Query: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local?memberOf?base?
Section
two
LDAP Authorization
security.ldap.authz.queryTemplate
LDAP AuthZ query example:
queryTemplate: "{USER}?memberOf?base"
e.g. DN: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local
=> LDAP Query: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local?memberOf?base?
=> memberOf: cn=admins,ou=groups,dc=ldap,dc=mongodb,dc=local
memberOf: cn=users,ou=groups,dc=ldap,dc=mongodb,dc=local
Section
two
Let's Do It Live
Take Notes?
❏ Start a MongoDB Instance!
❏ Create a new config file
❏ Start it up
❏ Create Role in mongod
❏ Example Authentication
Section
two
Verifying MongoDB LDAP Configuration
• You can verify the MongoDB LDAP configuration using mongoldap
• <cfg file>: MongoDB configuration file
• <username>: user to authenticate and/or acquire roles for
• Can also use the --debug command line option to help resolve
problems
Section
two
mongoldap -f <cfg file> --user <username>
LDAPS and
MongoDB Atlas
MongoDB Atlas
• Although MongoDB Atlas takes a lot of pressure off operations, you
still get the control you need to manage users effectively and
securely
• MongoDB Atlas supports LDAP Authentication & Authorization
• Supports only Secure LDAP (LDAPS) connection protocol
Section
three
What is LDAPS?
• LDAPS is the Secure LDAP protocol, aka LDAP over TLS/SSL
• Distinct from StartTLS over LDAP
• Default LDAPS port: 636
Section
three
MongoDB Atlas
• Assuming we have an LDAPS server available…
• What does this look like in practice?
Section
three
Here's one I prepared
earlier...
MongoDB Atlas
Section
three
MongoDB Atlas - Authentication
LDAPS port
LDAPS server
Section
three
MongoDB Atlas - Authorization
Section
three
MongoDB Atlas
• Now we have connected to our LDAPS server…
• How do we define roles in MongoDB based on the groups in our
LDAPS server?
Section
three
MongoDB Atlas - User Management
Select LDAP GROUP
Provide DN for the
group in question
Define Privileges
Section
three
MongoDB Atlas - User Management
Correctly configured LDAP Groups in
MongoDB Atlas
Section
three
Wrap Up
Gotcha's
Users in multiple OUs / Ambiguous Users
Case Sensitivity
Commas in usernames
Punctuation: Smart Quotes (“ and ”), hyphens vs dashes, etc
Section
four
Advanced Topics
• ldapUserCacheInvalidationInterval: Interval by which the $external
cache is flushed; 30 seconds default
• If you want to continue allowing access by users not on the $external database,
ensure the authenticationMechanisms parameter includes SCRAM-SHA-1
and/or SCRAM-SHA-256 as appropriate.
• The following authentication mechanisms are compatible with MongoDB LDAP
authorization: LDAP Proxy Authentication, Kerberos Authentication, x.509
Section
four
Advanced Topics
• For replica sets, configure LDAP authorization on the secondary members first
before configuring the primary.
• In sharded clusters, you must configure LDAP authorization on the config servers
for cluster-level users. You can optionally configure LDAP authorization on each
shard for shard-local users.
Section
four
Advanced Topics
• security.ldap.bind.method: set to SASL to enable SASL authentication
(default simple)
• security.ldap.bind.saslMechanisms: Defines SASL mechanisms
(default DIGEST-MD5)
• security.ldap.bind.useOSDefaults: Use Windows OS credentials in
place of queryUser & queryPassword
Section
four
Reference Material
MongoDB Documentation:
• https://docs.mongodb.com/manual/core/security-ldap/
• https://docs.mongodb.com/manual/tutorial/authenticate-nativeldap-activedirectory/
• https://docs.mongodb.com/manual/core/security-ldap-external/
Atlas Documentation:
• https://docs.atlas.mongodb.com/security-ldaps/
MongoDB University:
• https://university.mongodb.com/courses/M310/about
Worked Example on Github:
• https://github.com/rbohan/MongoLDAP
Section
four
Thank You!

More Related Content

What's hot

Best practices for highly available and large scale SolrCloud
Best practices for highly available and large scale SolrCloudBest practices for highly available and large scale SolrCloud
Best practices for highly available and large scale SolrCloudAnshum Gupta
 
Getting Ready to Use Redis with Apache Spark with Dvir Volk
Getting Ready to Use Redis with Apache Spark with Dvir VolkGetting Ready to Use Redis with Apache Spark with Dvir Volk
Getting Ready to Use Redis with Apache Spark with Dvir VolkSpark Summit
 
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Web Services Korea
 
Exadata SMART Monitoring - OEM 13c
Exadata SMART Monitoring - OEM 13cExadata SMART Monitoring - OEM 13c
Exadata SMART Monitoring - OEM 13cAlfredo Krieg
 
RDFS In A Nutshell V1
RDFS In A Nutshell V1RDFS In A Nutshell V1
RDFS In A Nutshell V1Fabien Gandon
 
RocksDB Performance and Reliability Practices
RocksDB Performance and Reliability PracticesRocksDB Performance and Reliability Practices
RocksDB Performance and Reliability PracticesYoshinori Matsunobu
 
Analyzing SQL Server wait stats, hands-on!
Analyzing SQL Server wait stats, hands-on!Analyzing SQL Server wait stats, hands-on!
Analyzing SQL Server wait stats, hands-on!Red Gate Software
 
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen SinkRedis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen SinkDatabricks
 
What is new in PostgreSQL 14?
What is new in PostgreSQL 14?What is new in PostgreSQL 14?
What is new in PostgreSQL 14?Mydbops
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...Amazon Web Services Korea
 
Mongodb basics and architecture
Mongodb basics and architectureMongodb basics and architecture
Mongodb basics and architectureBishal Khanal
 
Amazon Relational Database Service (Amazon RDS)
Amazon Relational Database Service (Amazon RDS)Amazon Relational Database Service (Amazon RDS)
Amazon Relational Database Service (Amazon RDS)Amazon Web Services
 
Oracle 12c Multitenant architecture
Oracle 12c Multitenant architectureOracle 12c Multitenant architecture
Oracle 12c Multitenant architecturenaderattia
 
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...Databricks
 
Hardening Kafka Replication
Hardening Kafka Replication Hardening Kafka Replication
Hardening Kafka Replication confluent
 
Migrate Oracle database to Amazon RDS
Migrate Oracle database to Amazon RDSMigrate Oracle database to Amazon RDS
Migrate Oracle database to Amazon RDSJesus Guzman
 
PostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsPostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsCommand Prompt., Inc
 

What's hot (20)

Best practices for highly available and large scale SolrCloud
Best practices for highly available and large scale SolrCloudBest practices for highly available and large scale SolrCloud
Best practices for highly available and large scale SolrCloud
 
Getting Ready to Use Redis with Apache Spark with Dvir Volk
Getting Ready to Use Redis with Apache Spark with Dvir VolkGetting Ready to Use Redis with Apache Spark with Dvir Volk
Getting Ready to Use Redis with Apache Spark with Dvir Volk
 
MongoDB
MongoDBMongoDB
MongoDB
 
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기Amazon Redshift로 데이터웨어하우스(DW) 구축하기
Amazon Redshift로 데이터웨어하우스(DW) 구축하기
 
Exadata SMART Monitoring - OEM 13c
Exadata SMART Monitoring - OEM 13cExadata SMART Monitoring - OEM 13c
Exadata SMART Monitoring - OEM 13c
 
RDFS In A Nutshell V1
RDFS In A Nutshell V1RDFS In A Nutshell V1
RDFS In A Nutshell V1
 
RocksDB Performance and Reliability Practices
RocksDB Performance and Reliability PracticesRocksDB Performance and Reliability Practices
RocksDB Performance and Reliability Practices
 
Analyzing SQL Server wait stats, hands-on!
Analyzing SQL Server wait stats, hands-on!Analyzing SQL Server wait stats, hands-on!
Analyzing SQL Server wait stats, hands-on!
 
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen SinkRedis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
Redis + Apache Spark = Swiss Army Knife Meets Kitchen Sink
 
What is new in PostgreSQL 14?
What is new in PostgreSQL 14?What is new in PostgreSQL 14?
What is new in PostgreSQL 14?
 
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
데브시스터즈 데이터 레이크 구축 이야기 : Data Lake architecture case study (박주홍 데이터 분석 및 인프라 팀...
 
Ldap
LdapLdap
Ldap
 
Mongodb basics and architecture
Mongodb basics and architectureMongodb basics and architecture
Mongodb basics and architecture
 
Amazon Relational Database Service (Amazon RDS)
Amazon Relational Database Service (Amazon RDS)Amazon Relational Database Service (Amazon RDS)
Amazon Relational Database Service (Amazon RDS)
 
Oracle Database 12c : Multitenant
Oracle Database 12c : MultitenantOracle Database 12c : Multitenant
Oracle Database 12c : Multitenant
 
Oracle 12c Multitenant architecture
Oracle 12c Multitenant architectureOracle 12c Multitenant architecture
Oracle 12c Multitenant architecture
 
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
A Tale of Three Apache Spark APIs: RDDs, DataFrames, and Datasets with Jules ...
 
Hardening Kafka Replication
Hardening Kafka Replication Hardening Kafka Replication
Hardening Kafka Replication
 
Migrate Oracle database to Amazon RDS
Migrate Oracle database to Amazon RDSMigrate Oracle database to Amazon RDS
Migrate Oracle database to Amazon RDS
 
PostgreSQL Administration for System Administrators
PostgreSQL Administration for System AdministratorsPostgreSQL Administration for System Administrators
PostgreSQL Administration for System Administrators
 

Similar to User administration without you - integrating LDAP

LDAP Applied (EuroOSCON 2005)
LDAP Applied (EuroOSCON 2005)LDAP Applied (EuroOSCON 2005)
LDAP Applied (EuroOSCON 2005)Fran Fabrizio
 
LDAP - Lightweight Directory Access Protocol
LDAP - Lightweight Directory Access ProtocolLDAP - Lightweight Directory Access Protocol
LDAP - Lightweight Directory Access ProtocolS. Hasnain Raza
 
Ldap 121020013604-phpapp01
Ldap 121020013604-phpapp01Ldap 121020013604-phpapp01
Ldap 121020013604-phpapp01SANE Ibrahima
 
Ldap system administration
Ldap system administrationLdap system administration
Ldap system administrationAli Abdo
 
UnderstandingLDAP.ppt
UnderstandingLDAP.pptUnderstandingLDAP.ppt
UnderstandingLDAP.pptEfrizal Zaida
 
Directory services by SAJID
Directory services by SAJIDDirectory services by SAJID
Directory services by SAJIDSajid khan
 
LDAP Integration
LDAP IntegrationLDAP Integration
LDAP IntegrationDell World
 
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
 
Ldapsession 1217528612650451-9
Ldapsession 1217528612650451-9Ldapsession 1217528612650451-9
Ldapsession 1217528612650451-9rezgui
 
RMLL 2013 - Build your LDAP management web interface with LinID Directory Man...
RMLL 2013 - Build your LDAP management web interface with LinID Directory Man...RMLL 2013 - Build your LDAP management web interface with LinID Directory Man...
RMLL 2013 - Build your LDAP management web interface with LinID Directory Man...Clément OUDOT
 
CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...
CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...
CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...CloudIDSummit
 
LSC - Synchronizing identities @ Loadays 2010
LSC - Synchronizing identities @ Loadays 2010LSC - Synchronizing identities @ Loadays 2010
LSC - Synchronizing identities @ Loadays 2010Jonathan Clarke
 
LSC - Synchronizing identities @ Loadays 2010
 LSC - Synchronizing identities @ Loadays 2010 LSC - Synchronizing identities @ Loadays 2010
LSC - Synchronizing identities @ Loadays 2010RUDDER
 
OpenStack Keystone with LDAP
OpenStack Keystone with LDAPOpenStack Keystone with LDAP
OpenStack Keystone with LDAPJesse Pretorius
 
Plone pas.plugins.ldap user/group search
Plone pas.plugins.ldap user/group searchPlone pas.plugins.ldap user/group search
Plone pas.plugins.ldap user/group searchfredvd
 

Similar to User administration without you - integrating LDAP (20)

LDAP Applied (EuroOSCON 2005)
LDAP Applied (EuroOSCON 2005)LDAP Applied (EuroOSCON 2005)
LDAP Applied (EuroOSCON 2005)
 
LDAP - Lightweight Directory Access Protocol
LDAP - Lightweight Directory Access ProtocolLDAP - Lightweight Directory Access Protocol
LDAP - Lightweight Directory Access Protocol
 
Ldap 121020013604-phpapp01
Ldap 121020013604-phpapp01Ldap 121020013604-phpapp01
Ldap 121020013604-phpapp01
 
Ldap introduction (eng)
Ldap introduction (eng)Ldap introduction (eng)
Ldap introduction (eng)
 
Ldap system administration
Ldap system administrationLdap system administration
Ldap system administration
 
UnderstandingLDAP.ppt
UnderstandingLDAP.pptUnderstandingLDAP.ppt
UnderstandingLDAP.ppt
 
Ldapsession
LdapsessionLdapsession
Ldapsession
 
Using OpenLDAP
Using OpenLDAPUsing OpenLDAP
Using OpenLDAP
 
Directory services by SAJID
Directory services by SAJIDDirectory services by SAJID
Directory services by SAJID
 
LDAP Integration
LDAP IntegrationLDAP Integration
LDAP Integration
 
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
 
Ldapsession 1217528612650451-9
Ldapsession 1217528612650451-9Ldapsession 1217528612650451-9
Ldapsession 1217528612650451-9
 
Ldap intro
Ldap introLdap intro
Ldap intro
 
RMLL 2013 - Build your LDAP management web interface with LinID Directory Man...
RMLL 2013 - Build your LDAP management web interface with LinID Directory Man...RMLL 2013 - Build your LDAP management web interface with LinID Directory Man...
RMLL 2013 - Build your LDAP management web interface with LinID Directory Man...
 
CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...
CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...
CIS13: A Breakthrough in Directory Technology: Meet the Elephant in the Room ...
 
LSC - Synchronizing identities @ Loadays 2010
LSC - Synchronizing identities @ Loadays 2010LSC - Synchronizing identities @ Loadays 2010
LSC - Synchronizing identities @ Loadays 2010
 
LSC - Synchronizing identities @ Loadays 2010
 LSC - Synchronizing identities @ Loadays 2010 LSC - Synchronizing identities @ Loadays 2010
LSC - Synchronizing identities @ Loadays 2010
 
LDAP(In_Linux).pptx
LDAP(In_Linux).pptxLDAP(In_Linux).pptx
LDAP(In_Linux).pptx
 
OpenStack Keystone with LDAP
OpenStack Keystone with LDAPOpenStack Keystone with LDAP
OpenStack Keystone with LDAP
 
Plone pas.plugins.ldap user/group search
Plone pas.plugins.ldap user/group searchPlone pas.plugins.ldap user/group search
Plone pas.plugins.ldap user/group search
 

More from MongoDB

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump StartMongoDB
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB
 

More from MongoDB (20)

MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB AtlasMongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
MongoDB SoCal 2020: Migrate Anything* to MongoDB Atlas
 
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
MongoDB SoCal 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDBMongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
MongoDB SoCal 2020: A Complete Methodology of Data Modeling for MongoDB
 
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
MongoDB SoCal 2020: From Pharmacist to Analyst: Leveraging MongoDB for Real-T...
 
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series DataMongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
MongoDB SoCal 2020: Best Practices for Working with IoT and Time-series Data
 
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 MongoDB SoCal 2020: MongoDB Atlas Jump Start MongoDB SoCal 2020: MongoDB Atlas Jump Start
MongoDB SoCal 2020: MongoDB Atlas Jump Start
 
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
MongoDB .local San Francisco 2020: Powering the new age data demands [Infosys]
 
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
MongoDB .local San Francisco 2020: Using Client Side Encryption in MongoDB 4.2
 
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
MongoDB .local San Francisco 2020: Using MongoDB Services in Kubernetes: any ...
 
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
MongoDB .local San Francisco 2020: Go on a Data Safari with MongoDB Charts!
 
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your MindsetMongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
MongoDB .local San Francisco 2020: From SQL to NoSQL -- Changing Your Mindset
 
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas JumpstartMongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
MongoDB .local San Francisco 2020: MongoDB Atlas Jumpstart
 
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
MongoDB .local San Francisco 2020: Tips and Tricks++ for Querying and Indexin...
 
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
MongoDB .local San Francisco 2020: Aggregation Pipeline Power++
 
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
MongoDB .local San Francisco 2020: A Complete Methodology of Data Modeling fo...
 
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep DiveMongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
MongoDB .local San Francisco 2020: MongoDB Atlas Data Lake Technical Deep Dive
 
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & GolangMongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
MongoDB .local San Francisco 2020: Developing Alexa Skills with MongoDB & Golang
 
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
MongoDB .local Paris 2020: Realm : l'ingrédient secret pour de meilleures app...
 
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
 

Recently uploaded

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfAlina Yurenko
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 

Recently uploaded (20)

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdfGOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
GOING AOT WITH GRAALVM – DEVOXX GREECE.pdf
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 

User administration without you - integrating LDAP

  • 1. User Administration (Without You) Integrating LDAP with MongoDB v 20181108
  • 2. JIM BLACKHURST Principal Solutions Architect (London) RONAN BOHAN Senior Solutions Architect (Dublin/London)
  • 3. Agenda Section One Section Three LDAP Primer LDAP general overview, What do all these things mean? MongoDB Atlas and LDAPS Configuring MongoDB Atlas to work with Secure LDAP Section Two Section Four MongoDB LDAP Configuration How to configure MongoDB to run with LDAP Gotcha’s, Wrap up and Q&A Things to know, What we’ve learned, and what you wish we’d covered
  • 5. LDAP Primer - What is LDAP Lightweight Directory Access Protocol (LDAP, geddit?) • It’s a protocol for managing and querying entities in a specific tree structure • You may know it by its server implementations, Active Directory or OpenLDAP • Used very heavily in MS Windows network management, but also seen throughout Linux world too Section One
  • 6. LDAP Primer - Why is it useful? • Centralised service, good for RBAC with many consuming systems • Fast! • Well supported with many good server options (AD, OpenLDAP, OpenDJ, RHDS) • Highly structured but extensible • Vendor neutral and industry standard - based on a subset of the X.500 standard Section One
  • 7. LDAP Primer - What does it look like? Section One dc=mongodb ou=groups cn=admins cn=users ou=users uid=jim uid=ronan dc=ldap dc=local
  • 8. LDAP Primer - What does it look like? Section One dc=mongodb ou=groups cn=admins cn=users ou=users uid=jim uid=ronan dc=ldap dc=local
  • 9. LDAP Primer - Domain Components Section One dc=mongodb ou=groups cn=admins cn=users ou=users uid=jim uid=ronan dc=ldap dc=local Domain: ldap.mongodb.localDomain Components
  • 10. LDAP Primer - Domain Components Section One ou=groups cn=admins cn=users ou=users uid=jim uid=ronan dc=ldap,dc=mongodb,dc=local Domain: ldap.mongodb.local
  • 11. LDAP Primer - Objects Section One ou=groups cn=admins cn=users ou=users uid=jim uid=ronan Objects dc=ldap,dc=mongodb,dc=local
  • 12. LDAP Primer - Organizational Units Section One ou=groups cn=admins cn=users ou=users uid=jim uid=ronan Organizational Units dc=ldap,dc=mongodb,dc=local
  • 13. LDAP Primer - Leaf Objects Section One ou=groups cn=admins cn=users ou=users uid=jim uid=ronan dc=ldap,dc=mongodb,dc=local user objects group objects
  • 14. LDAP Primer - Distinguished Name Section One ou=groups cn=admins cn=users ou=users uid=jim uid=ronan dc=ldap,dc=mongodb,dc=local DN: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local
  • 15. LDAP Primer - Demo - Directory Studio Section One
  • 16. LDAP Primer - What does it look like? • The Directory is a hierarchical tree • Objects in the tree consist of: • A Distinguished Name • Defined by the object's location / path in the directory • A set of Attributes and associated Values • One or more '<attribute> = <value>' pairs • A set of Object Classes • Defines the role of the object in the directory Section One
  • 17. Terminology How many of these attributes do I have to remember? Abbreviation Full Name Description Example DN Distinguished Name dc Domain Component ou Organizational Unit cn Common Name uid User ID Section One
  • 18. LDAP Primer – 1. Distinguished Name • The Distinguished Name (DN) is not related to Aristocracy, Breeding or Nobility. • It is a compound of a number of objects that together Distinguish that entity from all others in the directory • The DN is defined by the full path from that object to the root of the tree • It is by definition, unique. DN: uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local Section One
  • 19. LDAP Primer – 2. Domain Components • A Domain Component (dc) is a component part of the domain name at the top level of the tree DN: dc=ldap,dc=mongodb,dc=local Section One
  • 20. • An Organisational Unit (ou) is a directory object into which you can place things like groups, users, computers, etc.. • Similar in concept to a folder in a file system. • Typically found between the DCs and leaf objects in a DN ou=users DN: uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local Section One LDAP Primer – 3. Organisational Units
  • 21. LDAP Primer – 4. Common Name • cn is the Common Name for an object • A friendly name, used all over the place: • Not necessarily (and often not) unique • The attribute is also used for lots of other things like cn=users to identify a group cn=jim Section One
  • 22. LDAP Primer – 5. UID • uid is the User Identifier or User ID • Just a name, or other identifier for a user • Typically unique in the tree • In Active Directory, UPN (User Principal Name) is often used instead and is defined using an email address format (name@domain) uid=jim Section One upn=jim@mongodb.com
  • 23. LDAP Primer – ** Side Note ** • Windows Vs Linux • Due to the popularity of LDAP with Windows networking, many Windows only attributes and objects exist within Active Directory (AD), which may not exist in OpenLDAP or other server implementations • Examples Include • UPN (User Principal Name) • SAM (sAMAccountName) Section One
  • 24. Terminology – Recap Abbreviation Full Name Description Example DN Distinguished Name The unique entity description DN: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local dc Domain Component The parts of the domain of the DN dc=ldap,dc=mongodb,dc=local ou Organizational Unit a ‘folder’ that contains entities ou=users cn Common Name basic name, not guaranteed unique cn=jim uid User ID a more formal name, typically unique in the tree uid=ronan Section One
  • 25. LDAP Primer – Group Membership • Group membership in LDAP is kinda difficult... • Why? Because LDAP only provides unidirectional mappings. Section One
  • 26. LDAP Primer – Unidirectional What? • You can provide a DN (e.g. for the user 'ronan') as the value for an attribute (e.g. the 'member' attribute) in another object (say the group 'admins') • But that user object doesn't know it's "in" that group. • In OpenLDAP you can use the MemberOf overlay to achieve this reverse lookup (AD on Windows does this automatically) • The overlay provides a (set of) calculated 'memberOf' attribute(s), the values of which are the DN's of the group(s) to which the object belongs Section One
  • 27. LDAP Primer – Queries There are four parts to any LDAP query, delimited by ?'s Section One <Base DN>?<Attributes To Return>?<Scope>?<Filter>
  • 28. LDAP Primer – Queries There are four parts to any LDAP query, delimited by ?'s 1. The Base Distinguished Name you want to target (perhaps a top level DC, a user or an OU) • ou=users,dc=ldap,dc=mongodb,dc=local Section One <Base DN>?<Attributes To Return>?<Scope>?<Filter>
  • 29. LDAP Primer – Queries There are four parts to any LDAP query, delimited by ?'s 2. The Attributes you want to return, specified as a comma separated list • cn,sn,uid,... Section One <Base DN>?<Attributes To Return>?<Scope>?<Filter>
  • 30. LDAP Primer – Queries There are four parts to any LDAP query, delimited by ?'s 3. The Scope which is one of three options • base (only the base) | one (one below, not base) | sub (recursive lookup - Default) Section One <Base DN>?<Attributes To Return>?<Scope>?<Filter>
  • 31. LDAP Primer – Queries There are four parts to any LDAP query, delimited by ?'s 4. A Filter which limits the search to specific objects • uid=jim Section One <Base DN>?<Attributes To Return>?<Scope>?<Filter>
  • 32. LDAP Primer – Queries By Example Sub-tree example: 1. Begin the search at dc=ldap,dc=mongodb,dc=local 2. Return just the cn attribute 3. Perform a sub-tree search (default) 4. Only return results for objects which match uid=jim Section One dc=ldap,dc=mongodb,dc=local?cn??uid=jim
  • 33. LDAP Primer – Queries By Example A more efficient example: 1. Begin at ou=users,dc=ldap,dc=mongodb,dc=local 2. Return just the cn attribute 3. Perform a search one level below the base dn 4. Only return results for objects which match uid=jim Section One ou=users,dc=ldap,dc=mongodb,dc=local?cn?one?uid=jim
  • 34. LDAP Primer – Queries By Example Base search example: 1. Begin at uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local 2. Return all the attributes 3. Perform a single-node base search (fast!) 4. Do not filter results Section One uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local??base?
  • 35. LDAP Primer – Queries By Example Membership example: 1. Begin at uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local 2. Return the (derived) memberOf attribute(s) 3. Perform a single-node base search 4. Do not filter results Section One uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local?memberOf?base?
  • 36. LDAP Primer – Queries • ldapsearch : command line tool to query an LDAP server • Unfortunately it doesn't natively support LDAP URI format • But we can use it to express an equivalent query Section One
  • 37. LDAP Primer – Queries The following query: Can be expressed as follows: Section One <Base DN>?<Attributes To Return>?<Scope>?<Filter> ldapsearch -b <Base DN> -s <Scope> <Filter> <Attributes> 1 23 4 1 2 3 4
  • 39. MongoDB LDAP Support • LDAP support is a MongoDB Enterprise feature • MongoDB 2.6 introduced LDAP Authentication (via saslauthd) • Linux only • MongoDB 3.4 introduced: • Authentication via System/OS libraries on both Linux & Windows • LDAP Authorization • Enabled through the operational tooling or through config options. Section two
  • 40. MongoDB LDAP Support 5 Easy Steps 1. Client logs in with Username 2. Username is (optionally) converted into a DN via userToDNMapping 3. The DN is run against the authorization queryTemplate 4. Check results of this authorization query against the roles defined in MongoDB (roles@admin) 5. Access! (Or not) Section two
  • 41. MongoDB LDAP Support Section two user: jim pass: ??? User DN: uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local userToDNMapping
  • 42. MongoDB LDAP Support Section two user: jim pass: ??? User DN: uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local userToDNMapping
  • 43. MongoDB LDAP Support Section two user: jim pass: ??? User DN: uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local Group DN: cn=users,ou=groups,dc=ldap,dc=mongodb,dc=local userToDNMapping queryTemplate
  • 44. MongoDB LDAP Support Section two user: jim pass: ??? User DN: uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local Group DN: cn=users,ou=groups,dc=ldap,dc=mongodb,dc=local userToDNMapping queryTemplate Role: readAnyDatabase@admin roles@admin
  • 45. MongoDB LDAP Support Section two user: jim pass: ??? User DN: uid=jim,ou=users,dc=ldap,dc=mongodb,dc=local Group DN: cn=users,ou=groups,dc=ldap,dc=mongodb,dc=local userToDNMapping queryTemplate Role: readAnyDatabase@admin roles@admin
  • 46. LDAP Authentication security.ldap.userToDNMapping ● Optional ● Converts the supplied user credentials into a DN ● Array of JSON documents containing 2 fields: ○ match ○ substitution || ldapQuery Section two
  • 47. LDAP Authentication security.ldap.userToDNMapping LDAP Substitution example: userToDNMapping: [ { match: "(.+)", substitution: "uid={0},ou=users,dc=ldap,dc=mongodb,dc=local" } ] Section two
  • 48. LDAP Authentication security.ldap.userToDNMapping LDAP Substitution example: userToDNMapping: [ { match: "(.+)", substitution: "uid={0},ou=users,dc=ldap,dc=mongodb,dc=local" } ] e.g. ronan => DN: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local Section two
  • 49. LDAP Authentication security.ldap.userToDNMapping LDAP Query example: userToDNMapping: [ { match: "(.+)", ldapQuery: "dc=ldap,dc=mongodb,dc=local??sub?(uid={0})" } ] Section two
  • 50. LDAP Authentication security.ldap.userToDNMapping LDAP Query example: userToDNMapping: [ { match: "(.+)", ldapQuery: "dc=ldap,dc=mongodb,dc=local??sub?(uid={0})" } ] e.g. ronan => LDAP Query: dc=ldap,dc=mongodb,dc=local??sub?(uid=ronan) Section two
  • 51. LDAP Authentication security.ldap.userToDNMapping LDAP Query example: userToDNMapping: [ { match: "(.+)", ldapQuery: "dc=ldap,dc=mongodb,dc=local??sub?(uid={0})" } ] e.g. ronan => LDAP Query: dc=ldap,dc=mongodb,dc=local??sub?(uid=ronan) => DN: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local Section two
  • 52. LDAP Authorization security.ldap.authz.queryTemplate ● LDAP query to run for authorization ● Results compared against MongoDB roles @admin Section two
  • 53. LDAP Authorization security.ldap.authz.queryTemplate LDAP AuthZ query example: queryTemplate: "{USER}?memberOf?base" e.g. DN: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local => LDAP Query: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local?memberOf?base? Section two
  • 54. LDAP Authorization security.ldap.authz.queryTemplate LDAP AuthZ query example: queryTemplate: "{USER}?memberOf?base" e.g. DN: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local => LDAP Query: uid=ronan,ou=users,dc=ldap,dc=mongodb,dc=local?memberOf?base? => memberOf: cn=admins,ou=groups,dc=ldap,dc=mongodb,dc=local memberOf: cn=users,ou=groups,dc=ldap,dc=mongodb,dc=local Section two
  • 55. Let's Do It Live Take Notes? ❏ Start a MongoDB Instance! ❏ Create a new config file ❏ Start it up ❏ Create Role in mongod ❏ Example Authentication Section two
  • 56. Verifying MongoDB LDAP Configuration • You can verify the MongoDB LDAP configuration using mongoldap • <cfg file>: MongoDB configuration file • <username>: user to authenticate and/or acquire roles for • Can also use the --debug command line option to help resolve problems Section two mongoldap -f <cfg file> --user <username>
  • 58. MongoDB Atlas • Although MongoDB Atlas takes a lot of pressure off operations, you still get the control you need to manage users effectively and securely • MongoDB Atlas supports LDAP Authentication & Authorization • Supports only Secure LDAP (LDAPS) connection protocol Section three
  • 59. What is LDAPS? • LDAPS is the Secure LDAP protocol, aka LDAP over TLS/SSL • Distinct from StartTLS over LDAP • Default LDAPS port: 636 Section three
  • 60. MongoDB Atlas • Assuming we have an LDAPS server available… • What does this look like in practice? Section three
  • 61. Here's one I prepared earlier... MongoDB Atlas Section three
  • 62. MongoDB Atlas - Authentication LDAPS port LDAPS server Section three
  • 63. MongoDB Atlas - Authorization Section three
  • 64. MongoDB Atlas • Now we have connected to our LDAPS server… • How do we define roles in MongoDB based on the groups in our LDAPS server? Section three
  • 65. MongoDB Atlas - User Management Select LDAP GROUP Provide DN for the group in question Define Privileges Section three
  • 66. MongoDB Atlas - User Management Correctly configured LDAP Groups in MongoDB Atlas Section three
  • 68. Gotcha's Users in multiple OUs / Ambiguous Users Case Sensitivity Commas in usernames Punctuation: Smart Quotes (“ and ”), hyphens vs dashes, etc Section four
  • 69. Advanced Topics • ldapUserCacheInvalidationInterval: Interval by which the $external cache is flushed; 30 seconds default • If you want to continue allowing access by users not on the $external database, ensure the authenticationMechanisms parameter includes SCRAM-SHA-1 and/or SCRAM-SHA-256 as appropriate. • The following authentication mechanisms are compatible with MongoDB LDAP authorization: LDAP Proxy Authentication, Kerberos Authentication, x.509 Section four
  • 70. Advanced Topics • For replica sets, configure LDAP authorization on the secondary members first before configuring the primary. • In sharded clusters, you must configure LDAP authorization on the config servers for cluster-level users. You can optionally configure LDAP authorization on each shard for shard-local users. Section four
  • 71. Advanced Topics • security.ldap.bind.method: set to SASL to enable SASL authentication (default simple) • security.ldap.bind.saslMechanisms: Defines SASL mechanisms (default DIGEST-MD5) • security.ldap.bind.useOSDefaults: Use Windows OS credentials in place of queryUser & queryPassword Section four
  • 72. Reference Material MongoDB Documentation: • https://docs.mongodb.com/manual/core/security-ldap/ • https://docs.mongodb.com/manual/tutorial/authenticate-nativeldap-activedirectory/ • https://docs.mongodb.com/manual/core/security-ldap-external/ Atlas Documentation: • https://docs.atlas.mongodb.com/security-ldaps/ MongoDB University: • https://university.mongodb.com/courses/M310/about Worked Example on Github: • https://github.com/rbohan/MongoLDAP Section four