SlideShare una empresa de Scribd logo
1 de 30
A Flexible Approach to Creating an
Enterprise Directory
Leveraging Microsoft Active Directory LDS

Robert Gorrell – IdM Architect, Enterprise Systems
Jeff Whitworth – Manager, Enterprise Systems
Background
• In 2009, UNCG launched a strategic effort to move
general file, print, and applications services from Novell to
Microsoft.
• By 2011, migration off Novell services was complete but
for a heavy dependency on eDirectory as the campus
LDAP directory.
• …a new enterprise LDAP directory was needed!
With a goal of discontinuing Novell licensing by July 2012
Drivers
1. Redundancy – ability to replicate directory across multiple servers.
2. High Availability – ability to support an “active-active”
environment.
3. Logging – capture/store transactional logs of all connections for
historical and audit purposes.
4. Security – transition to use of secure LDAP only.
5. Independence – The environment will be independent from other
services while being maintained by the enterprise IdM.
6. Network – design to operate within the new datacenter model.
7. Production Control – Development and/or Validation tiers to
match Production.
Meet the contenders…
Microsoft Active Directory
• Proprietary product available on
Windows. Commercial support
available. Windows group has
expertise of both host and software.
• Cost: Covered by MS Campus
Agreement
• Pros: Quick implementation time.
Some configuration and tools
supplied.
• Cons: Not as generic as alternative
though still adheres to most LDAP
standards. Not all aspects are
customizable.

Open LDAP
• Open source product available on
Linux. Community support only.
Unix has expertise with host but not
software.
• Cost: Free
• Pros: Most generic/universal of all
LDAP implementations. 100%
customizable
• Cons: Longer implementation time.
More configuration required. Less
provided tools. Just an LDAP
server, nothing more.
Features Comparison
Microsoft Active Directory
• Basic builtin structure
• DIT must be based on domain
• Schema extension by MS MMC
• No plaintext anonymous queries
• Default query limited of 10,000
object
• Paging controls
• Authentication with email or DN
• Replication automatically builtin
• Management tools provided

Open LDAP
• No builtin structure
• DIT can be domain or geographic
• Schema extension by LDIF
• Plaintext anonymous queries
allowed
• No default query limit
• No paging controls
• Authentication with DN only
• Replication available though not
builtin
• Bring your own management tools
And the winner is…
Microsoft Active Directory!

But…
Concerns over traditional AD
• organization DIT is more comfortable (o=uncg)
• already have a general workstation domain and no
intention of merging with enterprise authentication =
unnecessary overhead.
• but mostly…
a predefined (corporate style) permissions model that by
default allows reading of any users directory information
by any other authenticated user = FERPA concerns.
Where to go?
• So is Microsoft the right solution after all?
• Is there a way to make Active Directory meet our needs
without creating undo baggage and without changing the
way we operate as a university?
• What is Microsoft Lightweight Directory Service we’ve
heard whispers about?
Microsoft LDS
• < Win2k3: ADAM – Active Directory Application Mode
• > Win2k8: LDS – Lightweight Directory Services
• basically, a light-weight implementation of Active Directory
running as a single service free of domains and domain
controllers.
The Architecture
• A new authentication AD domain using
three Win2k8R2 x64 domain
controllers acting as an “Identity Vault”
in a protected network.
• A minimum of 2 LDS hosting servers,
scalable to more, at the datacenter
edge
• Utilization of F5’s BigIP appliance to
route client LDAP traffic into the LDS
hosting environment.
• AdamSync to provision objects from
the “Identity Vault” domain into LDAP
instances running in the LDS hosting
environment.
Identity Vault
Why deploy a new domain to support LDS?
• Position authentication as a standalone, independent service.
• Flexibility to pre-stage or carry objects that won’t be synced to
LDS/LDAP.
• Ability to use Microsoft tools to control provisioning process.
• Centralize password management.
• Apply higher level security practices surrounding the vault.
More architectural details…
• Secure LDAP is mandatory. Plaintext LDAP connections
are no longer available.
• Environment will be exposed to all internal networks but
not exposed to the Internet… transition to shibboleth SSO
for external authentication use.
• Directory collapses to a flat structure encouraging
authorization decisions to be made against attribute
information rather than directory structure and alleviate
management burden of yearly org changes.
Provisioning an LDS instance
• Add the AD LDS Role
• Create an LDS Instance
1.
2.
3.
4.
5.
6.
7.
8.
9.

New or Replica?
Name
Ports
Partition
Storage Location
Service Account
Administrators
Pre-load Schema
Done
Provisioning an LDS instance
Provisioning an LDS instance
Provisioning an LDS instance
Loading the schema
• User Classes supplied by LDS
–
–
–
–
–
–
–

MS-AZMan.ldf
MS-InetOrgPerson.ldf
MS-User.ldf
MS-UserProxy.ldf
MS-UserProxyFull.ldf
MS-AdamSyncMetadata.ldf
MS-Adam-DisplaySpecifiers-0409.ldf

