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:
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:
- Set-User -Identity zoltanh@fabrikam.hu -LinkedMasterAccount $null
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.
Comments
- Anonymous
January 01, 2003
Ha jól tévedek, Windows NT 4 több domain esetében is csak trust - ok halmazából állt, nem volt forest. - Anonymous
January 01, 2003
Saját directory (nem AD)? - Anonymous
January 01, 2003
Cérna: valóban nem volt NT domain esetén erdő. De miért tudott több tartományhoz "csatlakozni", tartozni egy Exchange Org? Még várok egy kicsit, hátha valakinek beugrik. - Anonymous
January 01, 2003
Hi ET,
You have to stay the placeholder account as a disabled account. If the placeholder account is disabled it should be OK. Can you verify it?
thanks,
-Zoltan - Anonymous
January 01, 2003
ET,
I have already verified the code and there is no way to workaround this. We are explicitly checking the placeholder account status. If it is not in disabled state we are throwing this error message. Unfortunately this is not documented it in my blog post because I have seen this after my blog post was born.
I don't know the background story regarding this code change. But the placeholder account should be disabled.
If the current design is not acceptable, I would recommend to open a support case.
thanks,
-Zoltan - Anonymous
January 01, 2003
Arni: igen, a Görögök adták a görög joghurtot a világnak ezt megtudtuk pár éve a reklámokból...minden másra pedig ott az Exchange ;) - Anonymous
January 01, 2003
Korrekt. A saját directory service a magyarázat. :) Jó látni, hogy még emlékeztek rá. :) - Anonymous
March 20, 2014
Az Exchange 4.x-5.x verzióknak saját Directory Service-ük volt. Ebből nőtt ki később az Active Directory. :) - Anonymous
March 25, 2014
Valojaban ugye a helyes megfogalmazas, hogy az Exchange-nek mar akkor is volt cimtara! :) Sot, raadasul az egy LDAP compliant cimtar volt mar 199x-ben, mig ugye az Active Directory csak evekkel kesobb kovetkezett platform oldalon. Exchange Forever! XD - Anonymous
June 16, 2014
Hello Zoltan,
I hope I understood correctly (I don't know Hungarian, just used an online translator), so it is not possible to log into OWA in Exchange 2013 SP1 if we have linked accounts? I would like to know what is your opinion, if we indeed have linked mailboxes in another forest (with Exchange 2010) and we would like to keep it that way... is there any chance we can keep the linked accounts and also be able to log into OWA with them in the Exchange 2013 SP1 environment?
Best regards,
Et - Anonymous
June 17, 2014
Thank you Zoltan for your answer. Disabling the placeholder account solves the issue indeed, but the thing is that before SP1 it actually worked with both accounts enabled. So I would like to keep both accounts enabled just like before. Not sure if this is possible anymore in SP1, maybe there were some changes, I don't know... Maybe you have some info about this?
Kind regards,
Et - Anonymous
June 17, 2014
Thank you for your reply Zoltan. I'll take this as by design then.
Have a nice day,
ET