Kirjoittanut Kristijan Sekereš

EWS päättyy Exchange Onlinessa 1. huhtikuuta 2027: integraatioiden siirto Microsoft Graphiin

Avattu kannettava tietokone pimeässä huoneessa, näytöllä sähköpostin saapuneet-kansio

Microsoft on alkanut sulkea Exchange Web Services -rajapintaa (EWS) Exchange Onlinessa. Ensimmäiset täytäntöönpanovaiheet tehdään tässä kuussa, sen jälkeen vuokraajat, jotka eivät koskaan koskeneet EWS-asetuksiinsa, suljetaan yksi kerrallaan, ja 1. huhtikuuta 2027 alkaen EWS on poissa kaikilta Microsoft 365 -vuokraajilta. Microsoft on sanonut suoraan, että huhtikuun 2027 jälkeen poikkeuksia ei ole.

Jos jokin yrityksesi rakentama ratkaisu käyttää Microsoft 365 -postilaatikoita EWS:n kautta, se lakkaa toimimasta viimeistään tuona päivänä ja mahdollisesti paljon aiemmin. Tavalliset epäillyt: CRM, joka arkistoi asiakkaiden sähköpostit asiakastilien alle, arkistointi- tai säilytysskripti, neuvotteluhuoneiden varausnäyttö, tikettijärjestelmä, joka lukee jaettua tukipostilaatikkoa, ja raportointiajo, joka laskee sähköposteja tiimeittäin. Korjaus on uudelleenkirjoitus Microsoft Graphia vasten, eikä osalle siitä, mihin EWS pystyi, ole Graphissa vastinetta lainkaan.

Mitä tapahtuu, päivä päivältä

Microsoft hallitsee EWS:ää vuokraajakohtaisesti EWSEnabled-asetuksella, jolla on kolme arvoa: Null (oletus), True ja False. Sen rinnalla on nyt toinen asetus, EWSAllowedAppIDs: luettelo sovellustunnuksista, jotka saavat yhä käyttää EWS:ää. Microsoft Learnin nykyinen sivu antaa pääpiirteet: ”Lokakuu 2026: EWS:n poistaminen käytöstä alkaa maailmanlaajuisesti kaikilta organisaatioilta” ja ”Huhtikuu 2027: EWS on kokonaan poistettu käytöstä.”

Yksityiskohdat ovat Exchange-tiimin 1. lokakuuta julkaisemassa kirjoituksessa EWS Deprecation Is Here. Maailmanlaajuisessa kaupallisessa pilvessä:

  • 2. lokakuuta 2026 päivän päättyessä Tyynenmeren aikaa: Microsoft kirjaa jokaisen vuokraajan, jolla EWSEnabled on True mutta sallittujen luetteloa ei ole.
  • 8. ja 9. lokakuuta 2026: näille vuokraajille Microsoft luo sallittujen luettelon ja täyttää sen sovellustunnuksilla, jotka käyttivät EWS:ää edeltävien 60 päivän aikana.
  • 10. lokakuuta 2026 alkaen: kun EWSEnabled on True, sallittujen luettelo on pakollinen. Sovellus, joka ei ole luettelossa, torjutaan.
  • Toinen vaihe sen jälkeen: vuokraajille, joilla asetus on yhä Null, EWSEnabled asetetaan arvoon False, mikä estää EWS:n jokaiselta sovellukselta. Kukin saa 7 päivän varoituksen viestikeskuksessa, ja Microsoft täyttää sallittujen luettelon 60 päivän käytön perusteella vähän ennen, jotta järjestelmänvalvoja voi kytkeä EWS:n takaisin päälle arvolla True.
  • 1. huhtikuuta 2027: EWS on ”kokonaan ja pysyvästi poistettu käytöstä”, eivätkä vuokraajan järjestelmänvalvojat voi enää muuttaa EWSEnabled-asetusta lainkaan.

Microsoftin muiden pilvien vuokraajat saavat omat aikataulunsa viestikeskuksen kautta.

