Open Directory & OpenLDAP. David M. O Rourke Engineering Manager



Similar documents
Mac OS X Directory Services

Open Directory. Apple s standards-based directory and network authentication services architecture. Features

Mac OS X Server Open Directory Administration Version 10.6 Snow Leopard

Red Hat Enterprise ipa

Best Practices: Integrating Mac OS X with Active Directory. Technical White Paper April 2009

Mac OS X Server. Open Directory Administration For Version 10.4 or Later

Best Practices: Integrating Mac OS X with Active Directory. Technical White Paper September 2007

Creating Home Directories for Windows and Macintosh Computers

Apple Certified Specialist - Directory Services ACS-DS 10.6

Mac OS X Server Open Directory Administration For Version 10.5 Leopard Third Edition

Practical LDAP on Linux

Mac OS X. Playing nice in a heterogeneous world PRESENTED BY:Charles Edge 318.COM

Instructions for Adding a MacOS 10.4.x Client to ASURITE

Integrating with Active Directory. MacSysAdmin 2010

Fedora Directory Server FUDCon III London, 2005

Integration with Active Directory. Jeremy Allison Samba Team

Mac OS X and Directory Services Integration

Apple Technical White Paper. Best Practices for Integrating OS X Lion with Active Directory

Modifying the Active Directory Schema to Support Mac Systems

Stanford University, ITS CRC; Draft v.9; Noah Abrahamson 2/7/08 (Page 1)

Configuring Apache Web Server for x509 User Authentication

Apple Technical White Paper Best Practices for Integrating OS X with Active Directory

Standardizing PKI in Higher Education Apple PKI and Universal Hi-Ed Spec proposal

Integrating OID with Active Directory and WNA

Apple Technical White Paper Best Practices for Integrating OS X with Active Directory

Charles Firth Managing Macs in a Windows World

Authentication in a Heterogeneous Environment

The Integration of LDAP into the Messaging Infrastructure at CERN

Managing ios Devices. Andrew Wellington Division of Information The Australian National University XW11

The Mac OS X Server Essentials v10.5 Exam Skills Assessment Guide

THE BCS PROFESSIONAL EXAMINATIONS BCS Level 6 Professional Graduate Diploma in IT. April 2009 EXAMINERS' REPORT. Network Information Systems

What is included in the ATRC server support

Centralized Mac Home Directories On Windows Servers: Using Windows To Serve The Mac

Windows Services. Support Windows and mixed-platform workgroups with high-performance, affordable network services. Features

AD Schema Update IPBrick iportalmais

Exam Name: System Administration using Mac OS X Server v10.3 Exam Exam Type Apple Exam Code: 9L0-607 Total Questions: 86

This chapter describes how to set up and manage VPN service in Mac OS X Server.

FreeIPA Client and Server

Security with LDAP. Andrew Findlay. February Skills 1st Ltd

IceWarp Server - SSO (Single Sign-On)

BlackShield ID. QUICKStart Guide. Integrating Active Directory Lightweight Services

Kerberos and Single Sign-On with HTTP

BlackBerry Enterprise Service 10. Version: Configuration Guide

Cisco TelePresence Authenticating Cisco VCS Accounts Using LDAP

MongoDB Security Guide

Configuration Guide BES12. Version 12.1

Hansoft LDAP Integration

IBM SPSS Collaboration and Deployment Services Version 6 Release 0. Single Sign-On Services Developer's Guide

GL550 - Enterprise Linux Security Administration

ENTERPRISE LINUX SECURITY ADMINISTRATION

Client Management - MCX

Configuring idrac6 for Directory Services

Windows Server 2003 Active Directory: Perspective

LDaemon. This document is provided as a step by step procedure for setting up LDaemon and common LDaemon clients.

"Charting the Course... Enterprise Linux Networking Services Course Summary

MongoDB Security Guide

User Management / Directory Services using LDAP

Ciphermail Gateway Web LDAP Authentication Guide

SonicOS Enhanced 3.2 LDAP Integration with Microsoft Active Directory and Novell edirectory Support

Casper Suite. Security Overview

Directory Interface for User Management via LDAP BC-LDAP-USR 6.30 Test Catalog

Leveraging Active Directory on Mac OS X. Leopard Edition, Revision 3

Oracle Net Service Name Resolution

File Services. File Services at a Glance

VMware Identity Manager Administration

SonicOS Enhanced 3.2 LDAP Integration with Microsoft Active Directory and Novell edirectory Support

NETASQ MIGRATING FROM V8 TO V9

LDAP Server Configuration Example

MongoDB Security Guide Release 3.0.6

Getting Started Guide

