14 Replies Latest reply: Mar 20, 2013 5:34 PM by Guy Hollister
Tangier Clarke1 Level 2 (275 points)

With Apple's sparse documentation it's not quite clear how to get going with AddressBook (Contacts) server and understand how it works.  I am coming from using MarketCircle Daylite to see if I can use ML Server and Client as an alternative in an office environment.


  • Mountain Lion Server (ML Server) only has an on/off toggle for the contacts.  I'm not sure how that relates to a master shared list of all contacts. 
  • Is the only way to make a master shared list of all contacts is to make a fake "contacts" user on ML Server.  I had to do this for calendar so that we're all working from one calendar that's not our own names OR is it the workflow such that each user account has their own contacts connected to their client computer Contacts.app and through searching we're able to search through all user contacts as if it was a master list?
  • How do you add contacts to the master shared contacts?  I cant' seem to get that to work from my Mountain Lion Client machine.
  • Is there a way to have secure contacts so that certain people cannot see them?
  • Can you have secure groups?
  • Does ML Server Contacts work with OS X Lion Address Book (client)?
  • Is there a way to prevent people from editing and /or deleting contacts and groups.?
  • kristin119 Level 1 (15 points)

    I had the same questions for my small server group. After poking around and finally asking Apple Enterprise Support, here is what I learned:


    • The on/off switch for Address Book in Server does just what it says, turns the service on and off.



    • Mountain Lion Address Book Server is basically your personal iCloud Contacts server. For each user configured in the Server you can populate an Address Book and share it. There isn't really a server/client relationship here, so your "fake" user will come in handy again. Like iCloud, if the user account accesses a particular Contacts list, they have full access to view and edit anything in that Contacts. There are no secure groups, no secure contacts, no preferences... These would fall under the CardDAV Delegates protocol, which isn't implemented by Apple's Address Book (and I couldn't find anything hidden to turn it on. Anyone else? sudo serveradmin settings addressbook).


    • There appears to be some attempt to solve this through Profile Manager, but, like everything in Profile Manager, it doesn't work.


    • Since the Mountain Lion Address Book Server is providing CardDAV service, it is accessible by any CardDAV client, including past OS X versions of Contacts/Address Book.


    • Directory services Address Book information is not editable by anyone except the sysadmin. This information is populated automatically with any data added to the User's account in Server. In practice, there are other discussions here and on the net where this information has been added to directly through the Directory manager for contacts other than Server Users. This doesn't help with granting limited permissions, however, since only the Server manager can edit this information.



    So, how do you populate a server address book?


    After turning on Address Book Server in the Server manager and configuring the hostname using the command line, add a CardDAV account to your client. Contacts ->Preferences -> Accounts -> +

    • Account type: CardDAV
    • User name: (any Server user)
    • Password: (that user's password)
    • Server address: hostname of your server


    If you populate this address book, then configure the same exact account in another client, it will populate with the same addresses. Like iCloud, if you want a group to share Contacts, you'll need a shared UID, another "User" for the sole purpose of sharing data.

  • Punctual Diva Level 1 (0 points)

    Thanks, Kristin119, for the helpful response!

  • Guy Hollister Level 1 (25 points)

    This is super frustrating.


    ML Server v2.21 on OSX 10.8.2

    Contacts switched to ON

    Command line set up with

    >sudo serveradmin settings addressbook:ServerHostName = hostname.local<


    Client set up:-


    Client: username

    Password: users password

    Server: hostname.local


    No contacts visible.


    Any help from anyone that has actually got this going would be great.




  • UptimeJeff Level 4 (3,455 points)



    Is the client at least making a connection? You should see activity in the log.


    What contacts do you expect to see? It will start with none. You need to feed it contacts via AddressBook.

  • Guy Hollister Level 1 (25 points)

    Yup it is.


    I filled the Server with a stack of contacts. Synced from Google Apps - they filled in fine via a Google Sync. Copied them all to the local Address book [On my mac] location [[which is not my mac, but is the server of course]].


    I did that so in the event that I did locate the contacts it would double the chances of finding them ! lol. As there is next to zero info on how to set this up for real from Apple Support. Although I would love to be corrected on that.




    [New Zealand is hot and humid today]

  • Guy Hollister Level 1 (25 points)

    Jeff if you want can do a screen share via view.me

  • UptimeJeff Level 4 (3,455 points)

    too late on this side of the world... tomorrow (or tonight for you) maybe


    my contact info is on my profile.

  • Guy Hollister Level 1 (25 points)

    All good cheers

  • Guy Hollister Level 1 (25 points)

    Just realised this servers OD domain is server.local while the Host Name is outlineserver.local


    Is that bad ? I really need to know more about Open Directory.



  • kristin119 Level 1 (15 points)

    Yes, Guy, that is a problem.


    After first setting up my server, support would repeatededly go back to DNS for every question I had. As I have learned, they were right, and every problem I had can trace back to two things:


    1. Is the DNS set up correctly

    2. Is Open Directory set up correctly


    FYI, the server setup wizard for DNS is wrong by default. Even support failed to see the error; it looked wrong to me, somehow, but took me six months to figure out *what* was wrong. (by default the domain is "myserver.private" instead of domain "private" with hostname "myserver.private".)


    You should take another look at your hostnames. In the beginning you say the server is "hostname.local" while you now have "server.local" and "outlineserver.local." While that is fine for discussion, in reality you should name them somthing unique, such as characters from your favorite novel, planets, sports teams, whatever. Just don't make the names generic or you won't keep them straight.


    While we're at it, you don't want a .local suffix for anything you are setting up - that's a tip from Apple Support and appears on one of their support pages as well. That suffix is used to identify devices on your network for Bonjour. Anything you set up on purpose should either have a real, registered domain, "mydomain.com" or such, or be unique; .private is the default, but smarter minds recommend something made up, like .happy.


    It sounds like your question should be referred to a wider server audience, not this little thread on AddressBook.



  • Guy Hollister Level 1 (25 points)

    Many thanks Kristin... I knew it was as soon as I spotted it.


    The first reference to what I had called it was simply to not tell the world the name of it. Hardly a problem though really doing so !


    I fully agree with you on unique names for things like that although clients being designers want things named boringly.


    Ok sounds like i need to be talking direct to Apple Server support.


    Many thanks for your help.


  • Guy Hollister Level 1 (25 points)

    Just spent an hour on the line to Apple Enterprise.


    He suggested I fully reinstall the Server. He also advised that your idea for sharing a User CardDAV accross clients will result in a utterly corrupted Address Book database and or client Address Books - resulting in meltdown - so to speak.


    1 Day later...


    Having now fully reinstalled OSX ML ... and resetup the Server from scratch... after speaking to Apple they advise... its a bad idea to use 1 User to share contacts across a network... and will lead to corruption of the address book and or the acocunt using it. So we won't be doing that.


    Google Apps support advises they do not have a solution that is any good for sharing contacts in any centralised form across google Apps user accounts. Although they did point me to a few contacts sharing marketplace locations for doing that - having now tested and tried both solutions with no success whatsoever.


    Anyone that has managed to locate a work solution to sharing contacts form one Address Book - through users accounts - I would love to know about it.




  • Tangier Clarke1 Level 2 (275 points)

    Guy, thanks for the update from Apple.  My question is though - what is the correct setup then.  Is the only way to use it correctly is to just have users accounts have their own set of contacts and Contacts Server essentially hunt down the contact needed by looking in every user account?  This is so problematic.  This also begates the point of having shared contact lists that we all contribute to / pull from.


    Here at the office I did set up that one user account that we're all connected to.  Now I have to find another way. Yikes, now I want to go back to DayLite.


    Would love to hear what the correct way is to use contacts server.

  • Guy Hollister Level 1 (25 points)

    No problem. It's a misnoma.


    The Contacts service on an OSX Server is designed to do one thing. Contain and deliver the "Users" & "User Groups" of Domain Contacts to those users Contacts apps running in the network.


    Contacts like names and addresses of companies and people outside the domain are understood to be personal to the user and not shared. Hello - this is the real world !


    Google Apps - who I convert every company I support over to - do provide "shared contacts" feature - but its average to rubbish. I have raised the issue with them to build it !!


    Short of a smarter solution - I am now looking at:-


    A Local User contacts file per user [for personal contacts]

    - not shared but Sync'ed with Google Apps so available offsite


    A Local Company Contacts file per user [for company contacts]

    - not shared but Sync'ed with Google Apps so available offsite


    The Users could edit their company contacts but that would be unwise, smarter for one person to make the edits or additions to any info and then once a month that file gets deleted from the local Macs and an up to date version imported.


    The Groups section available down the left hand side of the Contacts window [only by a menu selection] would be ONLY split up using smart folders. This would save alot of hassle - smart folders set to search on Company  domain name [is how i do it] - would bring in all the branches of that company etc... making it dead easy to find people and contact details.


    People randomly creating a contact and saving it... but not knowing where to... would be a thing of the past. Get it right or lose the contact !