Sallittujen luettelo ostaa aikaa, ei ratkaisua

Automaattinen luettelo muodostetaan 60 päivän liikenteestä, ja Microsoftin oma 4. syyskuuta julkaistu ohje varoittaa, että se ”voi ohittaa harvoin ajettavat sovellukset”. Vuosineljänneksen lopun vienti tai vuoden lopun arkistointiajo ei ole luettelossa, ja se epäonnistuu seuraavan kerran, kun se ajetaan.

Sallittujen luettelon muutokset tulevat voimaan 24 tunnin kuluttua, ja EWSEnabled-asetuksen muutokset noin tunnissa. Jokainen virheen jälkeen tehty korjaus maksaa vähintään vuorokauden.

Vuokraajan tilanteen näkee, kun Exchange Online PowerShellin käyttöoikeudet omaava järjestelmänvalvoja ajaa:

Get-OrganizationConfig | Format-List EWSEnabled
Get-OrganizationConfig -RetrieveEwsOperationAccessPolicy | Format-List EwsAllowedAppIDs

Kenelle tämä on ja kuka voi lopettaa lukemisen

Paikallinen Exchange Server ei ole muutoksen piirissä. Microsoftin mukaan käytöstä poisto koskee ”vain Microsoft 365:tä ja Exchange Onlinea”, ja ”Exchange Serverin EWS:ään ei tule muutoksia”. Jos kaikki postilaatikkosi ovat omilla palvelimillasi, voit lopettaa tähän.

Hybridiympäristöt vaativat tarkempaa tarkastelua. Paikalliset postilaatikot voivat jatkaa EWS:n käyttöä; pilvessä olevat postilaatikot on siirrettävä Graphiin. Microsoftin 30. syyskuuta julkaistu hybridikirjoitus käsittelee kahta tapausta, jotka vaativat toimia nyt, mukaan lukien paikalliset postilaatikot, joiden arkistot ovat Exchange Onlinessa. Niissä ohje on toistaiseksi pitää EWS käytössä ja lisätä hybridisovellus sallittujen luetteloon.

Valmisohjelmistot ovat toimittajan vastuulla. Jos EWS:ää kutsuva ohjelmisto on kaupallinen tuote, Graph-version toimittaminen on toimittajan tehtävä, ja sinun tehtäväsi on saada siltä päivämäärä ja asentaa päivitys. Microsoftin omat asiakasohjelmat eivät ole poikkeus: osa näkyy yhä käyttöraporteissa ja tarvitsee sallittujen luetteloa, kunnes ne päivitetään.

Oma koodi on sinun vastuullasi. Skripteillä, sisäisillä palveluilla, räätälöidyillä avoimen lähdekoodin työkaluilla ja vuosia sitten jonkin toimiston rakentamilla integraatioilla ei ole ketään ylävirrassa korjaamassa niitä. Siellä työ on. Mittakaavasta: exchangelib, Python-kirjasto Exchangen käyttämiseen EWS:n kautta, ladattiin PyPI:stä viimeisen kuukauden aikana 1 174 625 kertaa. Osa siitä on paikallisten palvelimien käyttöä, mutta luku antaa käsityksen siitä, kuinka paljon koodia puhuu EWS:ää suoraan.

Ensimmäinen vaihe: löydä kaikki, mikä käyttää EWS:ää

Aloita EWS-käyttöraportista Microsoft 365 -hallintakeskuksessa (Raportit, Käyttö, Exchange ja sitten EWS-käytön välilehti). Jokaisesta sovelluksesta se listaa Microsoft Entra -sovellustunnuksen, jokaisen sovelluksen kutsuman SOAP-toiminnon, kutsumäärän ja viimeisimmän toimintapäivän. Voit katsoa taaksepäin 7, 30 tai 90 päivää ja viedä tiedot CSV-muotoon.