• Load objects required by Active Directory to AdamSync:
ldifde -i -f MS-AdamSyncMetadata.LDF -s localhost:389 -j . -c
"cn=Configuration,dc=X" #configurationNamingContext
ADSchemaAnalyzer.exe
• Load target schema (AD)
• Load base schema (LDS)
• Mark all non-present elements
as included
• Create LDIF file
• Mark elements as Auto,
Included, Excluded, and
Present.
userProxy
• When a user performs a simple bind to an LDS instance with
a proxy object, the bind is redirected to Active Directory by
passing the SID and password to a domain controller. The AD
LDS server performs the authentication, and the entire
process is invisible to the end user.
• MS-UserProxy.LDF and MS-UserProxyFull.LDF
• msDS-BindProxy auxiliary class.
• Must synchronize objectSID attribute in AdamSync.
• By default, bind redirection requires an SSL connection.
without userProxy
• New ADAM user accounts are disabled by default. You
will need to enable the new accounts and set a password.
• Enable users by changing the attribute msDSUserAccountDisabled to FALSE.
adamsync.exe
• Installing the XML file:
Adamsync /install localhost:389 CustomAdamsync.xml
• Synchronizing:
Adamsync /sync localhost:389 "DC=fabrikam,DC=com"
/log adamsync.log
ADAMSync Configuration File
<?xml version="1.0"?>
<doc>
<configuration>
<description>Auth Sync</description>
<security-mode>object</security-mode>
<source-ad-name>prdauth03.auth.uncg.edu</source-ad-name>
<source-ad-partition>dc=auth,dc=uncg,dc=edu</source-ad-partition>
<source-ad-account>administrator</source-ad-account>
<account-domain>auth</account-domain>
<target-dn>o=uncg</target-dn>
<query>
<base-dn>ou=accounts,dc=auth,dc=uncg,dc=edu</base-dn>
<object-filter>(objectClass=user)</object-filter>
<attributes>
<include>objectSID</include>
<include>sAMAccountName</include>
<include>UserprincipalName</include>
<include>uid</include>
<include>uidNumber</include>
<include>gidNumber</include>
<include>sn</include>
<include>givenName</include>
<include>initials</include>
<include>middleName</include>
<include>displayName</include>
….
<exclude> </exclude>
</attributes>
</query>

<user-proxy>
<source-object-class>user</source-object-class>
<target-object-class>userProxy</target-object-class>
</user-proxy>
<schedule>
<aging>
<frequency>0</frequency>
<num-objects>0</num-objects>
</aging>
<schtasks-cmd></schtasks-cmd>
</schedule>
</configuration>
<synchronizer-state>
<dirsync-cookie></dirsync-cookie>
<status></status>
<authoritative-adam-instance></authoritative-adam-instance>
<configuration-file-guid></configuration-file-guid>
<last-sync-attempt-time></last-sync-attempt-time>
<last-sync-success-time></last-sync-success-time>
<last-sync-error-time></last-sync-error-time>
<last-sync-error-string></last-sync-error-string>
<consecutive-sync-failures></consecutive-sync-failures>
<user-credentials></user-credentials>
<runs-since-last-object-update></runs-since-last-object-update>
<runs-since-last-full-sync></runs-since-last-full-sync>
</synchronizer-state>
</doc>
ADAMSync Aging
• Frequency
– If set to 0, aging will be not used.
– If set to 1, the aging will be called every sync.
– If set to 2, the aging will be called every two syncs.

• num-objects
– number of objects that need to be aged per run. If set to 0, it
will always age all objects against Active Directory. If you make
this 50, it will only age 50. When you perform the next sync, it
will age the next 50.
LDS Roles
Reside in CN=Roles container of each directory partition
1. Administrators (CN=Administrators,CN=Roles)
– Full access to the partition. Admins specified during setup are
assigned to this role.

2. Readers (CN=Readers,CN=Roles)
– Read access to the partition.

3. Users (CN=Users,CN=Roles)
– No default permission to partition.
LDS Instance Management
• start/stop
– net start <instancename>

