De lastige migratie van Exchange naar Google Apps
Gepubliceerd: Woensdag 1 juni 2011
Auteur: Paul Venezia
Een migratie van Microsoft Exchange naar Google Apps heeft zeker voordelen, maar de weg ernaartoe kan lang en vervelend zijn. Lees daarom deze bruikbare tips en waarschuwingen.
Van alle IT-voorzieningen binnen een bedrijf of organisatie is e-mail de meest zichtbare. De maildienst is belangrijk voor iedere gebruiker en wanneer de mail tijdelijk niet bereikbaar is, dan leidt dat vrijwel direct tot blinde paniek. En bij een migratie moet je daar dan ook rekening mee houden. Als je van Exchange naar Google Apps gaat moet je ook nog rekening houden met onwil van je gebruikers. Maar dat niet alleen. De overstap van het interne Microsoft Exchange systeem naar een cloudoplossing als Google Apps kan een ware beproeving zijn. We geven je hieronder een indruk.
Bij de migratie van Exchange naar Google Apps draait het om twee tools: Google Apps Directory Sync en Google Apps Migration voor Microsoft Exchange. Met het eerstgenoemde hulpmiddel worden accounts, groepen, gedeelde contacten en gebruikersprofielen gesynchroniseerd in een Active Directory domein met Google Apps. De andere tool kopieert e-mails, kalenders en contactinformatie van Microsoft Exchange naar de dienst van Google.
Zodra je een zakelijk account hebt geopend bij Google moet je om te beginnen een Google Apps Directory Sync configuratie opzetten. Dat vereist diepgaande kennis van de structuur van je Active Directory, evenals algemene kennis van LDAP en de bijbehorende query-structuren.
Google Apps Directory Sync
De Google Apps Directory Sync tool is opgedeeld in twee belangrijke onderdelen: de 'configuration manager' en sync-cmd.exe. De configuratiemanager kan zowel Google Apps Directory Sync XML configuratiebestanden lezen en schrijven als simulaties draaien van de synchronisatietaak, om te zien of de configuratie goed verloopt. Sync-cmd.exe is een command-line tool die het echte synchronisatieproces uitvoert.
Er kleven voor- en nadelen aan het werken met de Google Apps Directory Sync configuratiemanager. Bepaalde onderdelen zijn makkelijk te configureren, zoals de standaardinstellingen van het Google account voor de synchronisatie, de LDAP server en de standaard DN. Maar je kunt tegen problemen aanlopen als je specifieke onderdelen moet toevoegen of weglaten, zoals een lijst van gebruikers die niet bij elkaar horen en moeten worden overgeslagen bij de synchronisatie. Om dit regel voor regel te doen met de GUI tool is een taaie klus.
Maar het configuratiebestand is opgesteld in XML, dus kun je het proces versnellen door een stukje code te schrijven dat goede XML uitspuwt, om dat daarna in het configuratiefile te plakken. In de wizard-achtige interface van de tool vind je een aantal series van vereiste parameters voor de configuratie. Hieronder vind je deze in de volgorde waarin ze voorkomen.
LDAP instellingen. Er is geen aparte preset voor het werken met Microsoft Active Directory. Die wordt net zo behandeld als iedere andere LDAP databron en vereist dus handmatige configuratie. Bij een Windows Server 2003 domein kun je het beste de standaardpoort 389 gebruiken en eenvoudige, niet-SSL communicatie. Bij de meeste - maar zeker niet alle - implementaties van Active Directory is de standaard DN ou=users,dc=company,dc=com. Je kunt er het beste voor zorgen dat deze DN zo specifiek mogelijk is, maar nog wel LDAP-objecten kan toevoegen die moeten worden gesynchroniseerd, zoals alle gebruikers en groepen.
Org units. Hier raakten we in moeilijkheden bij de inclusion/exclusion-regels. Hoe we deze onderdelen ook structureerden, Google Apps Directory Sync bleef de OU's uit de exclusion-lijst gebruiken. Google gaf niet thuis toen ik om opheldering vroeg.
Gebruikers. Dit is vanzelfsprekend een belangrijk onderdeel van het synchronisatieproces. Omdat de attributen van e-mailadressen en aliassen in het algemeen overeenkomen met de standaard voor een Microsoft Active Directory-netwerk, hoeven deze onderdelen niet te worden aangepast. De uitgebreide attributen van voornamen en achternamen zijn respectievelijk givenName en sn first. Ook kan hier een quotumattribuut voor een mailbox worden toegevoegd, maar dat is geen vereiste.
Het is belangrijk op te merken dat gebruikers vrij eenvoudig kunnen worden gesynchroniseerd van Active Directory naar Google Apps, maar hun wachtwoorden niet. Er bestaat een indirecte methode om wachtwoorden te synchroniseren. Daarvoor gebruik je sha1hexfltr, een standaard DLL die moet worden geïnstalleerd op iedere domeincontroller in de organisatie. Deze DLL onderschept wachtwoordwijzigingen van gebruikers en plaatst een SHA1-hash van het nieuwe wachtwoord in het minst gebruikte division-attribuut.
Sommigen zullen het gebruiken van de sha1hexfltr methode te riskant vinden, aangezien de SHA1-wachtwoordhash wordt opgeslagen in het gebruikersobject. Het is ook een weinig elegante oplossing, maar vooralsnog de enige praktische manier om de wachtwoorden te synchroniseren.
Groepen. Bij het synchroniseren van groepen gaat het om dezelfde basisprincipes als bij gebruikers. Om bepaalde groepen toe te voegen kun je die het beste selecteren met een LDAP-query met verwijzing naar het mail attribuut, zoals:
(&(&(objectclass=group)(objectcategory=group))(mail=accounting@example.com)))
Je kunt ook wildcards gebruiken, zoals:
(&(&(objectclass=group)(objectcategory=group))(mail=*all*)))
Je zult ook andere Google Apps directory attributen willen overzetten van Active Directory, zoals Group Email, Group Display Name en Group Description. Daarvoor moet je Active Directory's mail, displayName en description attributes aan deze velden toevoegen. Over het algemeen kunt je het beste het member attribuut gebruiken in het veld Member Reference Attribute, hoewel dit afhangt van de configuratie van je Active Directory.
Vanwege de afwijkende manier waarop Google Apps Directory Sync omgaat met groepen, kun je het beste twee aparte synchronisaties doen: één voor groepen en één voor gebruikers.
Als Google Apps Directory Sync een LDAP object niet goed herkent van de gebruikersscan, dan zal het dat object niet goed synchroniseren, ook niet als dat object keurig wordt gespecificeerd in de groepsscan. Ook al heb je dus een uitstekende user synchronisation configuratie, dan is dat misschien nog niet genoeg om alle objecten van de groepen te herkennen. En je kunt de LDAP query niet nog breder maken zonder dat je er een geweldige hoop nonsens uit trekt. Dit is extra vervelend omdat het niet meteen duidelijk is waarom de groepsobjecten niet worden gesynchroniseerd. De logbestanden vermelden gewoon dat de gespecificeerde groep niet beschikt over een gezamenlijk mailadres en daarom is overgeslagen.
Een oplossing voor dit probleem is het creëren van twee aparte Google Apps Directory Sync configuraties: één voor gebruikers en één voor groepen. De groepsconfiguratie bevat LDAP inclusion queries van een bredere reeks objecten, en met de gebruikerssynchronisatie uitgeschakeld. Hierdoor kunnen de inclusion queries van de groepen gewoon functioneren, terwijl niet alle gebruikersaccounts worden gesynchroniseerd. Het is misschien een omslachtige methode, maar het werkt wel.
Het werken met groepen leidde bij ons wel tot merkwaardige problemen. Zonder een ook maar iets in een configuratiefile te hebben veranderd, bleken groepen die eerst geneste groepen waren binnen andere ineens gewone-mailadressen te zijn. Wekenlang heb ik hierover bij Google gezeurd om opheldering, maar een antwoord bleef uit zodat we de synchronisatie van groepen moesten uitstellen. Google is weinig scheutig met informatie over problemen met Google Apps Directory Sync.
Gebruikersprofielen en gedeelde contacten. Deze synchronisatieonderdelen hebben veel weg van de configuratie van gebruikers en groepen, alleen moet er een veelvoud aan attributen worden ingevoerd. Je kunt het beste een LDAP-viewer downloaden, zoals de Active Directory Explorer, en je directory doorzoeken om te zien of je alle attributen goed heb. Dit zal wat tijd kosten, maar het is noodzakelijk als je je gebruikersprofielen en gedeelde contacten wilt synchroniseren.
Volgende pagina: Het synchronisatieproces
De rubriek Tips & Tools biedt praktische informatie die IT-professionals in hun dagelijkse werk kunnen toepassen.