Kolme asiaa, jotka siitä on hyvä tietää:

  • Data kootaan viikoittain, ja sen ilmestyminen voi kestää jopa 10 päivää.
  • Sovellustunnus ei ole omistaja. Vertaa jokaista tunnusta Microsoft Entran yrityssovelluksiin ja etsi sitten henkilö tai tiimi, joka sitä ylläpitää. Varaudu muutamaan tunnukseen, jota kukaan ei tunnista.
  • SOAP-toimintojen sarake kertoo, kuinka suuri kukin työ on. Sovellus, joka kutsuu vain FindItem- ja GetItem-toimintoja, on lyhyt työ. Sovellus, joka kutsuu SyncFolderItems-, Subscribe- ja ExportItems-toimintoja, on projekti.

Edes 90 päivää ei tavoita vuosittaisia ajoja, joten tarkista myös toinen puoli: ajastetut tehtävät ja cron-merkinnät sekä koodivarastot, joista haetaan EWS-päätepistettä (Exchange.asmx), .NETin EWS Managed API:a ja exchangelibiä. Microsoftin käytöstäpoistosivulla on myös linkki .NET-koodin EWS-analysaattoriin (se merkitsee EWS-kutsut Visual Studiossa ja VS Codessa ja ehdottaa Graph-vastineita) sekä opas tekoälyavusteiseen refaktorointiin.

Toinen vaihe: päätä, mitä kustakin integraatiosta tulee

Jokainen luettelon sovellus saa yhden neljästä vastauksesta:

  1. Poista se käytöstä. Jotkin integraatiot ovat olemassa vain siksi, ettei kukaan ole sulkenut niitä.
  2. Päivitä se. Toimittajan tuotteet saavat toimittajan päivityksen. Sovi päivämäärä nyt.
  3. Kirjoita se uudelleen Microsoft Graphia vasten. Oletusratkaisu omalle koodille.
  4. Suunnittele se uudelleen. Kaikelle, mikä nojaa ominaisuuteen, jota Graphissa ei koskaan tule olemaan (katso alla).

Microsoft mainitsee myös Power Platformin keinona toteuttaa työnkulku uudelleen. Skriptille, joka välittää liitteitä kansioon, se voi olla halvin ratkaisu.

Mitä Graph-uudelleenkirjoitus todella sisältää

Useimmilla EWS-toiminnoilla on suora Graph-vastine, ja Microsoft ylläpitää EWS:n ja Graphin vastaavuustaulukkoa. Vastaavuustaulukko on helppo osa. Vaikeammat osat ovat niitä, joita se ei näytä.

Käyttöoikeudet kapenevat, ja se on hyvä asia

Sovelluksella, joka käyttää EWS:ää ilman kirjautunutta käyttäjää, on EWS-sovellusoikeus, jonka Microsoft kuvaa antavan ”täyden pääsyn kaikkiin postilaatikoihin”. Graph jakaa sen erillisiin käyttöoikeuksiin: Mail.Read, Mail.ReadBasic, Mail.Send, Calendars.ReadWrite, MailboxSettings.Read ja niin edelleen.

Voit myös rajata, mihin postilaatikoihin sovellus pääsee. Exchange Onlinen sovellusten RBAC myöntää käyttöoikeuden hallinta-alueeseen tai hallinnolliseen yksikköön, ja se korvaa vanhemmat Application Access Policies -käytännöt. Huoneiden varausnäyttö voi lukea kahdentoista huonepostilaatikon kalentereita eikä mitään muuta. Yksi ansa: näin tehdyt myönnöt lisätään kaikkiin vuokraajan laajuisiin myöntöihin Microsoft Entrassa, joten jos Mail.Read on yhä hyväksytty siellä, rajauksesi ei rajaa mitään. Poista Entran myöntö.

Käytä sovellusten tunnistautumisessa mahdollisuuksien mukaan varmenteita asiakassalaisuuksien sijaan, ja pidä tunnistetiedot poissa skripteistä ja koodivarastoista.