• dsdbutil:
– list instances
– activate instance <instancename>
• LDAP port <portnumber>
• SSL port <portnumber>
• change service account <accountname> <password>
LDS Management Tools
• Ldp – LDAP client, connect and modify directory ACE’s.
• Ldifde – command line tool for working with LDIF files.
Import schema and configuration.
• Csvde – command line tool for bulk user import
• ADSI Edit – MMC snapin for editing directory objects.
• schmmgmt.dll – MMC snapin for editing directory schema.
LDS Replication
• Supports multimaster replication just like AD - loose data
consistency with convergence.
• Very easy to setup... create a new instance and supply
the replication source and partition name.
• In advent of replication conflict, instances accept the
change with the higher version and discard the other
change. If the versions are identical, AD LDS instances
accept the change with the more recent time stamp.
Lessons learned so far…
• LDS coupled with adamsync and userproxy class provide
incredible flexibility and ease in spinning up and populating
new LDAP instances for testing or specialized purposes.
• LDS replication combined with a network load balancer
provide a scalable LDAP hosting environment.
• LDS experience is difficult to find, especially in a current
vintage.
• Applications supporting AD as an LDAP source don’t always
support LDS… especially when userproxy class is involved.
Next Steps
• Support for group objects, supplied by Enterprise Group
Management, synced to LDAP by adamsync.
• Development tier, connected to Development Banner and
IdM tiers, refreshable by adamsync.
• FERPA complaint/stripped LDAP directory by adamsync
filtering
Questions?
Robert Gorrell
rwgorrel@uncg.edu
Jeff Whitworth
jnwhitwo@uncg.edu

Más contenido relacionado

La actualidad más candente

The Hybrid Windows Azure Application
The Hybrid Windows Azure ApplicationThe Hybrid Windows Azure Application
The Hybrid Windows Azure ApplicationMichael Collier
 
Windows Server 2012 R2 Jump Start - Intro
Windows Server 2012 R2 Jump Start - IntroWindows Server 2012 R2 Jump Start - Intro
Windows Server 2012 R2 Jump Start - IntroPaulo Freitas
 
Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...
Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...
Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...ITProceed
 
Microsoft Offical Course 20410C_04
Microsoft Offical Course 20410C_04Microsoft Offical Course 20410C_04
Microsoft Offical Course 20410C_04gameaxt
 
Microsoft Windows Server 2012 R2 Overview - Presented by Atidan
Microsoft Windows Server 2012 R2 Overview - Presented by AtidanMicrosoft Windows Server 2012 R2 Overview - Presented by Atidan
Microsoft Windows Server 2012 R2 Overview - Presented by AtidanDavid J Rosenthal
 
GWAVACon - Migration into Office 365 Cloud
GWAVACon - Migration into Office 365 CloudGWAVACon - Migration into Office 365 Cloud
GWAVACon - Migration into Office 365 CloudGWAVA
 
Responsive Web Design ~ Best Practices for Maximizing ROI
Responsive Web Design ~ Best Practices for Maximizing ROIResponsive Web Design ~ Best Practices for Maximizing ROI
Responsive Web Design ~ Best Practices for Maximizing ROIJuan Carlos Duron
 
Best MCSA - SQL SERVER 2012 Training Institute in Delhi
Best MCSA - SQL SERVER 2012 Training Institute in DelhiBest MCSA - SQL SERVER 2012 Training Institute in Delhi
Best MCSA - SQL SERVER 2012 Training Institute in DelhiInformation Technology
 
Top Five Office 365 Migration Headaches and How to Avoid Them
Top Five Office 365 Migration Headaches and How to Avoid ThemTop Five Office 365 Migration Headaches and How to Avoid Them
Top Five Office 365 Migration Headaches and How to Avoid ThemQuest
 
Microsoft Offical Course 20410C_10
Microsoft Offical Course 20410C_10Microsoft Offical Course 20410C_10
Microsoft Offical Course 20410C_10gameaxt
 
KoprowskiT_SQLSat230_Rheinland_SQLAzure-fromPlantoBackuptoCloud
KoprowskiT_SQLSat230_Rheinland_SQLAzure-fromPlantoBackuptoCloudKoprowskiT_SQLSat230_Rheinland_SQLAzure-fromPlantoBackuptoCloud
KoprowskiT_SQLSat230_Rheinland_SQLAzure-fromPlantoBackuptoCloudTobias Koprowski
 
ZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsSimon Massey
 
windows server 2012 R2
windows server 2012 R2windows server 2012 R2
windows server 2012 R2Gol D Roger
 
Cache Security- Adding Security to Non-Secure Applications
Cache Security- Adding Security to Non-Secure ApplicationsCache Security- Adding Security to Non-Secure Applications
Cache Security- Adding Security to Non-Secure ApplicationsInterSystems Corporation
 
E brochure it254_actived2012
E brochure it254_actived2012E brochure it254_actived2012
E brochure it254_actived2012I-r Papa
 

La actualidad más candente (20)

SharePoint for Government
SharePoint for GovernmentSharePoint for Government
SharePoint for Government
 
The Hybrid Windows Azure Application
The Hybrid Windows Azure ApplicationThe Hybrid Windows Azure Application
The Hybrid Windows Azure Application
 
Windows Server 2012 R2 Jump Start - Intro
Windows Server 2012 R2 Jump Start - IntroWindows Server 2012 R2 Jump Start - Intro
Windows Server 2012 R2 Jump Start - Intro
 
Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...
Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...
Office Track: SharePoint Online Migration - Asses, Prepare, Migrate & Support...
 
Microsoft Offical Course 20410C_04
Microsoft Offical Course 20410C_04Microsoft Offical Course 20410C_04
Microsoft Offical Course 20410C_04
 