GL-275: Red Hat Linux Network Services. Course Outline. Course Length: 5 days

FreeIPA - Open Source Identity Management in Linux

Security Provider Integration Kerberos Authentication

Deploying RSA ClearTrust with the FirePass controller

Configuration Guide. BlackBerry Enterprise Service 12. Version 12.0

ASUS WL-5XX Series Wireless Router Internet Configuration. User s Guide

Remote Authentication and Single Sign-on Support in Tk20

SCOPTEL WITH ACTIVE DIRECTORY USER DOCUMENTATION

Configuration Guide BES12. Version 12.2

Internet infrastructure. Prof. dr. ir. André Mariën

Understanding and Using NetInfo. Includes information on setting up Mac OS X Server and NetInfo to increase the power of your Mac OS X network

Using SUSE Linux Enterprise Desktop with Microsoft * Active Directory Infrastructure

Other documents in this series are available at: servernotes.wazmac.com

BlackBerry Enterprise Server for Microsoft Exchange Version: 5.0 Service Pack: 2. Feature and Technical Overview

DeployStudio Server Quick Install

Instructions for Adding a MacOS 10.4.x Server to ASURITE for File Sharing. Installation Section

Securing SAS Web Applications with SiteMinder

Mac OS X Server Administrator s Guide. Includes information on how Mac OS X Server software works and strategies for using it with your network

ICANWK401A Install and manage a server

OnCommand Performance Manager 1.1

FreeIPA Cross Forest Trusts

MAPI Connector Overview

To integrate Oracle Application Server with Active Directory follow these steps.

User Management Resource Administrator. Managing LDAP directory services with UMRA

Transcription:

Open Directory & OpenLDAP David M. O Rourke Engineering Manager

Overview Background on Apple s Open Directory Technology (8 minutes) What is it What is Directory Services How has Apple integrated OpenLDAP (20 minutes or less) what has Apple added to OpenLDAP? Questions and Answers (remaining time)

Open Directory Open Directory is a technology name Covers both client access technologies and server technologies Integrates and promotes industry standard technologies Open Directory is built into Mac OS X & Mac OS X Server Been there since 10.0 Open Sourced as part of Darwin http://developer.apple.com/darwin/projects/ opendirectory/

What Is Directory Services Abstraction API for read/write access to system configuration and management data Users, groups, mount records and others Authentication abstraction Mac OS X Software Directory Services NetInfo LDAP BSD Files Other

Directory Services in 10.3 Includes LDAPv3 (read/write), Native Active Directory, NetInfo, NIS, BSD/etc files Service Discovery: Rendezvous, SMB, AppleTalk, and SLP LDAPv3 client support replication fail over Documented Access API and plug-in API SDK posted Sample code, sample plug-in, notes Directory Services Headers are installed in /System/Library/Frameworks/DirectoryService.framework Command line tool for directory editing dscl

10.3 Usage of Directory Services Login Window uses Directory Services for all user authentication Managed Desktop All Security Framework authentication uses Directory Services Legacy Unix tools have been migrated to use PAM Mac OS X default PAM module uses Directory Services Mac OS X Server processes and Administration Tools

How Does Mac OS X Use Directory Services? BSD/Command Line/Server BSD APIs Mac OS X Application Directory Service Framework lookupd DirectoryService Plug-in(s) Directory Data

Mac OS 10.3 Directory Server Mac OS 10.3 Server includes a complete Directory and Single Sign-on Authentication system LDAPv3 based on OpenLDAP 2.1.22 Enhanced the Open Directory Password Server SASL based network authentication Added a fully integrated Kerberos Server Support Windows Clients via integrated PDC Replication support for LDAP and Authentication data Apple is pursuing Kerberos as a unifying Single Sign-on Technology Mac OS X Server all deploy Kerberos (customers don t even know it some cases)

Apple s Password Server Allows customers to support all major LAN network protocols and required authentication methods Apple has invested in a secure password database Supports secure replication can sync passwords with an MIT KDC enforces password policies Allows customers to support both Kerberos and non- Kerberos based network protocols and applications users have a single password across all network services/ platforms Future plans call for us to work with MIT to extend Kerberos for non-password based authentication

Password Server Authentication Methods Supported by Mac OS X Authentication Method MD5 Digest CRAM-MD5 NT-Lan Manager Jaguar Panther Tiger Protocol Client Default, Login Window, Clear Text IMAP & SMTP SMB File Sharing APOP WebDAV Digest MS Chap2 POP3 Mail Protocol WebDAV File System PPP, PPTP, VPN 2 Way Random AFP DHX (Diffe-Helman Exhange) NTLMv2 AFP, and Mac OS X Setpassword SMB File Sharing