Synkronointi ja ilmoitukset rakennetaan uudelleen, ei käännetä

Tämä on yleensä suurin muutos kaikelle, mikä pitää paikallista kopiota postilaatikon datasta.

Synkronointi. SyncFolderItems vastaa Graphin viestien delta-kyselyä, ja SyncFolderHierarchy postikansioiden delta-kyselyä. Viestien delta toimii kansio kerrallaan, joten koko postilaatikon synkronointi tarkoittaa kansiopuun seuraamista ja erillisen delta-linkin tallentamista jokaiselle kansiolle. Suodatus on rajallista (vain vastaanottopäivän mukaan), ja tuloksiin sisältyvät poistot, kansiosta pois siirrot ja luettu-tilan muutokset silloinkin, kun ne eivät vastaa suodatinta.

Ilmoitukset. EWS:n suoratoisto- ja push-tilaukset muuttuvat Graphin muutosilmoituksiksi, jotka toimitetaan ylläpitämääsi webhookiin tai Azure Event Hubsiin tai Event Gridiin. Webhookin on oltava tavoitettavissa Microsoftin puolelta, mikä on arkkitehtuurimuutos skriptille, joka on tähän asti pitänyt yhteyttä auki palomuurin takaa. Posti-, kalenteri- ja yhteystietotilaukset kestävät enintään 10 080 minuuttia (vajaat seitsemän päivää) tai 1 440 minuuttia, kun ilmoitus sisältää datan, joten jonkin on uusittava ne. Jokainen postilaatikko sallii enintään 1 000 aktiivista tilausta kaikkien sovellusten kesken.

Kestävä malli: käsittele ilmoitusta vihjeenä, aja delta-kysely nähdäksesi, mikä muuttui, ja aja se myös ajastetusti, jotta saat kiinni kaiken, minkä väliin jäänyt ilmoitus olisi hukannut.

Data, tunnisteet ja läpäisykyky

  • Tallennetut tunnisteet. Jos CRM tai tikettijärjestelmä tallensi EWS-kohdetunnisteita sähköpostien linkittämiseksi tietueisiin, linkit on muunnettava. Graphissa on tätä varten translateExchangeIds-funktio. Suunnittele muunnos omaksi siirtovaiheekseen.
  • Haut. ResolveNames vastaa People API:a, GetUserAvailability vastaa getSchedule-toimintoa ja poissaoloasetukset postilaatikon asetuksia. Läheisiä vastineita, eivät identtisiä.
  • Rajoitukset. Graph rajoittaa jokaisen sovelluksen ja postilaatikon parin 10 000 pyyntöön 10 minuutissa, neljään samanaikaiseen pyyntöön ja 150 Mt:n latauksiin 5 minuutissa. Joukkoajo, joka ajoi kymmeniä rinnakkaisia EWS-säikeitä yhtä postilaatikkoa vasten, on suunniteltava uudelleen näiden lukujen mukaan.

Puutteet ja se, mitä ei koskaan tule

Microsoft julkaisee tiekartan EWS-ominaisuuksista, jotka yhä puuttuvat Graphista. Siihen kuuluvat arkisto-, julkisten kansioiden ja ryhmien postilaatikoiden täysin tarkka tuonti ja vienti, pääsy paikallisiin arkistoihin (in-place archive), kansio-oikeudet Exchange Admin API:n kautta ja muiden kuin luonnosviestien luominen MIME-muodosta. Useimmat tavoitteet ovat vuoden 2026 viimeisellä neljänneksellä. Muutama oli määrä toimittaa kolmannella neljänneksellä, joka on nyt päättynyt, joten tarkista, mitä on oikeasti julkaistu, ennen kuin suunnittelet sen varaan. Microsoftin oma varoitus: jos ominaisuus ei ole tiekartalla, Graph-vastineeseen ennen EWS:n sulkemista ”ei kannata luottaa”.

