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))([email protected])))

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

Het synchronisatieproces

De Google Apps Directory Sync configuratietool moet je niet overschatten. De tool draait alleen simulaties, en dat is vooral handig om je configuraties te testen. De simulatie past niets aan en produceert alleen logbestanden.

Test en tweak je Google Apps Directory Sync configuratie net zo lang tot je zeker weet dat het goed is. Daarna kun je de echte sync-cmd.exe tool draaien. Aangenomen dat sync-cmd.exe en het Google Apps Directory Sync configuratiebestand prodsync-users.xml dezelfde directory delen, kan een opdrachtregel er zo uitzien:

C:\Program Files\Google Apps Directory Sync\sync-cmd.exe -a -c prodsync-users.xml

Hiermee wordt de Google Apps Directory Sync echt aangezet en wordt er dus echt gesynchroniseerd. Als dat gebeurd is en je de resultaten hebt gecontroleerd, kun je dit instellen als terugkerende taak. Om geen verschillen te krijgen tussen Google Apps en Active Directory moet de synchronisaties van gebruikers en groepen minstens eens per dag worden gedraaid. Anders zullen nieuwe gebruikers niet zichtbaar zijn in Google Apps en worden wachtwoordwijzigingen niet direct doorgevoerd. Waarschijnlijk is het een goed idee om het twee keer per dag te doen.

Het is ook een erg goed idee om Google Apps Directory Sync emailwaarschuwingen aan te zetten. Google Apps Directory Sync is een breekbaar stukje software dat zich plotseling tegen je kan keren. Bij back-to-back synchronisatie hebben we meegemaakt dat er compleet verschillende resultaten verschenen en we zagen onverklaarbare fouten uit het niets verschijnen, die enkele minuten later weer verdwenen wareb zonder dat de configuratie was aangepast. Google Apps Directory Sync is de enige manier om te synchroniseren tussen Active Directory en Google Apps, maar blijkbaar kun je de tool nooit helemaal vertrouwen.

Het is duidelijk dat Google Apps Directory Sync het grootste probleem is van de migratie naar Google Apps.

Verplaatsen van e-mail

Zijn al je groepen en gebruikers eenmaal gesynchroniseerd naar Google, dan is het tijd om alle e-mail te verplaatsen. De Google Apps Migration for Microsoft Exchange tool is een redelijk simpele tool, waarmee je zowel data als e-mail, contacten en kalender kunt overzetten van Microsoft Exchange naar Google Apps. Dat gaat zeker niet snel, maar het werkt. Maar natuurlijk zijn er wel een paar punten die je in de gaten moet houden.

Ten eerste kan deze tool niet draaien vanaf de Exchange server. Neem hier een krachtig systeem voor, want je hebt aanzienlijke hoeveelheden CPU en RAM nodig.

Ten tweede moet je erop letten dat je zonder problemen de synchronisatie van e-mail kunt onderbreken en herstarten, maar met contacten en kalenderdata kun je dat niet doen. Dat leidt namelijk tot dubbele objecten. Het belangrijkste is dus dat je synchronisatie van contacten en kalender helemaal op orde is op het moment dat je de gebruikers overzet. De synchronisatie van e-mails is daarna eenvoudig en kan als dat nodig mocht zijn enkele dagen draaien.

Ten derde kan de Google Apps Migration tool ook Outlook .pst bestanden overzetten naar Google Apps. Hierdoor kun je al die persoonlijke archieven uit de mottenballen halen en toevoegen aan de Gmail mailboxes van je gebruikers.

Ten slotte zul je versteld staan over hoeveel tijd het kost om grote hoeveelheden Exchange mail te verplaatsen. Het kan weken duren voordat die klus is geklaard, afhankelijk van de omvang van de opgeslagen Exchange-berichten. Plan hier dus voldoende tijd voor in.

De omschakeling

Als je alle bovenstaande handelingen hebt uitgevoerd en je e-mail is goed gesynchroniseerd, dan kun je echt overstappen op Google Apps. Dat kun je het beste doen door de TTL (time to live) van het MX-record voor het domein enkele dagen voor de overstap te verlagen naar vijf tot tien minuten. Als je uiteindelijk de MX-records aanpast om mail naar Googles servers te verwijzen, dan worden die met een kleine vertraging herkend door andere DNS servers. Je nieuwe MX-record informatie, geleverd door Google, zal toegankelijk zijn via de Google Apps administrator console.