Ad ds ws2008 r2
Ad ds ws2008 r2Ad ds ws2008 r2
Ad ds ws2008 r2
 
Microsoft Windows Server 2012 R2 Overview - Presented by Atidan
Microsoft Windows Server 2012 R2 Overview - Presented by AtidanMicrosoft Windows Server 2012 R2 Overview - Presented by Atidan
Microsoft Windows Server 2012 R2 Overview - Presented by Atidan
 
MCSA 70-412 Chapter 08
MCSA 70-412 Chapter 08MCSA 70-412 Chapter 08
MCSA 70-412 Chapter 08
 
MCSA 70-412 Chapter 05
MCSA 70-412 Chapter 05MCSA 70-412 Chapter 05
MCSA 70-412 Chapter 05
 
GWAVACon - Migration into Office 365 Cloud
GWAVACon - Migration into Office 365 CloudGWAVACon - Migration into Office 365 Cloud
GWAVACon - Migration into Office 365 Cloud
 
Responsive Web Design ~ Best Practices for Maximizing ROI
Responsive Web Design ~ Best Practices for Maximizing ROIResponsive Web Design ~ Best Practices for Maximizing ROI
Responsive Web Design ~ Best Practices for Maximizing ROI
 
Best MCSA - SQL SERVER 2012 Training Institute in Delhi
Best MCSA - SQL SERVER 2012 Training Institute in DelhiBest MCSA - SQL SERVER 2012 Training Institute in Delhi
Best MCSA - SQL SERVER 2012 Training Institute in Delhi
 
Top Five Office 365 Migration Headaches and How to Avoid Them
Top Five Office 365 Migration Headaches and How to Avoid ThemTop Five Office 365 Migration Headaches and How to Avoid Them
Top Five Office 365 Migration Headaches and How to Avoid Them
 
Microsoft Offical Course 20410C_10
Microsoft Offical Course 20410C_10Microsoft Offical Course 20410C_10
Microsoft Offical Course 20410C_10
 
KoprowskiT_SQLSat230_Rheinland_SQLAzure-fromPlantoBackuptoCloud
KoprowskiT_SQLSat230_Rheinland_SQLAzure-fromPlantoBackuptoCloudKoprowskiT_SQLSat230_Rheinland_SQLAzure-fromPlantoBackuptoCloud
KoprowskiT_SQLSat230_Rheinland_SQLAzure-fromPlantoBackuptoCloud
 
ZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS Clouds
 
windows server 2012 R2
windows server 2012 R2windows server 2012 R2
windows server 2012 R2
 
Cache Security- Adding Security to Non-Secure Applications
Cache Security- Adding Security to Non-Secure ApplicationsCache Security- Adding Security to Non-Secure Applications
Cache Security- Adding Security to Non-Secure Applications
 
WIndows Server 2012
WIndows Server 2012WIndows Server 2012
WIndows Server 2012
 
E brochure it254_actived2012
E brochure it254_actived2012E brochure it254_actived2012
E brochure it254_actived2012
 

Destacado

Khaled Basalamah 2015 CV - Final
Khaled Basalamah 2015 CV - FinalKhaled Basalamah 2015 CV - Final
Khaled Basalamah 2015 CV - FinalKHALID BASALAMAH
 
ιουδαϊκές κοινότητες στη χώρα μας
ιουδαϊκές κοινότητες στη χώρα μαςιουδαϊκές κοινότητες στη χώρα μας
ιουδαϊκές κοινότητες στη χώρα μαςsergakimar
 
National powere switchgear in ahmedabad
National powere switchgear in ahmedabadNational powere switchgear in ahmedabad
National powere switchgear in ahmedabadNation Power Grid
 
Behat internals for advanced usage. Symfony Camp 2016
Behat internals for advanced usage. Symfony Camp 2016Behat internals for advanced usage. Symfony Camp 2016
Behat internals for advanced usage. Symfony Camp 2016Sergey Polischook
 
ούλριχ ζβίγγλιος
ούλριχ ζβίγγλιοςούλριχ ζβίγγλιος
ούλριχ ζβίγγλιοςsergakimar
 
Εκλογή Αρχιεπισκόπου Κύπρου, Θρησκευτικά
Εκλογή Αρχιεπισκόπου Κύπρου, ΘρησκευτικάΕκλογή Αρχιεπισκόπου Κύπρου, Θρησκευτικά
Εκλογή Αρχιεπισκόπου Κύπρου, Θρησκευτικάsergakimar
 

Destacado (6)

Khaled Basalamah 2015 CV - Final
Khaled Basalamah 2015 CV - FinalKhaled Basalamah 2015 CV - Final
Khaled Basalamah 2015 CV - Final
 
ιουδαϊκές κοινότητες στη χώρα μας
ιουδαϊκές κοινότητες στη χώρα μαςιουδαϊκές κοινότητες στη χώρα μας
ιουδαϊκές κοινότητες στη χώρα μας
 