Kolmen ominaisuuden on vahvistettu, ettei niitä koskaan tule Graphiin:

  • Yleinen pääsy julkisiin kansioihin (kansioiden ja kohteiden luonti, luku, päivitys ja poisto).
  • Yleinen pääsy Microsoft 365 -ryhmien postilaatikoihin. Graph kattaa sen sijaan ryhmäkeskustelut, viestiketjut ja viestit.
  • Pääsy eDiscovery-postilaatikoihin (discovery mailbox). Microsoft ohjaa sen sijaan Purview eDiscoveryyn.

Jos työkalu riippuu jostakin näistä, koodin siirtäminen ei riitä: datan tai työnkulun on ensin siirryttävä muualle, ja se vie kauemmin kuin uudelleenkirjoitus.

Kuuden kuukauden suunnitelma

Tästä päivästä 1. huhtikuuta 2027 on vajaat kuusi kuukautta. Realistinen järjestys:

Lokakuu 2026: selvitä tilanne. Tarkista EWSEnabled ja sallittujen luettelo. Vie 90 päivän käyttöraportti. Käy läpi Microsoftin täyttämä luettelo, poista se, minkä ei pidä olla siellä, ja lisää tiedossasi olevat harvoin ajettavat työt. Jos vuokraajasi on yhä tilassa Null, harkitse luettelon ja arvon True asettamista itse sen sijaan, että odotat Microsoftin vaihtoa arvoon False ja näet, mikä hajoaa.

Marraskuu 2026: priorisointi. Anna jokaiselle sovellustunnukselle omistaja ja vastaus (poisto, päivitys, uudelleenkirjoitus, uudelleensuunnittelu). Skannaa koodi. Merkitse kaikki, mikä koskee julkisia kansioita, ryhmien postilaatikoita tai eDiscovery-postilaatikoita, ja aloita uudelleensuunnittelu nyt. Luo Graph-sovellusrekisteröinnit rajatuin käyttöoikeuksin.

Joulukuu 2026 ja tammikuu 2027: rakentaminen. Aloita integraatiosta, jota liiketoiminta kaipaisi ensimmäisenä. Rakenna synkronoinnin ja ilmoitusten putket kerran ja käytä niitä uudelleen. Muunna tallennetut tunnisteet.

Helmikuu 2027: aja molempia rinnakkain. Kun EWS vielä toimii, aja vanhaa ja uutta versiota samoja postilaatikoita vasten ja vertaa tuloksia. Kun kukin hyväksytään, poista sen tunnus sallittujen luettelosta. Se on samalla testi: odota 24 tuntia ja varmista, ettei mikään muu pysähtynyt.

Maaliskuu 2027: sulje EWS itse. Aseta EWSEnabled arvoon False hyvissä ajoin ennen 1. huhtikuuta. Kaikki unohtunut epäonnistuu silloin, kun EWS:n voi vielä kytkeä takaisin päälle. 1. huhtikuuta jälkeen se mahdollisuus on poissa. Aja myös neljännesvuosittaiset ja vuosittaiset työt tarkoituksella testiksi ennen sitä: ensimmäisen vuosineljänneksen päättyessä ajettava työ ajetaan ensimmäistä kertaa vasta EWS:n poistuttua.

Mistä saat apua

Vaikea tapaus on integraatio, jonka alkuperäinen kehittäjä on lähtenyt. Vanhojen järjestelmien ylläpitopalvelumme on rakennettu juuri sitä varten: luemme olemassa olevan koodin, kirjoitamme EWS-osat uudelleen Microsoft Graphia vasten (käyttöoikeudet, synkronointi, ilmoitukset, tunnisteiden siirto) ja ajamme vanhaa ja uutta rinnakkain, kunnes luvut täsmäävät. Jos tarvitset sen sijaan insinöörejä työskentelemään oman tiimisi sisällä, katso henkilöstövuokrauspalvelumme.

Jos käyttöraporttisi on täynnä sovellustunnuksia, joita kukaan ei tunnista, kirjoita osoitteeseen office@c9group.dev.