WWDC2003 Session 610
Transcript
Kind: captions Language: en my name is David O'Rourke I'm the engineering manager of open directory I have to get my little Q er here how many people were at last year's presentation could you raise your hand how many people actually had a seat at last year's presentation very cute so they moved it to a bigger room so I want to thank you all for overflowing last year's presentation next year I'm going to go for the pool in the open bar how does that sound whatever around okay also I'd like you to all go out in the hallway and get a friend I'd like to pack this room so we're getting the big one upstairs No okay I think I've actually be scared of that many people I my name's Dave work we're here to talk about open directory what it is what is directory services we're going to review directory services 4 10 2 for those of you are new this year we're going to talk about our future parents for panther and then we're going to go into Q&A so I guess now's as good a time as any to get into it so first of all open direct last year we introduced the open directory technology name and what open directory is is the technology umbrella kinda like quick time it covers a lot of different technologies and our case that clevers the client access technology and also covers any servers that we deliver as part of the Panther server product Apple strategy in the open director space is to adopt and promote industry standard technology such as ldap Kerberos saffell whatever directly related technology fits our purpose we're going to adopt it embrace it and and promote it on our platform so open directory is built into both Mac os10 desktops and the clients built in and it's built in temecula 10 server if you buy mac OS and server and turn on a directory server you get open directory it's been there since 10 point 0 and the good news is is everything we do is open source as part of Darwin so no secrets you can review our implementation see if it meets your needs see if we're sometimes passing a password on the wire in the clear but we try to fix bugs like that and you can see it in our source code the directory service history we started out with mac OS 10 10 0 having net info and I'll that v2 with the client within in 10.1 introduced desktop server with lmv to support and 10.2 we introduced net info LW to l w 3 we added NIS flat file support or yellow pages and i asked the proper name these days or is it yellow pages and i thank you we also introduced service discovery based on directory services so we have an apple talk plugin for browsing appletalk networks we have an SLP plugin we have a rendezvous plugin and we have a plugin for browsing windows network so if you see a Windows Server when you go to connect to server and Jaguar or splash network on Panther you're using directory services Panthers even better it has all the features of 10.2 and we're going to go over some of the new and exciting features right now first I want to talk about what directory services is this is the client access portion of the product it's a standard box diagram engineers like to draw boxes i'm an engineer so I drew some boxes we've got Mac os10 software running on top of an abstraction API we've got the abstraction API there in the middle and the blue box of the blue on your screen yes it is and at the bottom layer we have plugins we have a plug-in for net info we have a plug-in for ldap we now have a plug-in for Active Directory we have a plug-in for BFD files and you as the third party can develop your own plugin I believe we're still working with somebody to develop an Oracle plugin so that their directory system could be an oracle database directory services in 10.2 included an ldap v3 read/write plugin and LW read-only plugin it included net info it includes NIS bsd flat / SE file and include service discovery the api's are documented and the plugin api's are documented we have an SDK includes sample code we have sample plugins we have a stub plugin that you could adopt and put your code in or you could start with our own productized l that v3 plugin and gut it and use it for your own purposes i am the directory services headers are installed in system flash library frameworks directory services framework how does tend to use directory services this is a question we're kind of plumbing if we're doing our job right you don't even notice the directory services is working Mike Mike my management keeps asking me to demo it and I say did you make a pass login window and they say yes I said that's the demo it's a really boring demo but you know if we're doing our jobs right you don't really see directory services because we're just feeding config information to the system behind the scene but managed desktop how many of you use managed desktop managed desktop sources all of its information out of directory services so that's one kiev consumer of the data all the security framework authentication whenever that dialogue comes up and asks you to type of password they ultimately call directory services to verify that password and all the legacy tools have been migrated to pam so if you have passwd or some password authenticating tool that's running on the command line it calls the pam module and that pam module calls you their security framework or directory services and that authenticates your legacy UNIX tool and all the mac OS x server processes and administration tools use directory services connect to server command k in the finder brings up connect to server everything everything on the left all those zones and everything those are all coming from either an Apple talk SLP or rendezvous plug-in when you click on the zones so all the service discovery in Mac OS 10 / network how many of you played with the new flash networking feature in Panthers it allows you to browse that's now all sourcing the same information that what we call nsl or connection server was sourcing in 10.2 and you can use directory access as a system administrator to turn off the browsing of certain protocols so if you don't want your customers ever connecting to your Apple servers over appletalk you can turn off their browsing by going to directory access turn off the appletalk browsing plug-in and then appletalk zones will no longer show up and connect to server that does not turn off the appletalk protocol just turns off the browsing portion another way Mac OS tend to use this directory services this is an architecture diagram next came to us with next step and they had already cooked a lot of the BFC routines to abstract or directory access through a process called look up D and so the system is really there's there's the system's a bit schizophrenic there's the legacy api's that said access direct your data and there's new API said access directory data the way we make both systems regardless of which API get the same data is anything that calls look up d we have a plug-in and look up d the shunts the requests over to directory services anybody that's calling directory services they of course get what directory services is configured so this means when you configure directory access and add an ldap plug in to your search mode you're also configuring what the entire system feeds on the command line side how it resolves users how it results groups so this is the real power of the system so even though there's two different api's they always return the same set of data because they're linked Mac os10 to server includes two choices this is Jaguar server I want to emphasize that we're going over history so not the future 10-2 server included two choices for a directory server you could deploying that info which was always supported that supports mac OS 10.1 and 10.2 we added for the first time in ldap v3 plugin but it uses the net info database for its back in so when you create a record through net info it also showed up on the ldap slide Luke Howard did that work for us from paddle he's in the audience today I'd like to thank them for that it's really kind of cool because you can source your data from one database and serve it up over the net advil protocol serve it up over ldap it supports the mac OS 10 to clients and we introduced the open directory password server which is the baffle based network authentication for legacy authentication protocol I highly recommend that you go back in time and go to yesterday's off session because it's because we talked in detail about the pasture server actually you can go back in time I believe we have these sessions available on DVD later is that correct can anyone confirm that so if you didn't catch the off session and want more details work with apple developer relations to get this year's presentation so on 10-2 we made a lot of progress in the directory space we added NL that v3 server we added service discovery and we introduce new authentication methods with the password server and the authentication authority and that's all the product that we're all using today what I want to talk about now is what we're planning to do for directory services this year and so we're going to move in two directions services for Panther the first thing we're doing is we're substantially enhancing the ldap v3 plugin I'll get into the details of that we're substantially enhancing enhancing the open directory password server we're combine DNS the NIS and flat file plugging in Jaguar they were two separate plugins what we've done in Panthers would combine them as the same source fed into spot taught them to share information we're getting rid of the ldap be to plug in we're enhancing support for Active Directory and we're checking we're making changes to local authentication in addition we're enhancing the SMB windows network plugin we can now browse off of the local subnet next flash network is now based on nsl which was the mac OS 9 network service location protocol flash directory services we that is NaN pages for directory services and we're going to be demoing some new command line tools later in this presentation and we've made some minor changes for plug and developers so if you're developing a plug-in there's some you know gotchas and some heads up that we need to keep you informed of all that be three clients enhancements this is the meat of the work we're doing for Panther in 10 to ldap v3 was already very robust and could talk to a lot of different ldap servers we support a DHCP ldap discovery through option 95 we supported storing our configurations or our mappings on the ldap server itself so you didn't have to visit each machine to reconfigure it we integrated support for the open directory password server so that ldap would use the password server when the authentication authority and the user record told us to so what we're doing for v3 and Panthers are adding replication support so you can deploy multiple ldap servers and our v3 plugin will fail over there will be client-side awareness of ldap replicas and if you're using the DSA p is the failover is completely transparent to you so you don't have to do anything you just call open directory stay open during note I want to talk to an ldap server that ldap server goes away we have to find a replica your code keeps churning along it doesn't even know that we switch network connections now that b3 client replica picking is quite thorough will automatically detect and use ldap replicas we will use any or all of three replica discovery mechanisms an existing standard for ldap called all servers which is stored in the root of the ldap server if we find that information we will use the ldap replicas that are stored in that information we are adding a new record to the ldap system that we call a configuration record that configuration record is no harder than this list of IP addresses it has to be well named there will be documentation server admin but if that configuration is found and lives IP addresses for us to contact we will use that records so you can actually put the replication table in the ldap server and we'll use it and there there is an LDAP replication scheme for DNS service records so if you've configured DNS to list multiple ldap servers will use dns service records all of these methods require ldap server connectivity at least once we can't come up and if you tell us an IP address is the ldap server that you want us to talk to and that isn't even reachable we can't discover the replica so we require connectivity to the ldap server at least once to harvest all of these sources of information but after that you can roam you can move the ldap servers around willy-nilly and as long as one is still up and running we'll contact it and learn about the new information we put the failover support in the client because now mac OS x server ldap supports replication and clearly we're going to work with that very well so now that we have a replicated ldap server we needed a replication aware client and we've done that in Panther replica failover resolution is done in parallel we will not see really try 20 ldap servers at two minutes a shot and make the user wait 40 minutes to find the replica we try to do the discovery in parallel we also try to do it in such a manner that we don't spam the network on every single open attempt we try to gradually build we get more and more aggressive over time when the ldap servers aren't non-responsive so we won't bring up unnecessary network connections if the ldap servers just a little slow to respond but if it's too slow to respond will start looking for replicas and that will cause more networks in traffic we've also enhanced the password server new authentication methods we have some authentication methods to support the new VPN server and we support PDC authentication the PDC needs certain authentication methods to be able to authenticate windows clients so we had to add authentication methods to the password server to support that we've added new password policies we have global and per user policies i went over these in detail in the authentication session and we have secure replication we have true multi-master replication every single password server replica can accept a password change we have clients I failover so one password server stops responding we use other password servers there are more details in session 607 which was yesterday's session but it is secure and it is multi-master replication we have global here's a screenshot of the global policies these are this is a new h i4 for Panther so we support a number of policies i won't go into them in detail right now but i'll leave it up there just for a bit so you can look for your favorite feature i have her dictionaries not here though so everybody wants dictionary and we're going to look into that the authentication methods that the password server supports our md5 digests which is used by default if you don't specify an authentication method this is what login window uses and if any DS API client requests clear text authentication we actually turn around and do an md5 authentication behind-the-scenes cram md5 is typically used by imap and smtp we have NTN land manager that's used by us and be file-sharing we support a pop which is used by the popular email protocol we support web dev digest for web dev apache modules the new authentication methods we've added is ms chap two and that supports the VPN technologies we are retiring to a random in the Panther time frame jaguar supports this Panther won't not a lot of aft clients are still using it if you are still running on an HP clients it requires to a random I think we have AFP clients that are qualified all the way back to eight dot one leland the eight dot one that do THX which is the last authentication methods that we support so all the way back to mac OS 8 you have an asd client that doesn't need to to a random so we're getting rid of that the authentication Authority matrix the authentication Authority was introduced in Jaguar its attributes in the user record that indicates the Jaguar how the user record should be authenticated infamous annotations attempted we had several values we had basic last year and that base indicates the users crypt based we introduced the Apple password server authentication Authority this indicates that the users password server based and in that Authority's all the information we need to know to contact the password server and verify that user this year we're introducing shadow hash local users no longer have a readable crypt password on Panther for those of you who go rummaging around with ni dump on your Panther machine looking for your crypt password isn't there anymore so shadow hash has indicated shadow hash indicates that this user record is shadow hash based instead of local crypt base and we're introducing the Kerberos off authority how many people haven't heard we're making a big push around Kerberos okay so we're going to indicate that users or Kerberos base by actually putting a Kerberos authentication authority in the user record and that helps us know that we should attempt to do Kerberos authentication so local authentication changes crypt is dead the default local authentication is stored in a shadow file for all local users crypt is still supported but none of the Mac os10 tools will create a creek user if you want to do it yourself through DF api's or legacy tools it still works it will still function the OS will still verify the users password but none of our administration tools will create a creek user your application should not be relying on crypt password Panther will break any application that has not adopted security framework directory services or Pam or some other Patrick verification abstraction API this is not a bug in the operating system in order to make the OS more secure and move forward we have to break this so if you have an application that is doing authentication and you're calling get pw name or some other API that returns a crypt passwords and you're relying on that to behave in Panther it will break and we're not going to fix it because it's a security problem so we need you to adopt a password verification abstraction there are three major abstractions you can adopt you can adopt Pam which is a cross-platform pluggable authentication method for Linux you can adopt a security framework to do your password verification in your application if you need to do authentication you should probably be seriously looking at the authorization framework because that's probably the more appropriate way for a GUI application to go forward or you can use the down and dirty directory service kpi's and do the authentication yourself I want to emphasize if your applications not using one of these api's it will break when running on Panther you will not be able to authenticate your user records this is if your server a client process whatever and just for emphasis and with color so we've gotten rid of crypt sorry about breaking your app but it's a necessary evil so here's a quick timeline of password server histories and future we had Kristen ten-point oh we supported crypt and all that bind in 10.1 we support crypt ldap buying Kerberos the d/s api's pastor server Pam and security framework and tend to we've gotten rid of crip support in Panther we now support all that buying Kerberos tsap aight a switchover Pam and security framework and moving out into the future Kerberos was going to get spots going to get bigger and it's going to get a more impressive color so authentication long-term apples investing heavily in Kerberos this means if we're investing heavily in Kerberos so should you either as a customer or as a developer we are aggressively aggressively migrating all of our networking products to be Kerberos based if there's a favorite protocol of yours that does the syndication and we ship a client and we ship a server we're probably going to Kerber eyes it we will ship the MIT KDC we already shipped the MIT kerberos client and session 607 and 108 or must attend for any network service people 108 is the Kerberos session done by Marshall veil and his team all Kerberos all the time is in Apple's future and yours so get used to it plan for next year's presentation we combine the NS and flat file plug in Mac OS 10 25 added in an is plug in Mac OS 10.2 supports flash SD config files Panthers implementation combines the NIS flat file support into a single code base and now there's a unified configuration a chai so it's really easy to configure this this is the configuration a chai the BFC local doesn't require any configuration because we know where all the local files are so that's just kind of there for documentation and then the lower half of the configuration sheet is the domain name of your NIS server or list of alternative NIS servers and if you go to directory access click on the NIS plugin this is the configuration a chai you're going to see ldap v2 is being retired the ldap v3 plugin has all the LW two features l w 3 is more robust and has more features Elda be two configurations will automatically be migrated when you upgrade to Panther for the first time but and we're so we're we're going to make that transition seamless but there's no reason for customers to continue to use v2 so you could move to ldap v3 today on Jaguar you don't need to continue using v2 so you can move ahead of us or you can wait for Panther to migrate your configuration file for you but either way all that be two plugins going away we are providing an Active Directory plugin this plugin is a native client of ldap in Kerberos we're holding Microsoft to their words that active directory is nothing more than an LDAP and Kerberos server so we're holding them to that and we use nothing but openldap and the Kerberos api's to interact with Active Directory we don't use any proprietary our pcs no scam and modifications are required to use this plug-in the plugin generates any missing mac OS 10 attributes that we generate you IDs we generate home lopes we generate all the missing mac OS 10 attributes we can't generate managed desktop data I can't fabricate dock preferences out of thin air so really this is a this is a baseline level of compatibility with Active Directory if you just want users to be able to log on get their name and passwords and stuff like that the ad plugins and excellent thing if you want to actually use some of the unique features of Mac OS 10 you have to modify the ad Skinner and add the information we need but that's above and beyond the baseline feature set so the Active Directory plugin support all the ad features supports the baseline ad Skinner and still supports our extensions if they're present so that we can get additional feature set out of the ad plugin it supports the main controllers authentication policies replication all the features are there Erik Clements has done the ad plugin course he's done a fantastic job and we look forward to your feedback on the product if Mac os10 data skin is present this ad plugin will work with as well so this is the configuration I don't think we could have made it much simpler you don't need the Advanced Options most of the time you enter the forest the domain you enter a computer ID you hit bind we create a computer record in the ad system we use that computer record to bind to the active directory system you then go to directory access and add the ad plug into the search policy you log out to log on the window and you can log on as an ad user that's it we do automatic multidomain authentication you can force it to use a particular server you can force us to use a unique ID attribute that's present you can cash the last user login for network disconnect so when your users go home and they aren't connected to an ad system they can still log on to their power book with the same name and password they use for their network account this feature will be covered more at the mobile managed desktop session later today and it's for any directory services plugin so if you have an ldap user if you have a crypt users or you have an NIS user we now support offline caching of local of network user records and you can set up a number of groups for the ad plugin to administrate which ad users should be considered local administrators on this system so we have service discovery in Panther we still have apple talk we still have SLP we still have a rendezvous and we still have SMB we have rewritten the SMB plug-in from scratch it has the same functionality of bracket as Jaguar but we can now browse off of subnets that's the major feature we still have rendezvous appletalk and SLP SLP will be retired in a future OS release I don't know when maybe next year maybe the year after it will at least be made an optional install in a future OS so if you have any applications that are relying on SLT I highly encourage you to move on to rendezvous because Apple is going to start deprecating this service over the next few years we have some command line tools and man pages we now have man pages for directory services we have a suite of tools for directory services we have DSD el which stands for directory services command line we have the pw policy tool which lets you from the command line set password policies on the passwords River passwd Nina uses directory services we have des perf monitor and we add es air which will convert the numeric error codes to a display string we have API profiling we're going to demo that later and we have server tools and worker manager now includes a new feature called the inspector how many of you are used to read it remember resident for mac OS 9 days inspector is res edit for directory services it's a raw editor you can really shoot yourself in the foot if you want to have a really good time I really recommend you go into the inspector you mess with your home loke you change the user's office ority and paste in a random string into the Crypt password again that'll just you'll have a great time with that so the inspector is a new feature and we think it's quite useful we already used it internally to debug our buoys so what I'd like to do with this time is invite my coworker adjacent towns enough on stage and he's going to give you some really cool demo thank [Applause] thanks Dave so I'd like to go over to demo machine number two and show you some of the stuff that we've added in in Panther should we switch the demo to all right and I'm going to be looking at what we've done from the command line slide so you heard Dave mentioned that we've added some new command line tools one of those is called dstl and if any of you familiar with net info you may have used nickel before the sdl is kind of like nickel except that it uses directory services so i can just say dstl localhost and i have an interactive prompt that i can use to do a wide variety of directory service operations so at the top level I can see all the plugins that I have for example I can i go to net info for the local domain and i can see various record types are there let's take a look at my users another thing is we have tab completion in here which nickel doesn't have so any of you who use this will appreciate that and I'll go ahead and look at the user i'm logged in as i can just read that record and you'll notice where the password attribute used to be there's just eight stars and we have the shadow hash off authority so there is no readable crypt password alright so and i can use in addition to reading data with the scl i can also make changes so for example I could change my authentication hint I could say change that to the usual and oh ok i forgot to authenticate first so you can also authenticate as your administrator and then I have history as well so I can replay those commands and now if I reread that record you can see that I've changed the authentication hint so we've also got a man page for DSC l talks about all the things you can do and there's there's a lot of stuff there we've also added the man page 44 directory service so we should have you know any of the the command line tools that we've got there are going to be going to have man pages you can look at on the system to figure out what you can do with them another feature i'd like to show you is called the psap I logging this is something that we had in Mac OS 10 too but we've made it a little bit better in Panther and if you haven't used it before and you're doing any work with directory services either developing a plug-in or writing an app that's using directory services you're definitely going to want to check this out so as root I can do a kill all user to on directory service and that's we're just going to send a user to signal that will turn on the API logging and then for example I could go ahead and bring up directory access that will cause some directory service calls to happen and if I go look in console I've got my system log up here I can see a whole bunch of calls coming through from from directory access like there's actually a really cool feature in console if you haven't seen this this is really awesome you can filter based on any string and it'll show you only the lines that match that so I can't take credit for that but I use that I use that thing every day so so you can filter to just the app and we're showing also the app name here if you've used this feature before we used to show the pit which we still show but now you can get an idea of well which client is coming in talking to directory service without having to go look at top or to give those things out on your own so that's API logging another thing that we've added in Panther is called des perf monitor and what that does is it allows you to collect data on how long are the various ap Alex called taking how many calls are happening and put that into a table form that you could bring into itself example so the way that I would do that is I've used the so I'll go ahead and do a kill user to again that will turn off the API logging or if you wait five minutes it turns off on its own and if i do GS perf monitor dash a that starts the des perf monitor so it's gathering statistics now and i could go ahead and do something else with de sel for example actually another thing any of you who like to write command line scripts if you know nickel you know how nickel has the one shot mode where you can do a single command you can do the exact same thing with the sdl so i'll go ahead and do a DSD el command there that'll just run one command and then complete and that actually is doing a get der note info on my local domain and showing me the off methadone and that it's read write and that sort of thing so now if I go back dude es por monitor dash D then it will dump the API statistics into VAR log system log and let's see i can go ahead and turn off my filter here and you'll see a bunch of tab delimited data here at the bottom that we could go ahead and bring in to to excel or whatever whatever spreadsheet you want to put it into and take a look at it alright so I'd like to go back to the slides now okay so there's some other changes I want to tell you about if you're doing any plugin development or if you're using the directory service API there's lazy plug-in loading we've added some new standard record and attribute types you want to take a look at there's also support for plugins and directory access and I'll get into that a little later and I'll also tell you a date about our our open source code so lazy plug-in loading this is a feature that we've added in Panther and the main goal here is to improve the boot time and reduce the memory footprint of directory service and the way we do this is we only load the plugins that we need so for backward compatibility this is an opt-in system so you have to make a change to your plug-in to be lazily loaded but if your plug-in is installed and the user isn't using it this is going to help them out because then it's not going to impact the format performance of the system it's very simple to do this and if you are working on a plug-in please let us know we'd love to work with you so there's two keys you'll want to add to your your plugins info.plist the first one is des ok to load lazily and that's going to tell us yes this plug-in wants to opt in for lazy loading the other one is an optional one which is called des nodes to register and that allows you to specify a list of nodes that directory service will register for you without you actually even running so I have an example of that on the next slide here this is from the the combined vsd flat file and n is plug in it registers flash PSD flash local you can see there so that's this array of dictionaries going on there and the des ok to load lazily is at the bottom so there's some API editions the first one hopefully you'll be excited about is we have an umbrella header so anyone who's ever programmed with directory service before you had to include probably four different files to do anything and it was a little confusing and the names were hard to remember so now you just include directory service / directory service at h and everything works if you're developing on Panther we've added some new standard record an attribute type there's a few examples there there's a lot more but you can check out the header files on your Panther developer tools for example we have people which is for contact information this is if you want to have that contact information but not attach it to a user record we also have a record for the auto server setup maybe you've seen the demos of automatic server setup on mac OS x server we store those in auto server setup records we've also added keywords and XML plist is one we use in the auto server setup we've added one new API call which is DF duder note off on record type this is pretty much the same thing as a dude or note off except you specify which record type so that lets you work with records other than users and the main the main thing we do this with now is the computer records when you have a PDC setup that uses this API so directory access plugins we actually had support for directory access plugins beginning in 10 2 and for those of you that aren't familiar directory access is the tool that you use to configure open directory which is an applications utilities this allows you to provide a custom interface when someone clicks on the configure button for your plug for your open directory plug-in and we actually use the system for all of the UI that you see in directory access for ldap v3n is active directory all those have plugins and directory access we're going to be documenting that in a update to our developer documentation and if you want to do this essentially what you need to do is factor your configuration so that all of the UI is going to be in your directory access plugin and the back end of it will be in your your directory services plugin so you'll use the directory services API to actually make your configuration changes normally this is done by a plugin custom calls and packing up your your configuration in the in the d/s buffer as an xml p list or something like that so why why do we suggest that you do that it's because directory access is a remote tool it can actually be used for example to connect from a powerbook to a headless xserve over the d/s proxy so if you go to the server menu in directory access you can connect to whatever whatever server machine you want and configure it so the only way for you to get from the machine running directory access to the appropriate place to put those config files is using the API because we have a reference for you that allows you to use that remote connection you need to keep in mind because of this that there there may be different versions on both sides of that connection and we actually support pants are connecting to jaguar so we actually keep around some of our old plugins for example ldap be too even though the directory service plugin is gone there's still a directory access plugin for that so you can continue to configure that if you want to work on a directory access plugin or directory service plug and let us know that it should be pretty easy to do the stuff in directory access the it's all using objective-c and there's only a few methods you need to implement so open source update actually we had some new source code posted on monday and for those of you that have been following this for a while there are a few changes as to how the projects are laid out so we have taken the ldap v3 plugin and merge that into the main directory service project and we have the DSN is plug-in available some of the other projects we used to have are now obsolete which is the PSFS plugin that's the flat file which has been merged into the same project as the NIS plugin and then the ldap v2 project because that's no longer in Panther and ldap v3 isn't directory service we're also going to be open sourcing DS tools which includes dstl some of our other command line tools later in the Panther I'm frame this point I'd like to hand it back to dave for a wrap-up so we've done a lot for Panther we've enhanced the ldap v3 plugin we've enhanced pastor server support with off methods and replication support we have a combined in is and flat file plugin for those of you of legacy UNIX configuration information l dot b 2 is being retired we have a brand new plugin for supporting Active Directory that doesn't require any schema changes and we've been changes to local authentication Kerberos is dead and curb our crypt is dead and kerberos is coming we've enhanced the SMB windows network plugin / network is now based on directory services directory services has man pages it has a command line tool suite and there are some very very minor changes if you're developing a plugin but there's only a handful of people developing a plugin so this doesn't affect a lot of people here's a road map of some interesting sessions we have the security session Kerberos necklace conserve our review server in-depth authentication desktop technologies and network security best practices on Friday I'll be here all week I'll be at that presentation you can contact myself or skip Levin's or Jason Townsend if you want but our email addresses are up there and for more information there's a lot of documentation we have the directory services API documentation posted to decile so I've heard these I heard we renamed all these URLs and I didn't get them updated so go to the developer website and we're under networking wherever they've moved that too we have a darwin open directory we have the open directory sdk the server documentation surprisingly is very good and in particular the open directory technical brief now it's a fantastic tutorial on directories just in general conceptually high level stuff i really recommend anyone doing directory work read that the Mac os10 ldap gamma everyone last year said where do you document the ldap scam I will attend the openldap config file we aren't keeping secrets but we're going to pull that out into one of the new 12 manuals for this release of 10 server but you can always go to the openldap configuration and see what our skin is Mac os10 security AP is or another excellent reference and then there's the openldap project the sasal project the fam project and kerberos are also related technologies that are available to you you