National powere switchgear in ahmedabad
National powere switchgear in ahmedabadNational powere switchgear in ahmedabad
National powere switchgear in ahmedabad
 
Behat internals for advanced usage. Symfony Camp 2016
Behat internals for advanced usage. Symfony Camp 2016Behat internals for advanced usage. Symfony Camp 2016
Behat internals for advanced usage. Symfony Camp 2016
 
ούλριχ ζβίγγλιος
ούλριχ ζβίγγλιοςούλριχ ζβίγγλιος
ούλριχ ζβίγγλιος
 
Εκλογή Αρχιεπισκόπου Κύπρου, Θρησκευτικά
Εκλογή Αρχιεπισκόπου Κύπρου, ΘρησκευτικάΕκλογή Αρχιεπισκόπου Κύπρου, Θρησκευτικά
Εκλογή Αρχιεπισκόπου Κύπρου, Θρησκευτικά
 

Similar a Cause 2013: A Flexible Approach to Creating an Enterprise Directory

Geek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsGeek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsIDERA Software
 
How AD has been re-engineered to extend to the cloud
How AD has been re-engineered to extend to the cloudHow AD has been re-engineered to extend to the cloud
How AD has been re-engineered to extend to the cloudLDAPCon
 
Multiple ldap implementation with ebs using oid
Multiple ldap implementation with ebs using oidMultiple ldap implementation with ebs using oid
Multiple ldap implementation with ebs using oidpasalapudi
 
OpenProdoc Overview
OpenProdoc OverviewOpenProdoc Overview
OpenProdoc Overviewjhierrot
 
Oracle database 12c introduction- Satyendra Pasalapudi
Oracle database 12c introduction- Satyendra PasalapudiOracle database 12c introduction- Satyendra Pasalapudi
Oracle database 12c introduction- Satyendra Pasalapudipasalapudi123
 
VMworld 2013: Vapp6124 automating v mware cloud and virtualization deployment...
VMworld 2013: Vapp6124 automating v mware cloud and virtualization deployment...VMworld 2013: Vapp6124 automating v mware cloud and virtualization deployment...
VMworld 2013: Vapp6124 automating v mware cloud and virtualization deployment...gpadmanabh
 
Introduction to Active Directory
Introduction to Active DirectoryIntroduction to Active Directory
Introduction to Active DirectoryJalpesh Vadgama
 
Best practices When Migrating to Office 365
Best practices When Migrating to Office 365Best practices When Migrating to Office 365
Best practices When Migrating to Office 365Perficient, Inc.
 
Choosing an IdM User Store technology
Choosing an IdM User Store technologyChoosing an IdM User Store technology
Choosing an IdM User Store technologyMichael J Geiser
 
KoprowskiT_SQLSat419_WADBforBeginners
KoprowskiT_SQLSat419_WADBforBeginnersKoprowskiT_SQLSat419_WADBforBeginners
KoprowskiT_SQLSat419_WADBforBeginnersTobias Koprowski
 
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys  How to Build a Successful Microsoft DevOps Including the DataDevOps and Decoys  How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the DataKellyn Pot'Vin-Gorman
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithMarkus Eisele
 
DEF CON 27 - DIRK JAN MOLLEMA - im in your cloud pwning your azure environment
DEF CON 27 - DIRK JAN MOLLEMA - im in your cloud pwning your azure environmentDEF CON 27 - DIRK JAN MOLLEMA - im in your cloud pwning your azure environment
DEF CON 27 - DIRK JAN MOLLEMA - im in your cloud pwning your azure environmentFelipe Prado
 
EDB Database Servers and Tools
EDB Database Servers and Tools EDB Database Servers and Tools
EDB Database Servers and Tools Ashnikbiz
 
Extending drupal authentication
Extending drupal authenticationExtending drupal authentication
Extending drupal authenticationCharles Russell
 
FlexDeploy Product Technical Overview
FlexDeploy Product Technical OverviewFlexDeploy Product Technical Overview
FlexDeploy Product Technical OverviewDalibor Blazevic
 
Big SQL 3.0 - Fast and easy SQL on Hadoop
Big SQL 3.0 - Fast and easy SQL on HadoopBig SQL 3.0 - Fast and easy SQL on Hadoop
Big SQL 3.0 - Fast and easy SQL on HadoopWilfried Hoge
 
Today's Unified Communications: To upgrade, coexist, or go 'all in' with the ...
Today's Unified Communications: To upgrade, coexist, or go 'all in' with the ...Today's Unified Communications: To upgrade, coexist, or go 'all in' with the ...
Today's Unified Communications: To upgrade, coexist, or go 'all in' with the ...C/D/H Technology Consultants
 

Similar a Cause 2013: A Flexible Approach to Creating an Enterprise Directory (20)

