iPhone • 38:59
Centralized contact management is critical to organizations of all sizes. Learn how Address Book Server in Snow Leopard Server provides CardDAV standards-based contact management services. Also learn how Address Book in Snow Leopard and Contacts in iPhone connect with enterprise contact management systems such as Address Book Server, LDAP, and Microsoft Exchange.
Speakers: Jussi-Pekka Mantere, Brendan Langoulant
Unlisted on Apple Developer site
Downloads from Apple
Transcript
This transcript has potential transcription errors. We are working on an improved version.
My name is Jussi-Pekka Mantere. I am Engineering Manager in the Mac OS X Server Team. Brendan Langoulant will join me later. He's Engineering Manager on the Address Book Team. So what are the topics for today? So we'll talk about contacts, if you couldn't tell that from the session description. So we'll go over contacts, how we use them, where we use them.
We'll go over where we use them on the iPhone, what are new features on iPhone 3.0 and Address Book in Snow Leopard, new features there. And final, we'll conclude with the Address Book Server in Mac OS X Server in Snow Leopard. So a little bit of a background for people who don't know what really contacts are. So, personal contacts.
So this is basically people you interact in day and day out. So this could this be your family, this could be your friends, could be your colleagues, basically people you interact with regular basis. Contacts for these people, you'd keep them on your phone, on your desktop so they could be on any device. And if you have multiple devices that you have your contacts on, you sync them. So you have an iPhone, you sync that with your Mac OS X Address Book.
On Windows you would have iTunes sync to the Windows Address Book and you might also use some services on the cloud, such as MobileMe or Google and Yahoo and use those to store your contacts centrally. And you also have Work Contacts and the distinction here is that, in your office, you probably have something like a directory. So this includes like everybody in your company that you may interact with at some point, email or chat or call, but you don't necessarily have them in your-- in your Contacts Data Base in your Address Book or on the Contacts on the iPhone.
And you-- in the workplace you might also have some contacts that are private to you. So the distinction here is that your private work contacts may be some things like business partners and these aren't your personal contacts, you don't interact with these kind of contacts in your off-work-hours life. But they are people that you work with in your work environment and might not have available in the company directory because they're private to you.
And in your work environment, your contacts would be stored on a server. So right now, that's most typically Exchange setup and coming up with Mac OS X Snow Leopard, you might also store the contacts on Address Book Server. So that's personal and work contacts. So where do you use these contacts? Well basically it's anywhere, everywhere, so you search for contacts and you might mail them. You do chatting. You schedule with your contacts. You try to find a location.
You map your contacts if it's a restaurant. You call them on your iPhone and you might share your contacts using vCards. So contacts are all around us all the time and it's kind of, it's like ubiquitous thing that we don't really pay attention to, well except when things don't work, but it's just pervasive in our day-in-day-out lives. So we email people, we use contacts. We chat or call people, we use contacts.
We find locations, we use contacts. So that's using contacts. So what are the Apple solutions for working with contacts? So, let's start from the small to the big. So on the iPhone, we have the iPhone Contacts application. On Mac OS X, we have the Address Book application. And new in Mac OS X Snow Leopard, we have the Address Book Server. So we'll talk about that in detail later.
So let's start with the small. So, on the iPhone. So what are the contacts solutions on the iPhone? So right now, your iPhone Contacts is probably a merge of personal and work contacts, so this is the pool of people you connect to or interact with by using your iPhone, call people or text them or whatnot. And your contacts are synced to the desktop. So again, using iTunes you would sync your contacts between your Address Book on Mac OS and the iPhone.
And iPhone 2.0 introduced ActiveSync. So it might also have your work contacts from your office environment on the iPhone using ActiveSync. And new in iPhone 3.0 is the ability to connect to your corporate directory using LDAP. So that's something we introduced in 3.0 and sometimes that can be a little bit tricky to configure. So if you're not familiar with iPhone Configuration Utility, I highly recommend that you take a look at that on Apple's download site.
So if you ever tried to type in, a let's say, search path for LDAP on the iPhone, "DC, CN=blah, blah, blah, DC=, C=something." That's a fairly painful exercise. So if you provide your users with just text instructions on how to configure your iPhone they may not necessarily use this service so much. So we have a way in iPhone Configuration Utility, now to configure LDAP search paths that are accessible through the iPhone Contacts application.
So if you know that your company supports an LDAP directory and you know that your organization has iPhone users deployed, you might as well do your users a favor and use iPhone Configuration Utility to create a configuration profile for LDAP search that tells them exactly how the iPhone should be configured, and users can just download the configuration file, or receive it by email and then their LDAP search on the phone would be configured automatically for them without them having to type anything by hand. So let me bring up Brendan Langoulant.
[ Applause ]
[ Pause ]
Good morning, so just as Jussi was saying, one of the great things about this demo is actually that I don't have to type so much. So with-- as you can see this is a standard iPhone 2.0 configuration. I've got one Exchange account configured. And so what I'm going to show you is actually an IPCU file-- profile that's been emailed to me that I'm going to configure my LDAP search with.
So you can see here, I've got an email, here's an attachment, I simply click on the attachment, and it asks me, "Would you like to configure?" I say "install."
[ Pause ]
Great. So now if I go back to my contacts, you notice we have a new entry. So the new entry-- my LDAP search is now configured, probably the easiest LDAP configuration I've ever done. And you can see that it searches and I can find results just like you would expect.
OK, so also, something which is available in 2.0 and just to go through it. You can see we have the Exchange global address list. It searches much like an LDAP would search. Again, it's a directory of people and I have my private contacts. So I have my VIPs and the rest of my contacts. Great. So that's iPhone LDAP automatic configuration from IPCU.
Back to Jussi.
[ Applause ]
Alright, so thank you Brendan. So that's iPhone and new features in iPhone. So LDAP requires, obviously an LDAP server, requires 3.0 version of the iPhone operating system. ActiveSync on the phone requires Exchange Server 2003 Service Pack 2 and works also with Exchange Server version 2007. If you use iPhone Configuration Utility for any of the policies, you'll need Exchange 2007 Service Pack 1. So that's the iPhone section. So let's move on to the desktop solution.
So Mac OS X Address Book. So what do we have there? So in Address Book, on the desktop right now, you have your personal contacts again. So you could be syncing these using either MobileMe or Google or Yahoo, and you would sync these using iTunes, again, to your mobile device.
And the work contacts in Address Book on the desktop can be in a directory system such LDAP, or you could access them from interactive system over LDAP. And if your clients are bound using a directory service binding for a corporate network, if you use network logins for example, then Address Book would also allow you to search using the Directory Services interface. So this is no manual configuration required.
So you might be bound to an Open Directory environment. You might be bound to an Active Directory environment. And Address Book application will automatically do searches against these directory systems without any user configuration outside of binding their clients to the directory system. And what's new in Address Book in Mac OS 10.6 in Snow Leopard, is support for Exchange.
So again, we can use contacts stored on an Exchange server and use the contacts there. So back to Brendan, and he'll show you some of these new features in Address Book.
OK. So I've been responsible for Exchange on the desktop across all three applications. And we've been working really hard to make this the easiest to use Exchange setup that you've ever seen.
So really, what I'm going to do, is we support all of the-- as you can see I have got the standard configuration.
It is a simple Address Book as you can get. I've got one group and I've got all of my local contacts. So what I'm going to do now is actually add an Exchange account.
So with Exchange, we've spent a lot of time basically trying to make auto-configure work as seamlessly as possible. So you simply provide an email address and your password which hopefully I type correctly. Now it's going out, it's looking for the auto-discovery server, in a minute it will find it.
And you can see now, it actually figured out all of settings that I made to actually configure this Exchange account. Also you'll see, that I can set up both the mail client and iCal at the same time. So you can actually do that. You can set your Exchange accounts up from any of the applications and it will automatically set up the other two applications.
[ Pause ]
I'll give it a different name. So now what you can see is, I have my Exchange account has appeared. I have a set of contacts on that Exchange account. And just like you saw, exactly on the same as the iPhone, I've got those same folders that the iPhone is syncing to. So it has collected those contacts and has showed me all of my private contacts. We also have a directory search mode so that I can search the global address list.
And just like I have on the phone, I can search-- it will give me results from that directory. So generally, our approach to integrating Exchange on the desktop has been to follow what Microsoft-- how Microsoft tries to use Exchange, in particular Outlook. But then what we've tried to do is actually leverage, I guess, the way that Mac uses-- used to configuring an application or using an application. So, if you see here, I've got this group called VIP. So it's actually folder called "VIP," and that's good.
[ Pause ]
So I can create a new address. And if type VIP, what will happen is, that will actually use that folder, much like a group mailing list and actually it will expand in line. So that's something which Exchange doesn't do, or Outlook doesn't do. But we've actually kind of extended that with the standard Mac experience. So what happens if you're not using Exchange? And for that I'll bring back Jussi.
[ Applause ]
Yes, great demos. So, before we move on, Exchange Requirements again. So, we need Mac OS X Snow Leopard for the desktop to be able to support Exchange. So go get those 29 dollar copi)es and spread them wide. For the Service side, we need Update Rollup 4 for Exchange Server 2007 SP1, URFES 2007 SP1. And that's basically all you need to get your work contacts that are now on Exchange accessible for the Mac.
So moving on, new in Mac OS X Snow Leopard. So this is Mac OS X Server Address Book Server. So we introduced this last year as part of the developer conference. And now this is included in the builds that are distributed during the conference. So the current DVDs that you have, have the full implementation of the Mac OS X Server Address Book Server. So about Server Contacts. So typically, why would you have a server? So this is ideal where you have multiple devices that are using some service like mail or contacts and using a server account always remain up to date.
So you could have a single account on a server and all your data no matter where you access it from, from what ever device, it's always current. And additionally, you may have some server enabled features, such as, search, or sharing, or what not, because it's guaranteed to be available and it's not just restricted to applications that you'd use like mail for messaging. You might have things like global address lists on Exchange that are only provided through a server that you wouldn't be able to implement just using your local context for example. So, servers are pretty cool things for doing more advanced usage of these services.
So for Mac OS X. So we have a suite of communication applications. So we have your mail application, you have calendaring, chatting, and contacts. So for all of these we also have great servers on Mac OS X Server. So we have a mail server that your mail clients can connect to and retrieve and send mail. We have a calendar server, so you can now have scheduling in a server environment or leverage in a server, we have a chat server.
And all of these basically implement their typical things. But for contacts, we really don't have anything right now-- for protocols, excuse me. So for protocols, we have always followed the standards path. So for our messaging protocols, we're not doing anything proprietary. We're using the IETF standards or the RFCs for either messaging or for calendaring or for instant messaging. So everything that we built in to the server is open standards based, it's extensible. So we don't embrace and extinguish, we embrace and extend.
So you have the freedom of choice and you're not locked-in into any particular platform. So standards are important to us. So if you choose OS X server, you're choosing open standards. But for contacts, there really hasn't been an equivalent of a CalDav or IMAP or SMTP. But just in the past couple of years, there has been development on the IETF work groups to develop a standard for contacts based on servers and that standard is called CardDAV. And we've build the Mac OS X Address Book Server on top of CardDAV.
And that's what we introduced last year, and that's what we're now had made available to you on the DVDs distributed here. So let's look back. So we built the Calendar server in Mac OS X Server Leopard in 10.5. And what is Calendar server really? In the essence of it, it's a protocol that allows you access to web stored resources, and that's WebDAV. And the data format is pretty much calendar events. So iCalendar files that are reachable by the clients over the network using WebDAV. So that gives us CalDAV.
There are other pieces to CalDAV for, like discovering free visit [ phonetic] and whatnot. But in the essence of it, it's dealing with iCalendar files over the network. So that's what's left. And that's a standard that's been out there for a while. And for contacts, we already have a standard for contact Exchange, so that's vCard. So vCard was developed years and years ago by a consortium, Apple is a part of that. And if we look at Exchanging vCards over the network, we could utilize exactly the same infrastructure that we have for CalDAV that is using WebDAV as the network transport mechanism.
And instead of moving iCal files around and doing scheduling, we can move vCards around and do contact discovery. So that gives us CardDAV. So vCard's really a ubiquitous standard for changing or exchanging contact information. So this is something that pretty much every device known to man understands and writes if they have anything to with contacts.
Your phone will understand vCards. Your laptop, be it Windows or was it running Windows or Mac OS X will understand vCards. So vCards, you can pass them around and expect that the information will be transferred from application to application without any issues. There's one unique thing in vCards in the CardDAV server in the CardDAV space.
So in CardDAV, we need to be able to uniquely identify vCards. So there's a requirement for any vCard that's stored on the server. So it has a unique ID attached to that. Most of the clients will take care of that when they store the contacts on the server.
So, a little bit more about the CardDAV. So CardDAV again, is based on existing standards. We use XML, we use HTTP, we use WebDAV, and ACLs on top of that. And as the payload, we have vCard. So it tells you how to use Address Book collections over the network.
So it also defines where these resources are stored. So it tells the client where their Address Book collections are and defines a hierarchy of objects. So in the end there will be vCards in some path on a server. So CardDAV defines that nomenclature as well. And finally, CardDAV has extensions, just like CalDAV has extensions for calendaring, for freebies [phonetic], and whatnot. CardDAV has extensions for contact-specific domain. So for example, if you want to do a search, there's a CardDAV feature for doing search against contacts. And these are called "reports.
We use reports to do searches against the server. So these are extensions on top of the DAV protocol and that are unique to CardDAV. So, here are all the nomenclatures about vCard, WebDAV, and CardDAV. So all the good RFCs are there, SSL, there's DAV, there's HTTP, and extensions that we use in CardDAV. So the server implements a method for creating new Address Book collections. So creating an Address Book on the server and that is using the-- make a collection extension to DAV protocol.
And all of these are still-- the vCard protocol itself, excuse me, CardDAV specification is still in ratification going through final runs of comments and should be standardized as an RFC momentarily in the next weeks or months, but soon, we hope. So without further ado, let me invite Brendan back.
So about this time, you should be starting to notice a theme in these demos. So now, I'm going to add a CardDAV account. Oops sorry. I suppose-- I was hiding the account configuration for CardDAV.
[ Laughs ]
I'll give it a different name.
And you'll see now, again, I have my private contacts on the CardDAV server, they've been downloaded. CardDAV has groups. So we have our supplier, Intel. So again, and also I can do directories. And so if I go in here, you can actually see-- I can search the CardDAV server And again, I'm doing a directory search. This time it's going through CardDAV.
The previous times were Exchange. So, what you'll notice now is actually, we've- Address Book is really starting to come of age as a network contact base manager. And so, we started to get this hierarchy of different sources. And one of things we thought was really important is to allow you to use these in different environments. So we want people to be able to use it in a pure corporate environment where you would likely only have one Exchange account.
We also want you to be able to use it at home, so that you can actually have it so that you've got your private contacts or your personal contacts separated from your Exchange contacts, but still being able to use both in that home environment. So as you can see, so that in the UI they are very separated. But also when you're looking for a contact, you often just want to find the contact, no matter where it is. So, we've added these higher level constructs. So, all contacts will actually look across all of the different sources through all of my private contacts.
So you'll see the brown folder and all of brown folders that go beneath that, it will actually get an aggregate of all of those different sources. Um, you can also do things like setup smart groups. And smart groups would actually again, search across all of those different sources.
So if I go back to mail and I show the People Picker, you can see-- it also reflects all of these different sources and in much the same way as the hierarchy from the Address Book. Now you can actually address people directly from the People Picker. So hopefully you can see, we've tried to keep to it as simple as possible and as uniform as possible only really changing it where absolutely necessary. Thank you.
[ Applause ]
Alright, thank you again, Brendan. So, what are the applications that we support for Address Book Server accounts? So as Brendan showed you, the contacts are available for all the Apple applications. So if you are using mail, if you are using calendaring, if you are using iChats, the contacts are stored either on Exchange server or on the Address Book Server, they will be available through all the applications you'd expect.
And what about the Address Book Server itself? So, this is a feature in Mac OS X Server. And in Mac OS X Server, you have the usual suspects for administering the service. So you will use server preferences, you will use serveradmin, or you can use serveradmin from the command line, or if you're really geeking out then you could actually use the web interface to the serveradmin back-end. So let me move on to a demo. So let me show you how that is all set up. OK, so first we have server preferences. So for Address Book Server, we have a module in server preferences and that's basically an on-off switch.
So out of the gate, when you were setting up Mac OS X Server for the first time-- Mac OS X Server Snow Leopard for the first time, you would have had an option to enable all the usual services including Address Book. So this would come on for you during setup. So nothing much there, on and off, and [inaudible] for contacts. So if people have large attachments in their vCards, attachments being binary objects in the vCards, for example large pictures, you may want to limit the size of individual Address Books.
But for the admin interface that's really all the customization we need. Everything else is set up out of the box, it works out of the gate. No tweaking necessary. But if you do want to configure further aspects of the Address Book service, you can use the server admin application. So in server admin, of course we have a-- let me bring back the overview.
So this tells you that the server is running. What you'd expect from server-- server admin, we can view some of the logs for access log and error logs. And we have additional settings. So these settings are not available through server preferences because we see that these advanced configuration options that are not typically changed.
So the default out of the box configuration is fairly good standard to use and it will provide your users with the expected services that we think are most useful for that. So we define the location where we store the contacts. So if you are using a setup where your server may not necessarily always retain its data on the boot volume, you may want to use a data volume to store the Address Book Server documents, so you can change that here. And you can also change the directory gateway settings.
So this is the way for the Address Book server clients over CardDAV to query contacts in a directory system. So that's something that uses the CardDav reports feature that I mentioned earlier. And for authentication, this the way you'd actually bind a SSL certificate for the service. Or you could say, use a redirect, which means that any client that would connect using the standard non-secured port for the Address Book Server, which now will be redirected to the SSL secured port for access. [Applause] And-- thank you Eric [phonetic]. And this will also be available in other services.
So for example, iCal server has this same option. So let me revert these settings and just go back to server admin. So, a little bit more about the directory gateway. So this is a way for you to provide the Address Book Server clients on the desktop a way to search your directory. So not using Directory Services on the desktop, not using LDAP on the desktop, but using CardDAV as the conduit.
So what are the benefits of that? So, then you don't have to have-- if you're using-- if you have people who are outside the Firewall, you wouldn't have to have holes in the Firewall for accessing different protocols because CardDAV would be using HTTP, you might proxy that. You could route that easily. So this is probably more acceptable protocol to some network administrators versus Directory Services or LDAP.
So let me show you what this looks like on the client side. So here, I have an Address Book application configured for Address Book Server account. So, I have my adapted DC server here, I have an account for CardDAV here, and I also have configured an LDAP gateway. So here, I had to type-in the LDAP information by hand. So this is one of the account types that Address Book now has. So as you saw in earlier demos, Brendan showed you how to configure Exchange on the Address Book and we have CardDAV, obviously.
Address Book now supports multiple accounts and there's really, really no limit to what information you are going to access to from your Address Book application. So for LDAP, the directory search notes appear in the old directory's note. So this is kind of confusing, no? Because my server is bound to itself, so it is using Open Directory on the local system and I have configured LDAP on the client for Address Book on the client here. And I'm also connected to the CardDAV account and its directory search gateway.
So I get three distinct results. One for each source: one for the LDAP search note, one for the Directory Services support, and one for the Address Book service search. So I can get rid of the LDAP service by deleting it from the Address Book accounts. So I can do that easily here. So now, I don't have the LDAP search note anymore, but I'm still left with the directory gateway that's served by the Address Book Server feature in Address Book.
And if my users are in this kind of environment-- if your users are in this kind of environment where you have configured their systems to always be bound to directory system, and that happens to be the same directory system that is also used by the Address Book Server, then this is kind of redundant, like we don't want to have your users to receive duplicate entries for any searches that they do. So this is not necessarily ideal. So let me show you how to disable that feature for this configuration.
So I quit Address Book and go back into the server admin interface. So I can deselect both of these options. So this means that I'm disabling the directory gateway for this server configuration. So, knowing that all my users are using directory bound systems and they will automatically get the directory search in Address Book or mail or whatever applications. I don't need to provide the directory gateway through CardDAV in addition to all the other search methods the clients already have.
So if I now go back to my user and bring up Address Book, you'll notice that the directory service note is just a singular note again. So Address Book was smart enough to collapse the search notes into the single search note that's available to it. And if this was just the CardDAV account or the Address Book Server account, it would show only the Address Book Server account here assuming that the system wasn't bound to a directory system. So, that's the way you could tailor the settings through server admin, to suit your particular environment. So, let me go back to server admin again.
Oops.
[ Pause ]
And while we wait, OK. So we return. So that is the way to disable the directory gateway. And a little bit more detail about the directory gateway. So what is the difference between user accounts and shared contacts? User accounts are exactly that, these are users who can log-on to the system that have been created to using work group manager or are in the actual directory environment as users. Shared contacts are contacts that have been created using for example, directory app.
So depending on your usage environment, if you have lots of users who have stored contacts using other applications, then you may want to enable or disable one of these options depending on your settings. So let's bring that back up and that's server admin. So OK. So we have a great UI to administer the service and have ways of easily enabling secure transport layer, enabling certificate use, and what not. But under the hood, there are many more options that are not available through the UI.
So let me hide server admin. And bring up the command line. So this is your uber-geek way of administering the service. So for example, if I use the server admin command line tool, if I can type it correctly, A-D-M-I-N, Address Book settings, oops, server admin Address Book-- settings Address Book.
There. So here are all the settings that are configurable inside the Address Book Server. So for example, I can look at where my logs are stored, grep CardDAV. So I can see for example, that my access log is stored in var log CardDAV d which is most likely the case. So here, we have var log CardDAV d and we have the access logs. For some reason, I may not want to have these stored in the standard location.
So I can actually change the setting and apply some custom path to the access log. So let's say, I want to keep it in my temp directory for whatever reason. So let's call it CardDAV-accesslog and call it TMP/CardDAVaccesslog. So I have just now changed the setting for the logging. And this hasn't taken effect yet because I haven't restarted the service. So I can see like is there a file called TMP CardDAV, no such file. And I can also use the server admin interface to recycle the service. So I can start stop Address Book.
So now, I have just killed the service. So any clients would have lost their connection. And I can start it again. And now, if I look at the logs, the log has just moved in to the temp directory. So there are ways of tailoring some of the settings in the Address Book Server itself by using the server admin command line interface.
So this is just one of those settings. And a full list of the settings that we have implemented is available just running the server admin command. And this tells you everything that we have for authentication and error logs and what not. So this might be useful for tailoring some of the server settings to be more site specific.
And yeah, so this is a supported way of configuring the Address Book Server from the command line. And there's also a uber-, uber-geek way of configuring the services. So this is using the webserver that's embedded into the server admin interface in Mac OS X Server. So I could read these settings that I just showed using the web interface.
And here, I have let's say, .log, here's an error log, oops, error log. So I have the access log and other settings now available through the web interface as well. So this is extremely high end way of customizing some of the settings for the Address Book Server. So, now, we have gone through the contacts solutions on Mac OS X on different platforms. So we have contacts on the iPhone, we have contacts on your desktop using Address Book, we have contacts available on a server using Address Book Server new to Mac OS X Snow Leopard.
And that's the whole gamut of how you could use Apple services to basically involve your life with either contacts on a phone, calling people, or emailing people, or storing your contacts on Mac OS X Server. So, that concludes the presentation part. So for more information, you can go to Apple's evangelist, Mark Malone who's the Evangelist for Internet and Server Technologies. For iPhone specific content, you can go to the iPhone developer site. And of course, there's Mac OS X Server site on apple.com.