LDAPv3 Client Features 10.3 LDAPv3 is a robust LDAPv3 client Support for DHCP LDAP server discovery Server-based or client side LDAP mappings Integrated support for Open Directory Password Server Client side awareness of LDAP replicas API transparent failover when necessary read/write replication support Auto-discovery and configuration for Kerberos usage

OpenLDAP, Mac OS X Server and OpenDirectory Jason Townsend Directory Services Engineer mailto:jtownsend@apple.com

Apple and OpenLDAP LDAP is Apple's network directory system of choice Must be trivial for our customers to deploy OpenLDAP is used for both client and server side LDAP support since Mac OS X 10.2 Apple is investing in OpenLDAP feature set we are adding support for: Directory based schema and access controls Changes will be presented to OpenLDAP project Changes will also be posted on Darwin Mac OS X Server will also expose support for LDAP organization units (ou s) in the GUI tools

No secrets! All Apple modifications have been and will continue to be presented to OpenLDAP project Regardless of acceptance our changes are posted to Apple s darwin OpenSource repository http://developer.apple.com/darwin/ http://developer.apple.com/darwin/projects/ opendirectory/ http://developer.apple.com/darwin/projects/kerberos/ Darwin is the OpenSource project that Mac OS X is based on.

Apple modifications summary Resolve any build issues on Mac OS X Full integration with the Apple Password Server pass through of authentication data In directory schema and access controls slapconfig command line tool to automate standard setup process GUI tools use slapconfig underneath configuration data stored in LDAP additional Apple schema /Library/configuration/blah client side failover support in Directory Services LDAPv3 plug-in

Build support on Mac OS X symbol conflicts (sl_free) BIND 9 changes SASL header include Xcode project in OpenLDAP sources (for debugging) autoconf/makefiles still used to generate shipping binaries

Integration with Password Server Password Server does not provide network access to either cleartext or hashes of the password The challenge is generated before the user is known To support secure authentication, challenge and response are relayed to Password Server for verification accomplished using a custom SASL plug-in Cleartext authentication is proxied to a secure auth to Password Server

In-Directory Schema Storing schema directives in the directory Helpful for replicated environments don t need to manually replicate.schema file changes helps also in the case of remote-only administration schemaconfigdn directive indicates DN of schema record attributetype directives become attributetypesconfig values of this record objectclass directives become objectclassesconfig values of this record modified files: servers/slapd/add.c, at.c, config.c, main.c, modify.c, oc.c, proto-slap.h, schema.c, schema_init.c, schema_prep.c, schemaparse.c, slap.h

In-Directory Schema Example slapd.conf: schemaconfigdn cn=schema,cn=config,dc=example,dc=com LDIF: dn: cn=schema,cn=config,dc=apple,dc=com cn: schema objectclass: top objectclass: container objectclass: extensibleobject attributetypesconfig: ( 2.16.840.1.113730.3.1.13 NAME 'maillocaladdress' DESC 'RFC822 email address of this recipient' EQUALITY caseignoreia5match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} ) attributetypesconfig: ( 2.16.840.1.113730.3.1.18 NAME 'mailhost' DESC 'FQDN of the SMTP/MTA of this recipient' EQUALITY caseignoreia5match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} SINGLE-VALUE ) attributetypesconfig: ( 2.16.840.1.113730.3.1.47 NAME 'mailroutingaddress' DESC 'RFC822 routing address of this recipient' EQUALITY caseignoreia5match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} SINGLE-VALUE) objectclassesconfig: ( 2.16.840.1.113730.3.2.147 NAME 'inetlocalmailrecipient' DESC 'Internet local mail recipient' SUP top AUXILIARY MAY ( maillocaladdress $ mailhost $ mailroutingaddress ) )

In-Directory Access Controls DN of access control record specified by access specifiedin-directory directive attribute values include sequence number and access directive 1000:access to * by * read Useful when using read access controls in a replicated environment modified files: servers/slapd/acl.c, aclparse.c, add.c, backend.c, config.c delete.c, main.c, modify.c, proto-slap.h, schema_prep.c, slap.h

In-Directory Access Controls Example slapd.conf: access specified-in-directory apple-acl cn=default,cn=accesscontrols,dc=example,dc=com LDIF: dn: cn=default,cn=accesscontrols,dc=example,dc=com cn: default objectclass: apple-acl objectclass: top apple-acl-entry: 1000:access to attr=userpassword by self write by group/posixgroup/memberuid= cn=admin,cn=groups,dc=example,dc=com write by * read apple-acl-entry: 1100:access to * by group/posixgroup/memberuid= cn=admin,cn=groups,dc=example,dc=com write by * read