Geek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure EnvironmentsGeek Sync | Deployment and Management of Complex Azure Environments
Geek Sync | Deployment and Management of Complex Azure Environments
 
How AD has been re-engineered to extend to the cloud
How AD has been re-engineered to extend to the cloudHow AD has been re-engineered to extend to the cloud
How AD has been re-engineered to extend to the cloud
 
Multiple ldap implementation with ebs using oid
Multiple ldap implementation with ebs using oidMultiple ldap implementation with ebs using oid
Multiple ldap implementation with ebs using oid
 
OpenProdoc Overview
OpenProdoc OverviewOpenProdoc Overview
OpenProdoc Overview
 
Oracle database 12c introduction- Satyendra Pasalapudi
Oracle database 12c introduction- Satyendra PasalapudiOracle database 12c introduction- Satyendra Pasalapudi
Oracle database 12c introduction- Satyendra Pasalapudi
 
VMworld 2013: Vapp6124 automating v mware cloud and virtualization deployment...
VMworld 2013: Vapp6124 automating v mware cloud and virtualization deployment...VMworld 2013: Vapp6124 automating v mware cloud and virtualization deployment...
VMworld 2013: Vapp6124 automating v mware cloud and virtualization deployment...
 
Introduction to Active Directory
Introduction to Active DirectoryIntroduction to Active Directory
Introduction to Active Directory
 
Best practices When Migrating to Office 365
Best practices When Migrating to Office 365Best practices When Migrating to Office 365
Best practices When Migrating to Office 365
 
Choosing an IdM User Store technology
Choosing an IdM User Store technologyChoosing an IdM User Store technology
Choosing an IdM User Store technology
 
KoprowskiT_SQLSat419_WADBforBeginners
KoprowskiT_SQLSat419_WADBforBeginnersKoprowskiT_SQLSat419_WADBforBeginners
KoprowskiT_SQLSat419_WADBforBeginners
 
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys  How to Build a Successful Microsoft DevOps Including the DataDevOps and Decoys  How to Build a Successful Microsoft DevOps Including the Data
DevOps and Decoys How to Build a Successful Microsoft DevOps Including the Data
 
Stay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolithStay productive_while_slicing_up_the_monolith
Stay productive_while_slicing_up_the_monolith
 
DEF CON 27 - DIRK JAN MOLLEMA - im in your cloud pwning your azure environment
DEF CON 27 - DIRK JAN MOLLEMA - im in your cloud pwning your azure environmentDEF CON 27 - DIRK JAN MOLLEMA - im in your cloud pwning your azure environment
DEF CON 27 - DIRK JAN MOLLEMA - im in your cloud pwning your azure environment
 
Windows Azure Essentials V3
Windows Azure Essentials V3Windows Azure Essentials V3
Windows Azure Essentials V3
 
EDB Database Servers and Tools
EDB Database Servers and Tools EDB Database Servers and Tools
EDB Database Servers and Tools
 
Extending drupal authentication
Extending drupal authenticationExtending drupal authentication
Extending drupal authentication
 
FlexDeploy Product Technical Overview
FlexDeploy Product Technical OverviewFlexDeploy Product Technical Overview
FlexDeploy Product Technical Overview
 
Big SQL 3.0 - Fast and easy SQL on Hadoop
Big SQL 3.0 - Fast and easy SQL on HadoopBig SQL 3.0 - Fast and easy SQL on Hadoop
Big SQL 3.0 - Fast and easy SQL on Hadoop
 
Today's Unified Communications: To upgrade, coexist, or go 'all in' with the ...
Today's Unified Communications: To upgrade, coexist, or go 'all in' with the ...Today's Unified Communications: To upgrade, coexist, or go 'all in' with the ...
Today's Unified Communications: To upgrade, coexist, or go 'all in' with the ...
 
Andy Malone - The new office 365 for it pro's
Andy Malone - The new office 365 for it pro'sAndy Malone - The new office 365 for it pro's
Andy Malone - The new office 365 for it pro's
 

Último

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
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
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
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
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
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
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 

Último (20)

DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
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
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
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
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
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
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 

