Security.Authentication.TokenMungingException hiba SP1 után

Mi sem szebb annál, mint amikor hajnalig dolgozik az ember egy informatikai rendszeren, majd reggel jön az igazság pillanata. Megérkeznek a felhasználók és lemérik, hogy az amit csináltunk, jó vagy sem. Ezért szeretem ezt a szakmát. Két helyzetbol is nézhetem az eredményt: mint a szoftvert gyártó cég alkalmazottja és úgy is mint annak a csapatnak a tagja, aki a változtatást elvégezte.

Az, hogy ma írok, azt jelenti, hogy az éjszakám rövid volt. Exchange Server 2013 SP1-et terítettünk egy nagy környezetben. Minden jól ment, néhány apróságot leszámítva és azt, hogy hajnalig dolgoztunk. Reggel, azonban megérkezett az elso probléma:

  • Néhány felhasználó nem éri el az OWA-t és a következo hibaüzenetet kapja:

Csak, hogy a keresok, helyesen indexeljék, kiemelem, tehát a hiba: "X-OWA-Error: Microsoft.Exchange.Security.Authentication.TokenMungingException"

A hibát az okozza, ha olyan felhasználóval próbálunk belépni, aminek a recipientTypeDetails értéke RoomMailbox vagy LinkedMailbox. Itt egy példa a RoomMailbox-ra, lekérdezheto a get-mailbox <alias> |fl *type* paranccsal (is):

 

A terveink szerint a RoomMailbox típusú postaládával nem lehet bejelentkezni OWA-n keresztül. Ezt el kell fogadnunk és általában nem is itt szokott probléma lenni. Inkább a LinkedMailbox esetén merül fel pár kérdés. Ezeket igyekszem logikusan leírni:

  • Mi az a LinkedMailbox? - egy Exchange Organizáció, egy Active Directory erdohöz van rendelve. Több erdohöz nem tudod az Exchange Organizációt rendelni (apró érdekesség, hogy annó, az Exchange 5.0 / 5.5 idejében egy Exchange Organizáció több NT 4.0 tartományhoz is "kapcsolódhatott", kommentben jöhet a tipp, hogy miért). Ebbol az következik, hogy a postaládákat amiket egy Exchange organizációban hozunk létre, azt csak egy Active Directory erdoben levo Active Directory felhasználóhoz rendelhetjük hozzá. De mi van azokkal az ügyfelekkel akiknek több Active Directory erdojük van? Nekik kötelezoen több Exchange Organizáció kell? A válasz az, hogy nem. Erre való a LinkedMailbox. Az Exchange Organizáció AD erdojében létrehozunk egy felhasználót ami tiltott állapotban van. A postaládát ehhez a tiltott felhasználóhoz rendeljük hozzá. Majd a másik AD erdo felhasználóját, hozzá linkeljük ehhez a postaládához. Ezzel azt érjük el, hogy egy olyan erdoben levo felhasználónak adunk postaládát, ahol valójában nincs Exchange Organizáció. Természetesen a két Active Directory erdo között trust kapcsolat kell vagy ha az erdok több tartományból állnak, akkor elég a két tartomány között trust kapcsolat.
  • Honnan tudom, hogy egy postaláda LinkedMailbox? -- onnan, hogy van egy olyan tulajdonsága minden postaládának, hogy isLinkedMailbox. Ennek értéke lehet, true vagy false. Ha true, akkor az linked mailbox. Ha false, akkor nem.
  • Honnan tudom, hogy egy LinkedMailbox-hoz ki van hozzárendelve? - van egy olyan tulajdonsága minden postaládának, hogy linkedMasterAccount. Ennek az értéke, a másik erdoben levo felhasználó SID-je.
  • Mi nem LinkedMailbox? - az helytelen LinkedMailbox, ha az isLinkedMailbox értéke true és a linkedMasterAccount értéke nem egy másik AD forest felhasználójára mutat. Az ilyen linkedMailbox beállítását helytelennek tekintjük.

 

A LinkedMailbox legfontosabb beállításait egyszeruen lekérdezhetjük:

 

Tehát mi nem muködik az SP1 esetén?

  • RecipientTypeDetails = RoomMailbox, akkor nem lehet bejelentkezni OWA-n
  • RecipientTypeDetails = LinkedMailbox ésa LinkedMasterAccount értéke nem egy másik AD forest felhasználójának SID-jére mutat (pl.: SELF, vagy a postaláda account-ja), akkor nem lehet bejelentkezni OWA-n

 

Azonban ha a felhasználó rendesen beállított LinkedMailbox, akkor az OWA bejelentkezés muködik helyesen.

 

Adódik a kérdés, hogy a helytelenül beállított LinkedMailbox-al mit lehet valójában csinálni? Konvertálni kell hagyományos UserMailbox-ra a következo módszer segítségével: https://technet.microsoft.com/en-us/library/bb201694(v=exchg.141).aspx. A parancs amit használhatunk:

Ezzel kiütjük a LinkedMasterAccount értékét és a felhasználó RecipientTypeDetails értéke UserMailbox -ra változik. Ezután a felhasználó használhatja az OWA-t.

Az, hogy miért van a rendszerben helytelenül beállított LinkedMailbox, helyes kérdés lehet. Általában ezek nagyon régi környezetek maradékai. Az adott környezet amiben ez a hiba elojött, legalább Exchange 5.0 óta létezik és az a néhány tucat felhasználó és postaláda már az eredeti rendszer óta muködik. Egy új környezetben ilyen állapot nem várható.

Azt tanácsolom, hogy ha a fenti hibát tapasztaljátok, akkor érdemes a fenti logikai fonálon elindulva a hibakeresést elvégezni, a következo kérdések megválaszolásával:

  • RoomMailbox az adott postaláda? - ha igen, akkor nincs további teendo mert ez az elvárt muködés.
  • LinkedMailbox az adott postaláda? - ha igen, akkor a LinkedMasterAccount egy másik forest felhasználójára mutat? Ha nem, akkor konvertáljuk a felhasználót.