Jaa


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.

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