Cause 2013: A Flexible Approach to Creating an Enterprise Directory

  • 1. A Flexible Approach to Creating an Enterprise Directory Leveraging Microsoft Active Directory LDS Robert Gorrell – IdM Architect, Enterprise Systems Jeff Whitworth – Manager, Enterprise Systems
  • 2. Background • In 2009, UNCG launched a strategic effort to move general file, print, and applications services from Novell to Microsoft. • By 2011, migration off Novell services was complete but for a heavy dependency on eDirectory as the campus LDAP directory. • …a new enterprise LDAP directory was needed! With a goal of discontinuing Novell licensing by July 2012
  • 3. Drivers 1. Redundancy – ability to replicate directory across multiple servers. 2. High Availability – ability to support an “active-active” environment. 3. Logging – capture/store transactional logs of all connections for historical and audit purposes. 4. Security – transition to use of secure LDAP only. 5. Independence – The environment will be independent from other services while being maintained by the enterprise IdM. 6. Network – design to operate within the new datacenter model. 7. Production Control – Development and/or Validation tiers to match Production.
  • 4. Meet the contenders… Microsoft Active Directory • Proprietary product available on Windows. Commercial support available. Windows group has expertise of both host and software. • Cost: Covered by MS Campus Agreement • Pros: Quick implementation time. Some configuration and tools supplied. • Cons: Not as generic as alternative though still adheres to most LDAP standards. Not all aspects are customizable. Open LDAP • Open source product available on Linux. Community support only. Unix has expertise with host but not software. • Cost: Free • Pros: Most generic/universal of all LDAP implementations. 100% customizable • Cons: Longer implementation time. More configuration required. Less provided tools. Just an LDAP server, nothing more.
  • 5. Features Comparison Microsoft Active Directory • Basic builtin structure • DIT must be based on domain • Schema extension by MS MMC • No plaintext anonymous queries • Default query limited of 10,000 object • Paging controls • Authentication with email or DN • Replication automatically builtin • Management tools provided Open LDAP • No builtin structure • DIT can be domain or geographic • Schema extension by LDIF • Plaintext anonymous queries allowed • No default query limit • No paging controls • Authentication with DN only • Replication available though not builtin • Bring your own management tools
  • 6. And the winner is… Microsoft Active Directory! But…
  • 7. Concerns over traditional AD • organization DIT is more comfortable (o=uncg) • already have a general workstation domain and no intention of merging with enterprise authentication = unnecessary overhead. • but mostly… a predefined (corporate style) permissions model that by default allows reading of any users directory information by any other authenticated user = FERPA concerns.
  • 8. Where to go? • So is Microsoft the right solution after all? • Is there a way to make Active Directory meet our needs without creating undo baggage and without changing the way we operate as a university? • What is Microsoft Lightweight Directory Service we’ve heard whispers about?
  • 9. Microsoft LDS • < Win2k3: ADAM – Active Directory Application Mode • > Win2k8: LDS – Lightweight Directory Services • basically, a light-weight implementation of Active Directory running as a single service free of domains and domain controllers.
  • 10. The Architecture • A new authentication AD domain using three Win2k8R2 x64 domain controllers acting as an “Identity Vault” in a protected network. • A minimum of 2 LDS hosting servers, scalable to more, at the datacenter edge • Utilization of F5’s BigIP appliance to route client LDAP traffic into the LDS hosting environment. • AdamSync to provision objects from the “Identity Vault” domain into LDAP instances running in the LDS hosting environment.
  • 11. Identity Vault Why deploy a new domain to support LDS? • Position authentication as a standalone, independent service. • Flexibility to pre-stage or carry objects that won’t be synced to LDS/LDAP. • Ability to use Microsoft tools to control provisioning process. • Centralize password management. • Apply higher level security practices surrounding the vault.
  • 12. More architectural details… • Secure LDAP is mandatory. Plaintext LDAP connections are no longer available. • Environment will be exposed to all internal networks but not exposed to the Internet… transition to shibboleth SSO for external authentication use. • Directory collapses to a flat structure encouraging authorization decisions to be made against attribute information rather than directory structure and alleviate management burden of yearly org changes.
  • 13. Provisioning an LDS instance • Add the AD LDS Role • Create an LDS Instance 1. 2. 3. 4. 5. 6. 7. 8. 9. New or Replica? Name Ports Partition Storage Location Service Account Administrators Pre-load Schema Done
  • 17. Loading the schema • User Classes supplied by LDS – – – – – – – MS-AZMan.ldf MS-InetOrgPerson.ldf MS-User.ldf MS-UserProxy.ldf MS-UserProxyFull.ldf MS-AdamSyncMetadata.ldf MS-Adam-DisplaySpecifiers-0409.ldf • Load objects required by Active Directory to AdamSync: ldifde -i -f MS-AdamSyncMetadata.LDF -s localhost:389 -j . -c "cn=Configuration,dc=X" #configurationNamingContext
  • 18. ADSchemaAnalyzer.exe • Load target schema (AD) • Load base schema (LDS) • Mark all non-present elements as included • Create LDIF file • Mark elements as Auto, Included, Excluded, and Present.
  • 19. userProxy • When a user performs a simple bind to an LDS instance with a proxy object, the bind is redirected to Active Directory by passing the SID and password to a domain controller. The AD LDS server performs the authentication, and the entire process is invisible to the end user. • MS-UserProxy.LDF and MS-UserProxyFull.LDF • msDS-BindProxy auxiliary class. • Must synchronize objectSID attribute in AdamSync. • By default, bind redirection requires an SSL connection.
  • 20. without userProxy • New ADAM user accounts are disabled by default. You will need to enable the new accounts and set a password. • Enable users by changing the attribute msDSUserAccountDisabled to FALSE.
  • 21. adamsync.exe • Installing the XML file: Adamsync /install localhost:389 CustomAdamsync.xml • Synchronizing: Adamsync /sync localhost:389 "DC=fabrikam,DC=com" /log adamsync.log
  • 22. ADAMSync Configuration File <?xml version="1.0"?> <doc> <configuration> <description>Auth Sync</description> <security-mode>object</security-mode> <source-ad-name>prdauth03.auth.uncg.edu</source-ad-name> <source-ad-partition>dc=auth,dc=uncg,dc=edu</source-ad-partition> <source-ad-account>administrator</source-ad-account> <account-domain>auth</account-domain> <target-dn>o=uncg</target-dn> <query> <base-dn>ou=accounts,dc=auth,dc=uncg,dc=edu</base-dn> <object-filter>(objectClass=user)</object-filter> <attributes> <include>objectSID</include> <include>sAMAccountName</include> <include>UserprincipalName</include> <include>uid</include> <include>uidNumber</include> <include>gidNumber</include> <include>sn</include> <include>givenName</include> <include>initials</include> <include>middleName</include> <include>displayName</include> …. <exclude> </exclude> </attributes> </query> <user-proxy> <source-object-class>user</source-object-class> <target-object-class>userProxy</target-object-class> </user-proxy> <schedule> <aging> <frequency>0</frequency> <num-objects>0</num-objects> </aging> <schtasks-cmd></schtasks-cmd> </schedule> </configuration> <synchronizer-state> <dirsync-cookie></dirsync-cookie> <status></status> <authoritative-adam-instance></authoritative-adam-instance> <configuration-file-guid></configuration-file-guid> <last-sync-attempt-time></last-sync-attempt-time> <last-sync-success-time></last-sync-success-time> <last-sync-error-time></last-sync-error-time> <last-sync-error-string></last-sync-error-string> <consecutive-sync-failures></consecutive-sync-failures> <user-credentials></user-credentials> <runs-since-last-object-update></runs-since-last-object-update> <runs-since-last-full-sync></runs-since-last-full-sync> </synchronizer-state> </doc>
  • 23. ADAMSync Aging • Frequency – If set to 0, aging will be not used. – If set to 1, the aging will be called every sync. – If set to 2, the aging will be called every two syncs. • num-objects – number of objects that need to be aged per run. If set to 0, it will always age all objects against Active Directory. If you make this 50, it will only age 50. When you perform the next sync, it will age the next 50.
  • 24. LDS Roles Reside in CN=Roles container of each directory partition 1. Administrators (CN=Administrators,CN=Roles) – Full access to the partition. Admins specified during setup are assigned to this role. 2. Readers (CN=Readers,CN=Roles) – Read access to the partition. 3. Users (CN=Users,CN=Roles) – No default permission to partition.
  • 25. LDS Instance Management • start/stop – net start <instancename> • dsdbutil: – list instances – activate instance <instancename> • LDAP port <portnumber> • SSL port <portnumber> • change service account <accountname> <password>
  • 26. LDS Management Tools • Ldp – LDAP client, connect and modify directory ACE’s. • Ldifde – command line tool for working with LDIF files. Import schema and configuration. • Csvde – command line tool for bulk user import • ADSI Edit – MMC snapin for editing directory objects. • schmmgmt.dll – MMC snapin for editing directory schema.
  • 27. LDS Replication • Supports multimaster replication just like AD - loose data consistency with convergence. • Very easy to setup... create a new instance and supply the replication source and partition name. • In advent of replication conflict, instances accept the change with the higher version and discard the other change. If the versions are identical, AD LDS instances accept the change with the more recent time stamp.
  • 28. Lessons learned so far… • LDS coupled with adamsync and userproxy class provide incredible flexibility and ease in spinning up and populating new LDAP instances for testing or specialized purposes. • LDS replication combined with a network load balancer provide a scalable LDAP hosting environment. • LDS experience is difficult to find, especially in a current vintage. • Applications supporting AD as an LDAP source don’t always support LDS… especially when userproxy class is involved.
  • 29. Next Steps • Support for group objects, supplied by Enterprise Group Management, synced to LDAP by adamsync. • Development tier, connected to Development Banner and IdM tiers, refreshable by adamsync. • FERPA complaint/stripped LDAP directory by adamsync filtering

Notas del editor

  1. ESW has expertise in management of both host and software.Open LDAP
  2. DIT – Directory Information Tree
  3. MS-UserProxy.LDF holds the definition for the simple userProxy class, which has basic attributes and contains the msDS-BindProxy auxiliary class. MS-UserProxyFull.LDF contains the msDS-BindProxy auxiliary class as well, but it also pre-populates additional user attributes into the mayContain attribute of the class. Because of this, the attribute classes have to exist beforehand. So when importing the userProxyFull class, either the user or inetOrgPerson class needs to be imported first. Both user and inetOrgPerson contain the attribute class definitions for the attributes that userProxyFull uses