Let erop dat je bij het gebruik van de Postini filterdiensten werkt met andere MX-records dan die Google aan je levert. Dit wordt uitgelegd in de Postini set-up pagina’s, die je vindt in de Google Apps admin console.

Na aanpassing van de externe MX-records zouden e-mails moeten binnenlopen in de Google Apps mailboxes. Dit kun je controleren door eenvoudige tests uit te voeren vanaf andere e-mail accounts.

Het zou fijn zijn als je je nieuwe Gmail accounts kon testen vóór je helemaal omschakelt, maar Google levert geen e-mail aan een geldig account en domein, tenzij de MX-records correct zijn. Je kunt wel testen met Googles testdomein, zoals example.com.test-google-a.com, maar je kunt geen directe verbinding maken met Googles SMTP-dienst en een boodschap naar [email protected] zal gewoon verdwijnen. Na de MX-wijziging moet je dus maar hopen dat alles goed gaat en dat is geen geruststellende gedachte.

Volgende pagina: Na de omschakeling

Na de omschakeling

Na de omschakeling draai je op Google Apps. Je gebruikers zijn waarschijnlijk in verwarring en jij moet je bezighouden met het laten functioneren van mailtoepassingen met het nieuwe systeem, hoewel je sommige veranderingen ook kunt doorvoeren door het maken van groepsregels. De integratie van Outlook is een van de grote uitdagingen na de migratie. Het beste kun je iedereen de eerste twee weken verplicht gebruik laten maken van de webinterface, zodat zowel jij als je gebruikers de tijd hebben om te wennen aan het nieuwe mailsysteem.

Tijdens het synchronisatieproces van de mail kun je beginnen met de ontmanteling van Exchange. Denk eraan dat je bij het verwijderen van Exchange mailboxes ook direct de mail attributen van alle gebruikers weggooit. Hierdoor zal Google Apps Directory Sync die gebruikers (tijdelijk) verwijderen. Google Apps Directory Sync zou het synchronisatieproces moeten stopzetten als meer dan een bepaald percentage van de gebruikersaccounts wordt aangepast, maar deze functionaliteit lijkt niet te werken.

Bij het verwijderen van de oude mailboxen en de uitschakeling van Exchange uit Active Directory moet je dus de mailattributen van alle gebruikersobjecten vervangen om ze correct te laten functioneren met Google Apps. Dit kun je handmatig doen met ADSI Edit of je kunt er code voor schrijven. Maar welke van deze twee je ook kiest, dit is een noodzakelijk stap die je zeker goed moet voorbereiden.

Tool is een aanfluiting

Er zitten veel voordelen aan Google Apps, maar er zitten ook een heleboel valkuilen in weg naar een succesvolle migratie. Google wil zich nog wel eens op de borst slaan vanwege hun goede en foutloze software, maar de Google Apps Directory Sync tool is echt een aanfluiting. De tool is onbetrouwbaar en gedraagt zich soms vreemd, wat grote gevolgen kan hebben voor je organisatie. Wees dus altijd op je hoede als je de tool gebruikt.

Reken ook niet op redelijke ondersteuning van Google. Het duurt dagen voordat je een account voor ondersteuning hebt en mogelijk weken voordat andere beheerders daar worden toegelaten. E-mails aan je migratiedeskundige blijven onbeantwoord, hulpvragen blijven lang liggen en soms helpen antwoorden je alleen maar verder van huis.

Het is verbazingwekkend dat het overstappen op Google Apps tot zulke verwarring kan leiden. Hopelijk zal Google daar in de nabije toekomst iets aan doen. Vooralsnog loop je bij de migratie tegen onverwachte en onverklaarbare problemen. Daarom zullen velen het werk liever uitbesteden aan ervaren externe deskundigen. Mocht je het toch helemaal zelf willen doen, bereid je dan voor op een frustrerend leerproces.

Een migratie naar Google Apps heeft misschien grote voordelen, maar het migratieproces hoort daar in geen geval bij.