slapconfig command line tool Manages the Open Directory server (including slapd and slurpd) Enables KDC when creating an Open Directory master Provides single commands for: creating an Open Directory master adding a replica removing a replica Server Admin uses slapconfig as well so all GUI functionality is available thorugh the command line Log file is /Library/Logs/slapconfig.log

Example slapconfig commands % slapconfig -createldapmaster <admin name> Password: % slapconfig -createreplica <master IP address> <admin name> Password: % slapconfig -destroyldapserver

Other Configuration Data in LDAP OpenDirectory LDAP Server mappings stored as an organizationalunit record named macosxodconfig description has XML plist for Directory Services LDAPv3 plug-in needed for DHCP provided LDAP server (option 95)

Example Server Mappings Record dn: ou=macosxodconfig,cn=config,dc=apple,dc=com ou: macosxodconfig objectclass: top objectclass: organizationalunit description:: PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBF IHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUgQ29tcHV0ZXIvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0c... N0cmluZz50b3duc2VuZDk8L3N0cmluZz4KPC9kaWN0Pgo8L3BsaXN0Pgo= description is an XML plist: <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http:// www.apple.com/dtds/propertylist-1.0.dtd"> <plist version="1.0"> <dict> <key>attribute Type Map</key> <array>...

Other Configuration Data in LDAP Replica lists to support client side failover LDAP is in ldapreplicas config record passwordserver config record KerberosClient record

Example ldapreplicas record dn: cn=ldapreplicas,cn=config,dc=example,dc=com cn: ldapreplicas apple-ldap-replica: ldap://17.221.43.149 apple-ldap-replica: ldap://17.221.43.141 apple-ldap-writable-replica: ldap://17.221.43.149 objectclass: apple-configuration objectclass: top

Other Configuration Data in LDAP KerberosClient record also used to automatically populate client s Kerberos config file KerberosKDC record contains contents of kdc.conf used when adding a new replica Also have a method for storing key-tab information securely in LDAP (requires password server) allows for delegated Server administration - File server administrator doesn t have to be a Directory administrator to add a new Kerberos service

KerberosClient Record <plist version="1.0"> <dict> <key>edu.mit.kerberos</key> <dict> <key>domain_realm</key> <dict> <key>.apple.com</key> <string>oddjob.apple.com</string> <key>apple.com</key> <string>oddjob.apple.com</string> </dict> <key>libdefaults</key> <dict> <key>default_realm</key> <string>oddjob.apple.com</string> </dict> <key>realms</key> <dict> <key>oddjob.apple.com</key> <dict> <key>kadm_list</key> <array> <string>oddjob.apple.com</string> </array> <key>kdc_list</key> <array> <string>oddjob.apple.com</string> </array> </dict> </dict> </dict> <key>generationid</key> <integer>1143721936</integer> </dict> </plist>

[kdcdefaults] kdc_ports = 88 KerberosKDC Record [realms] ODDJOB.APPLE.COM = { kadmind_port = 749 max_life = 10h 0m 0s max_renewable_life = 7d 0h 0m 0s master_key_type = des3-hmac-sha1 supported_enctypes = des3-hmac-sha1:normal arcfour-hmac-md5:normal des-cbc-crc:normal des-cbc-crc:v4 kdc_supported_enctypes = des3-hmac-sha1:normal arcfour-hmac-md5:normal des-cbc-crc:normal des-cbc-crc:v4 acl_file = /var/db/krb5kdc/kadm5.acl admin_keytab = /var/db/krb5kdc/kadm5.keytab database_name = /var/db/krb5kdc/principal } [logging] kdc = FILE:/var/log/krb5kdc/kdc.log admin_server = FILE:/var/log/krb5kdc/kadmin.log

Additional Apple schema Stored in /etc/openldap/schema/apple.schema Used to support Mac OS X/Mac OS X Server features Managed desktop AFP home directories OID prefix: 1.3.6.1.4.1.63

Future Ideas for OpenLDAP What Apple thinks we need improved handling of upgrade scenarios dump to LDIF and reimport can be expensive on large databases incremental indexing - better performance for adding to large databases unification with authentication services (Password Server/ SASL and Kerberos) three databases currently which must be kept in sync

Q&A

Optional material follows

Kerberos Auth Authority Used by loginwindow to determine if the user is Kerberized ;Kerberosv5;[guid];[principal];realm;[realm key] Minimum ;Kerberosv5;;;FOO.APPLE.COM; Principal name will be user_shortname@foo.apple.com Recommended Kerberosv5;;user@FOO.APPLE.COM;FOO.APPLE.COM; May want to add the principal name as an additional shortname for the user