Microsoft 365 IP-cím és URL-webszolgáltatás

A Microsoft 365 IP-címe és URL-címe webszolgáltatás segít jobban azonosítani és megkülönböztetni a Microsoft 365 hálózati forgalmát, így könnyebben kiértékelheti, konfigurálhatja és naprakészen tarthatja a módosításokat. Ez a REST-alapú webszolgáltatás felváltja a korábbi letölthető XML-fájlokat, amelyeket 2018. október 2-án megszüntettünk.

Ügyfélként vagy peremhálózati eszköz gyártójaként a Microsoft 365 IP-cím- és FQDN-bejegyzések webszolgáltatására építhet. Az adatokat közvetlenül egy webböngészőben érheti el az alábbi URL-címek használatával:

Ügyfélként ezt a webszolgáltatást a következőkre használhatja:

  • Frissítse a PowerShell-szkripteket a Microsoft 365-ös végpontadatok beszerzéséhez és a hálózati eszközök formázásának módosításához.
  • Ezekkel az információkkal frissítheti az ügyfélszámítógépeken üzembe helyezett PAC-fájlokat.

A szegélyhálózati eszközök szállítójaként ezt a webszolgáltatást a következőkre használhatja:

  • Eszközszoftver létrehozása és tesztelése az automatikus konfiguráció listájának letöltéséhez.
  • Ellenőrizze az aktuális verziót.
  • Az aktuális módosítások lekérése.

Megjegyzés:

Ha az Azure ExpressRoute-ot használja a Microsoft 365-höz való csatlakozáshoz, tekintse át a Microsoft 365-höz készült Azure ExpressRoute-ot , és ismerkedjen meg az Azure ExpressRoute-on keresztül támogatott Microsoft 365-szolgáltatásokkal. Tekintse át a Microsoft 365 URL-címeit és IP-címtartományait ismertető cikket is, amelyből megtudhatja, hogy a Microsoft 365-alkalmazásokra vonatkozó hálózati kérések milyen internetkapcsolatot igényelnek. Ez segít jobban konfigurálni a szegélyhálózati biztonsági eszközöket.

További információ:

Gyakori paraméterek

Ezek a paraméterek gyakoriak az összes webszolgáltatás-metódusban:

  • format=<JSON | CSV> – Alapértelmezés szerint a visszaadott adatformátum JSON. Ezzel a választható paraméterel vesszővel tagolt (CSV) formátumban adja vissza az adatokat.

  • ClientRequestId=<guid> – Az ügyféltársításhoz szükséges GUID. Hozzon létre egy egyedi GUID-t minden olyan géphez, amely meghívja a webszolgáltatást (az ezen az oldalon található szkriptek létrehoznak egy GUID azonosítót). Ne használja az alábbi példákban látható GUID azonosítókat, mert előfordulhat, hogy a webszolgáltatás a jövőben letiltja őket. A GUID formátuma xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, ahol x egy hexadecimális számot jelöl.

    GUID létrehozásához használhatja a New-GUID PowerShell-parancsot, vagy használhat egy online szolgáltatást, például az Online GUID Generatort.

Verzió webes metódusa

A Microsoft minden hónap elején frissíti a Microsoft 365 IP-címét és teljes tartománynevét. A sávon kívüli frissítéseket néha támogatási incidensek, biztonsági frissítések vagy más működési követelmények miatt teszik közzé.

Az egyes közzétett példányok adataihoz verziószám van rendelve, és a verzió webes módszerével ellenőrizheti az egyes Microsoft 365-szolgáltatáspéldányok legújabb verzióját. Javasoljuk, hogy óránként legfeljebb egyszer ellenőrizze a verziót.

A verzió webes metódusának paraméterei a következők:

  • AllVersions=<true | false> – Alapértelmezés szerint a visszaadott verzió a legújabb. Adja meg ezt a választható paramétert a webszolgáltatás első kiadása óta közzétett összes verzió lekéréséhez.
  • Formátum=<JSON | CSV | RSS> – A JSON- és CSV-formátumok mellett a verzió webes metódusa is támogatja az RSS-t. Ezt az opcionális paramétert az AllVersions=true paraméterrel együtt használhatja az Outlookkal vagy más RSS-olvasókkal használható RSS-hírcsatornák igényléséhez.
  • Példány=<Világszerte | Kína | USGovDoD | USGovGCCHigh> – Ez a választható paraméter azt a példányt adja meg, amely a verzióját adja vissza. Ha nincs megadva, a rendszer az összes példányt visszaadja. Érvényes példányok: Worldwide, China, USGovDoD, USGovGCCHigh.

A verzió webmetódusa nem korlátozott, és soha nem ad vissza 429 HTTP-válaszkódokat. A verzióalapú webes metódusra adott válasz tartalmaz egy gyorsítótár-vezérlő fejlécet, amely az adatok 1 órás gyorsítótárazását javasolja. A verzió webes metódusának eredménye lehet egyetlen rekord vagy rekordtömb. Az egyes rekordok elemei a következők:

  • instance – A Microsoft 365 szolgáltatáspéldány rövid neve.
  • latest – A megadott példány végpontjainak legújabb verziója.
  • versions – A megadott példány összes korábbi verziójának listája. Ez az elem csak akkor jelenik meg, ha az AllVersions paraméter igaz.

Példák a verzió webes metódusára

1. példa kérés URI-ja: https://endpoints.office.com/version?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Ez az URI az egyes Microsoft 365-szolgáltatáspéldányok legújabb verzióját adja vissza. Példa eredmény:

[
 {
  "instance": "Worldwide",
  "latest": "2018063000"
 },
 {
  "instance": "USGovDoD",
  "latest": "2018063000"
 },
 {
  "instance": "USGovGCCHigh",
  "latest": "2018063000"
 },
 {
  "instance": "China",
  "latest": "2018063000"
 }
]

Fontos

A ClientRequestID paraméter GUID azonosítója ezekben az URI-kban csak példa. A webszolgáltatás URI-jának kipróbálásához hozzon létre saját GUID azonosítót. Az ezekben a példákban látható GUID azonosítókat a jövőben blokkolhatja a webszolgáltatás.

2. példa kérés URI-ja: https://endpoints.office.com/version/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Ez az URI a megadott Microsoft 365 szolgáltatáspéldány legújabb verzióját adja vissza. Példa eredmény:

{
 "instance": "Worldwide",
 "latest": "2018063000"
}

3. példa kérés URI-ja: https://endpoints.office.com/version/Worldwide?Format=CSV& ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Ez az URI CSV formátumban jeleníti meg a kimenetet. Példa eredmény:

instance,latest
Worldwide,2018063000

4. példa kérés URI-ja: https://endpoints.office.com/version/Worldwide?AllVersions=true& ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Ez az URI a Microsoft 365 worldwide szolgáltatáspéldányhoz közzétett összes korábbi verziót megjeleníti. Példa eredmény:

{
  "instance": "Worldwide",
  "latest": "2018063000",
  "versions": [
    "2018063000",
    "2018062000"
  ]
}

5. példa RSS-hírcsatorna URI-ja: https://endpoints.office.com/version/worldwide?clientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7& allVersions=true&format=RSS

Ez az URI a közzétett verziók RSS-hírcsatornáját jeleníti meg, amely hivatkozásokat tartalmaz az egyes verziók módosításainak listájára. Példa eredmény:

<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0" xmlns:a10="https://www.w3.org/2005/Atom">
<channel>
<link>https://aka.ms/o365ip</link>
<description/>
<language>en-us</language>
<lastBuildDate>Thu, 02 Aug 2018 00:00:00 Z</lastBuildDate>
<item>
<guid isPermaLink="false">2018080200</guid>
<link>https://endpoints.office.com/changes/Worldwide/2018080200?singleVersion&clientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7</link> <description>Version 2018080200 includes 2 changes. IPs: 2 added and 0 removed.</description>
<pubDate>Thu, 02 Aug 2018 00:00:00 Z</pubDate>
</item>

Végpontok webes metódusa

A végpontok webes metódusa a Microsoft 365 szolgáltatást alkotó IP-címtartományok és URL-címek összes rekordját visszaadja. A végpontok webes metódusának legfrissebb adatait mindig a hálózati eszközök konfigurálásához kell használni. A Microsoft előzetes értesítést küld 30 nappal az új kiegészítések közzététele előtt, hogy időt biztosítson a hozzáférés-vezérlési listák és a proxykiszolgálók megkerülési listáinak frissítésére. Azt javasoljuk, hogy csak akkor hívja meg újra a végpontok webes metódusát, ha a verzió webes metódusa azt jelzi, hogy az adatok új verziója érhető el.

A végpontok webes metódusának paraméterei a következők:

  • ServiceAreas=<Közös | Exchange | SharePoint | Skype> – A szolgáltatási területek vesszővel tagolt listája. Az érvényes elemek a közös, az Exchange, a SharePoint és a Skype. Mivel a közös szolgáltatási terület elemei az összes többi szolgáltatási terület előfeltételei, a webszolgáltatás mindig tartalmazza őket. Ha nem adja meg ezt a paramétert, a rendszer az összes szolgáltatási területet visszaadja.
  • TenantName=<tenant_name> – Az Ön Microsoft 365-ös bérlőneve. A webszolgáltatás felveszi a megadott nevet, és beszúrja az URL-címek olyan részeibe, amelyek tartalmazzák a bérlő nevét. Ha nem ad meg bérlőnevet, az URL-címek ezen részei helyettesítő karakterrel (*) rendelkeznek.
  • NoIPv6=<true | false> – Állítsa true ( igaz ) értékre, hogy kizárja az IPv6-címeket a kimenetből, ha nem használ IPv6-ot a hálózatban.
  • Példány=<Világszerte | Kína | USGovDoD | USGovGCCHigh> – Ez a kötelező paraméter azt a példányt adja meg, amelyből a végpontokat vissza szeretné adni. Érvényes példányok: Worldwide, China, USGovDoD és USGovGCCHigh.

Ha túl sokszor hívja meg a végpontok webes metódusát ugyanabból az ügyfél IP-címéről, előfordulhat, hogy a 429-hez (túl sok kérelem) tartozó HTTP-válaszkódot kapja. Ha ezt a válaszkódot kapja, várjon 1 órát a kérés megismétlése előtt, vagy hozzon létre egy új GUID-t a kéréshez. Általános ajánlott eljárásként csak akkor hívja meg a végpontok webes metódusát, ha a verzió webes metódusa azt jelzi, hogy új verzió érhető el.

A végpontok webes metódusának eredménye egy rekordtömb, amelyben minden rekord egy adott végpontkészletet jelöl. Az egyes rekordok elemei a következők:

  • id – A végpontkészlet nem módosítható azonosítószáma.
  • serviceArea – Az a szolgáltatási terület, amely a következő szolgáltatások részét képezi: Common, Exchange, SharePoint vagy Skype.
  • urls – A végpontkészlet URL-címei. DNS-rekordok JSON-tömbje. Nincs megadva, ha üres.
  • tcpPorts – A végpontkészlet TCP-portjai. Minden portelem kötőjellel (-) elválasztott portok vagy porttartományok vesszővel tagolt listájaként van formázva. A portok az adott kategóriához beállított végpont összes IP-címére és URL-címére vonatkoznak. Nincs megadva, ha üres.
  • udpPorts – UDP-portok a végpontkészlet IP-címtartományaihoz. Nincs megadva, ha üres.
  • ips – A végpontkészlethez társított IP-címtartományok a felsorolt TCP- vagy UDP-portokhoz társítva. IP-címtartományok JSON-tömbje. Nincs megadva, ha üres.
  • category – A végpontkészlet kapcsolati kategóriája. Az érvényes értékek az Optimalizálás, az Engedélyezés és az Alapértelmezett. Ha a végpontok webes metódusának kimenetében keres egy adott IP-cím vagy URL-cím kategóriáját, lehetséges, hogy a lekérdezés több kategóriát is visszaad. Ilyen esetben kövesse a legmagasabb prioritású kategóriára vonatkozó javaslatot. Ha például a végpont az Optimalizálás és az Engedélyezés nézetben is megjelenik, akkor az Optimalizálás követelményeit kell követnie. Szükséges.
  • expressRoute – Igaz , ha a végpontkészlet az ExpressRoute-on keresztül van irányítva, hamis , ha nem.
  • required – Igaz , ha ez a végpontkészlet a Microsoft 365 támogatásához szükséges. Hamis , ha ez a végpontkészlet nem kötelező.
  • megjegyzések – A választható végpontok esetében ez a szöveg a Microsoft 365 azon funkcióit ismerteti, amelyek nem lennének elérhetők, ha a végpontkészletben lévő IP-címek vagy URL-címek nem érhetők el a hálózati rétegben. Nincs megadva, ha üres.

Példák a végpontok webes metódusára

1. példa kérés URI-ja: https://endpoints.office.com/endpoints/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Ez az URI minden számítási feladathoz beszerzi a Microsoft 365 globális példányának összes végpontját. Példa a kimenet egy részletére:

[
 {
  "id": 1,
  "serviceArea": "Exchange",
  "serviceAreaDisplayName": "Exchange Online",
  "urls":
   [
    "*.protection.outlook.com"
   ],
  "ips":
   [
    "2a01:111:f403::/48", "23.103.132.0/22", "23.103.136.0/21", "23.103.198.0/23", "23.103.212.0/22", "40.92.0.0/14", "40.107.0.0/17", "40.107.128.0/18", "52.100.0.0/14", "213.199.154.0/24", "213.199.180.128/26", "94.245.120.64/26", "207.46.163.0/24", "65.55.88.0/24", "216.32.180.0/23", "23.103.144.0/20", "65.55.169.0/24", "207.46.100.0/24", "2a01:111:f400:7c00::/54", "157.56.110.0/23", "23.103.200.0/22", "104.47.0.0/17", "2a01:111:f400:fc00::/54", "157.55.234.0/24", "157.56.112.0/24", "52.238.78.88/32"
   ],
  "tcpPorts": "443",
  "expressRoute": true,
  "category": "Allow"
 },
 {
  "id": 2,
  "serviceArea": "Exchange",
  "serviceAreaDisplayName": "Exchange Online",
  "urls":
   [
    "*.mail.protection.outlook.com"
   ],

A kérés teljes kimenete ebben a példában más végpontkészleteket tartalmazna.

2. példa kérés URI-ja: https://endpoints.office.com/endpoints/Worldwide?ServiceAreas=Exchange& ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Ez a példa csak Exchange Online és függőségek esetén szerzi be a Microsoft 365 Worldwide-példány végpontjait.

A kimenet például az 1. példához hasonló, azzal a különbségtel, hogy az eredmények nem tartalmazzák a SharePoint vagy a Skype Vállalati verzió Online végpontjait.

Webes metódus módosítása

A változások webes metódusa a legutóbb közzétett frissítéseket adja vissza, jellemzően az előző hónap IP-címtartományokra és URL-címekre vonatkozó módosításait.

A végpontok adatainak legfontosabb változásai az új URL-címek és IP-címek. Ha nem sikerül IP-címet hozzáadni a tűzfal hozzáférés-vezérlési listájához, vagy egy proxykiszolgáló megkerülési listájához tartozó URL-címet, az a hálózati eszköz mögötti Microsoft 365-felhasználók leállását okozhatja. A működési követelmények ellenére az új végpontok 30 nappal a végpontok üzembe helyezésének dátuma előtt közzé lesznek téve a webszolgáltatásban, hogy időt biztosítson a hozzáférés-vezérlési listák és a proxykiszolgálók megkerülési listáinak frissítésére.

A módosítások webes metódusának kötelező paramétere a következő:

  • Verzió=<YYYYMMDDNN –> Kötelező URL-útvonalparaméter. Ez az érték a jelenleg implementált verzió. A webszolgáltatás az adott verzió óta végrehajtott módosításokat adja vissza. A formátum YYYYMMDDNN, ahol az NN egy természetes szám, amely akkor növekményes, ha több verziót kell közzétenni egyetlen napon, és a 00 az adott nap első frissítését jelöli. A webszolgáltatásnak pontosan 10 számjegyet kell tartalmaznia a verzióparaméternek.

A módosítások webes metódusa a végpontok webes metódusával megegyező módon korlátozva van. Ha 429 HTTP-válaszkódot kap, várjon 1 órát, mielőtt megismételi a kérést, vagy hozzon létre egy új GUID-t a kéréshez.

A módosítások webes metódusának eredménye olyan rekordok tömbje, amelyekben minden rekord a végpontok egy adott verziójának változását jelöli. Az egyes rekordok elemei a következők:

  • id – A változásrekord nem módosítható azonosítója.
  • endpointSetId – A módosított végpontkészlet-rekord azonosítója.
  • disposition – Azt ismerteti, hogy mi történt a végpontkészlet rekordjában. Az értékek módosulnak, hozzáadhatók vagy eltávolíthatók.
  • hatás – Nem minden változás lesz ugyanolyan fontos minden környezetben. Ez az elem a vállalati hálózat peremhálózati környezetére gyakorolt várható hatást írja le a változás következtében. Ez az elem csak a 2018112800 és újabb verziók változásrekordjaiban szerepel. A hatás lehetőségei a következők: – AddedIp – Egy IP-cím lett hozzáadva a Microsoft 365-höz, és hamarosan elérhető lesz a szolgáltatásban. Ez egy tűzfalon vagy más, 3. rétegbeli hálózati szegélyeszközön szükséges módosítást jelent. Ha még a használat megkezdése előtt nem adja hozzá, előfordulhat, hogy szolgáltatáskimaradást tapasztal. — AddedUrl – Egy URL-cím lett hozzáadva a Microsoft 365-höz, és hamarosan elérhető lesz a szolgáltatásban. Ez olyan módosítást jelent, amelyet a proxykiszolgálón vagy a szegélyhálózati eszközt elemző URL-címen kell elvégeznie. Ha a használat megkezdése előtt nem adja hozzá ezt az URL-címet, előfordulhat, hogy szolgáltatáskimaradást tapasztal. — AddedIpAndUrl – Egy IP-cím és egy URL-cím is hozzá lett adva. Ez olyan módosítást jelent, amelyet egy 3. rétegbeli tűzfaleszközön, egy proxykiszolgálón vagy URL-elemző eszközön kell elvégeznie. Ha a használat megkezdése előtt nem adja hozzá ezt az IP-/URL-párt, előfordulhat, hogy szolgáltatáskimaradást tapasztal. — RemovedIpOrUrl – Legalább egy IP-cím vagy URL-cím el lett távolítva a Microsoft 365-ből. Távolítsa el a hálózati végpontokat a szegélyhálózati eszközökről, de erre nincs határidő. — ChangedIsExpressRoute – Az ExpressRoute támogatási attribútuma megváltozott. Ha ExpressRoute-ot használ, előfordulhat, hogy a konfigurációtól függően lépéseket kell elvégeznie. — MovedIpOrUrl – Áthelyeztünk egy IP-címet vagy URL-címet a végpontkészlet és egy másik között. Általában nincs szükség beavatkozásra. — RemovedDuplicateIpOrUrl – Eltávolítottunk egy duplikált IP-címet vagy URL-címet, de továbbra is közzé lett téve a Microsoft 365-ben. Általában nincs szükség beavatkozásra. — OtherNonPriorityChanges – Az összes többi lehetőségnél kevésbé kritikus beállítást módosítottunk, például egy jegyzetmező tartalmát.
  • version – Annak a közzétett végpontkészletnek a verziója, amelyben a módosítást bevezették. A verziószámok formátuma ÉÉÉÉÉHHNNNN, ahol az NN természetes szám, ha több verziót kell közzétenni egyetlen napon.
  • previous – A végpontkészlet módosított elemeinek korábbi értékeit részletező alstruktúra. Ez nem fog szerepelni az újonnan hozzáadott végpontkészletek esetében. Tartalmazza az ExpressRoute, a serviceArea, a category, a required, a tcpPorts, az udpPorts és a notes elemet.
  • current – A végpontkészlet módosítási elemeinek frissített értékeit részletező alstruktúra. Tartalmazza az ExpressRoute, a serviceArea, a category, a required, a tcpPorts, az udpPorts és a notes elemet.
  • add – A végpontkészlet-gyűjteményekhez hozzáadandó elemeket részletező alstruktúra. Nincs megadva, ha nincsenek kiegészítések. – effectiveDate – Meghatározza az adatokat, amikor a hozzáadások a szolgáltatásban fognak élni. – ips – Az ips tömbhöz hozzáadandó elemek. — urls – Az URL-tömbhöz hozzáadandó elemek.
  • remove – A végpontkészletből eltávolítandó elemeket részletező alstruktúra. Nincs megadva, ha nincsenek eltávolítások. — ips – Az ips tömbből eltávolítandó elemek. — urls – Az URL-tömbből eltávolítandó elemek.

Webes metódusok példáinak módosítása

1. példa kérés URI-ja: https://endpoints.office.com/changes/worldwide/0000000000?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Ez a Microsoft 365 worldwide szolgáltatáspéldány összes korábbi módosítását kéri. Példa eredmény:

[
 {
  "id": 424,
  "endpointSetId": 32,
  "disposition": "Change",
  "version": "2018062700",
  "remove":
   {
    "urls":
     [
      "*.api.skype.com", "skypegraph.skype.com"
     ]
   }
 },
 {
  "id": 426,
  "endpointSetId": 31,
  "disposition": "Change",
  "version": "2018062700",
  "add":
   {
    "effectiveDate": "20180609",
    "ips":
     [
      "51.140.203.190/32"
     ]
   },
  "remove":
   {
    "ips":
     [

2. példa kérés URI-ja: https://endpoints.office.com/changes/worldwide/2018062700?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Ez a kérés a megadott verzió óta a Microsoft 365 Worldwide példányra változik. Ebben az esetben a megadott verzió a legújabb. Példa eredmény:

[
  {
    "id":3,
    "endpointSetId":33,
    "changeDescription":"Removing old IP prefixes",
    "disposition":"Change",
    "version":"2018031301",
    "remove":{
      "ips":["65.55.127.0/24","66.119.157.192/26","66.119.158.0/25",
      "111.221.76.128/25","111.221.77.0/26","207.46.5.0/24"]
    }
  },
  {
    "id":4,
    "endpointSetId":45,
    "changeDescription":"Removing old IP prefixes",
    "disposition":"Change",
    "version":"2018031301",
    "remove":{
      "ips":["13.78.93.8/32","40.113.87.220/32","40.114.149.220/32",
      "40.117.100.83/32","40.118.214.164/32","104.208.31.113/32"]
    }
  }
]

PowerShell-példaszkript

Ezt a PowerShell-szkriptet futtatva ellenőrizheti, hogy vannak-e olyan műveletek, amelyeket el kell végeznie a frissített adatokhoz. Ezt a szkriptet ütemezett feladatként futtatva ellenőrizheti a verziófrissítéseket. A webszolgáltatás túlzott terhelésének elkerülése érdekében próbálja meg óránként többször futtatni a szkriptet.

A szkript a következőket hajtja végre:

  • A webszolgáltatás REST API-jának meghívásával ellenőrzi az aktuális Microsoft 365 Worldwide-példányvégpontok verziószámát.

  • Egy aktuális verziófájlt keres a $Env:TEMP\O365_endpoints_latestversion.txtcímen. A $Env:TEMP globális változó elérési útja általában C:\Users\<username>\AppData\Local\Temp.

  • Ha ez a szkript első futtatása, a szkript visszaadja az aktuális verziót és az összes aktuális IP-címet és URL-címet, a végpontok verzióját a $Env:TEMP\O365_endpoints_latestversion.txt fájlba, a végpontok adatkimenetét pedig a $Env:TEMP\O365_endpoints_data.txtfájlba írja. A kimeneti fájl elérési útját és/vagy nevét az alábbi sorok szerkesztésével módosíthatja:

    $versionpath = $Env:TEMP + "\O365_endpoints_latestversion.txt"
    $datapath = $Env:TEMP + "\O365_endpoints_data.txt"
    
  • Ha a szkript minden további végrehajtásakor a webszolgáltatás legújabb verziója megegyezik a O365_endpoints_latestversion.txt fájlban lévő verzióval, a szkript módosítás nélkül kilép.

  • Ha a webszolgáltatás legújabb verziója újabb, mint a O365_endpoints_latestversion.txt fájlban lévő verzió, a szkript visszaadja az Engedélyezés és optimalizálás kategóriavégpontok végpontjait és szűrőit, frissíti a verziót a O365_endpoints_latestversion.txt fájlban, és a frissített adatokat a O365_endpoints_data.txt fájlba írja.

A szkript létrehoz egy egyedi ClientRequestId azonosítót ahhoz a számítógéphez, amelyen végrehajtja, és több hívásban újra felhasználja ezt az azonosítót. Ezt az azonosítót a O365_endpoints_latestversion.txt fájl tárolja.

A PowerShell-szkript futtatása

  1. Másolja ki a szkriptet, és mentse a helyi merevlemezre vagy a parancsfájl helyére Get-O365WebServiceUpdates.ps1.

  2. Hajtsa végre a szkriptet az előnyben részesített szkriptszerkesztőben, például a PowerShell ISE-ben vagy a VS Code-ban, vagy egy PowerShell-konzolon a következő paranccsal:

    powershell.exe -file <path>\Get-O365WebServiceUpdates.ps1
    

    A szkriptnek nincsenek átadandó paraméterek.

<# Get-O365WebServiceUpdates.ps1
From https://aka.ms/ipurlws
v1.1 8/6/2019

DESCRIPTION
This script calls the REST API of the Microsoft 365 IP and URL Web Service (Worldwide instance)
and checks to see if there has been a new update since the version stored in an existing
$Env:TEMP\O365_endpoints_latestversion.txt file in your user directory's temp folder
(usually C:\Users\<username>\AppData\Local\Temp).
If the file doesn't exist, or the latest version is newer than the current version in the
file, the script returns IPs and/or URLs that have been changed, added or removed in the latest
update and writes the new version and data to the output file $Env:TEMP\O365_endpoints_data.txt.

USAGE
Run as a scheduled task every 60 minutes.

PARAMETERS
n/a

PREREQUISITES
PS script execution policy: Bypass
PowerShell 3.0 or later
Does not require elevation
#>

#Requires -Version 3.0

# web service root URL
$ws = "https://endpoints.office.com"
# path where output files will be stored
$versionpath = $Env:TEMP + "\O365_endpoints_latestversion.txt"
$datapath = $Env:TEMP + "\O365_endpoints_data.txt"

# fetch client ID and version if version file exists; otherwise create new file and client ID
if (Test-Path $versionpath) {
    $content = Get-Content $versionpath
    $clientRequestId = $content[0]
    $lastVersion = $content[1]
    Write-Output ("Version file exists! Current version: " + $lastVersion)
}
else {
    Write-Output ("First run! Creating version file at " + $versionpath + ".")
    $clientRequestId = [GUID]::NewGuid().Guid
    $lastVersion = "0000000000"
    @($clientRequestId, $lastVersion) | Out-File $versionpath
}

# call version method to check the latest version, and pull new data if version number is different
$version = Invoke-RestMethod -Uri ($ws + "/version/Worldwide?clientRequestId=" + $clientRequestId)
if ($version.latest -gt $lastVersion) {
    Write-Host "New version of Microsoft 365 worldwide commercial service instance endpoints detected"
    # write the new version number to the version file
    @($clientRequestId, $version.latest) | Out-File $versionpath
    # invoke endpoints method to get the new data
    $endpointSets = Invoke-RestMethod -Uri ($ws + "/endpoints/Worldwide?clientRequestId=" + $clientRequestId)
    # filter results for Allow and Optimize endpoints, and transform these into custom objects with port and category
    # URL results
    $flatUrls = $endpointSets | ForEach-Object {
        $endpointSet = $_
        $urls = $(if ($endpointSet.urls.Count -gt 0) { $endpointSet.urls } else { @() })
        $urlCustomObjects = @()
        if ($endpointSet.category -in ("Allow", "Optimize")) {
            $urlCustomObjects = $urls | ForEach-Object {
                [PSCustomObject]@{
                    category = $endpointSet.category;
                    url      = $_;
                    tcpPorts = $endpointSet.tcpPorts;
                    udpPorts = $endpointSet.udpPorts;
                }
            }
        }
        $urlCustomObjects
    }
    # IPv4 results
    $flatIp4s = $endpointSets | ForEach-Object {
        $endpointSet = $_
        $ips = $(if ($endpointSet.ips.Count -gt 0) { $endpointSet.ips } else { @() })
        # IPv4 strings contain dots
        $ip4s = $ips | Where-Object { $_ -like '*.*' }
        $ip4CustomObjects = @()
        if ($endpointSet.category -in ("Allow", "Optimize")) {
            $ip4CustomObjects = $ip4s | ForEach-Object {
                [PSCustomObject]@{
                    category = $endpointSet.category;
                    ip = $_;
                    tcpPorts = $endpointSet.tcpPorts;
                    udpPorts = $endpointSet.udpPorts;
                }
            }
        }
        $ip4CustomObjects
    }
    # IPv6 results
    $flatIp6s = $endpointSets | ForEach-Object {
        $endpointSet = $_
        $ips = $(if ($endpointSet.ips.Count -gt 0) { $endpointSet.ips } else { @() })
        # IPv6 strings contain colons
        $ip6s = $ips | Where-Object { $_ -like '*:*' }
        $ip6CustomObjects = @()
        if ($endpointSet.category -in ("Optimize")) {
            $ip6CustomObjects = $ip6s | ForEach-Object {
                [PSCustomObject]@{
                    category = $endpointSet.category;
                    ip = $_;
                    tcpPorts = $endpointSet.tcpPorts;
                    udpPorts = $endpointSet.udpPorts;
                }
            }
        }
        $ip6CustomObjects
    }

    # write output to screen
    Write-Output ("Client Request ID: " + $clientRequestId)
    Write-Output ("Last Version: " + $lastVersion)
    Write-Output ("New Version: " + $version.latest)
    Write-Output ""
    Write-Output "IPv4 Firewall IP Address Ranges"
    ($flatIp4s.ip | Sort-Object -Unique) -join "," | Out-String
    Write-Output "IPv6 Firewall IP Address Ranges"
    ($flatIp6s.ip | Sort-Object -Unique) -join "," | Out-String
    Write-Output "URLs for Proxy Server"
    ($flatUrls.url | Sort-Object -Unique) -join "," | Out-String
    Write-Output ("IP and URL data written to " + $datapath)

    # write output to data file
    Write-Output "Microsoft 365 IP and UL Web Service data" | Out-File $datapath
    Write-Output "Worldwide instance" | Out-File $datapath -Append
    Write-Output "" | Out-File $datapath -Append
    Write-Output ("Version: " + $version.latest) | Out-File $datapath -Append
    Write-Output "" | Out-File $datapath -Append
    Write-Output "IPv4 Firewall IP Address Ranges" | Out-File $datapath -Append
    ($flatIp4s.ip | Sort-Object -Unique) -join "," | Out-File $datapath -Append
    Write-Output "" | Out-File $datapath -Append
    Write-Output "IPv6 Firewall IP Address Ranges" | Out-File $datapath -Append
    ($flatIp6s.ip | Sort-Object -Unique) -join "," | Out-File $datapath -Append
    Write-Output "" | Out-File $datapath -Append
    Write-Output "URLs for Proxy Server" | Out-File $datapath -Append
    ($flatUrls.url | Sort-Object -Unique) -join "," | Out-File $datapath -Append
}
else {
    Write-Host "Microsoft 365 worldwide commercial service instance endpoints are up-to-date."
}

Python-példaszkript

Az alábbi Python-szkript a Python 3.6.3-at tesztelte Windows 10, amelyet futtatva ellenőrizheti, hogy vannak-e olyan műveletek, amelyeket el kell végeznie a frissített adatokhoz. Ez a szkript ellenőrzi a Microsoft 365 Worldwide-példányvégpontok verziószámát. Ha változás történik, letölti az Engedélyezés és optimalizálás kategóriavégpontok végpontjait és szűrőit. Emellett egy egyedi ClientRequestId azonosítót is használ több hívásra, és menti az ideiglenes fájlban található legújabb verziót. Óránként egyszer hívja meg ezt a szkriptet a verziófrissítések kereséséhez.

import json
import tempfile
from pathlib import Path
import urllib.request
import uuid
# helper to call the webservice and parse the response
def webApiGet(methodName, instanceName, clientRequestId):
    ws = "https://endpoints.office.com"
    requestPath = ws + '/' + methodName + '/' + instanceName + '?clientRequestId=' + clientRequestId
    request = urllib.request.Request(requestPath)
    with urllib.request.urlopen(request) as response:
        return json.loads(response.read().decode())
# path where client ID and latest version number will be stored
datapath = Path(tempfile.gettempdir() + '/endpoints_clientid_latestversion.txt')
# fetch client ID and version if data exists; otherwise create new file
if datapath.exists():
    with open(datapath, 'r') as fin:
        clientRequestId = fin.readline().strip()
        latestVersion = fin.readline().strip()
else:
    clientRequestId = str(uuid.uuid4())
    latestVersion = '0000000000'
    with open(datapath, 'w') as fout:
        fout.write(clientRequestId + '\n' + latestVersion)
# call version method to check the latest version, and pull new data if version number is different
version = webApiGet('version', 'Worldwide', clientRequestId)
if version['latest'] > latestVersion:
    print('New version of Microsoft 365 worldwide commercial service instance endpoints detected')
    # write the new version number to the data file
    with open(datapath, 'w') as fout:
        fout.write(clientRequestId + '\n' + version['latest'])
    # invoke endpoints method to get the new data
    endpointSets = webApiGet('endpoints', 'Worldwide', clientRequestId)
    # filter results for Allow and Optimize endpoints, and transform these into tuples with port and category
    flatUrls = []
    for endpointSet in endpointSets:
        if endpointSet['category'] in ('Optimize', 'Allow'):
            category = endpointSet['category']
            urls = endpointSet['urls'] if 'urls' in endpointSet else []
            tcpPorts = endpointSet['tcpPorts'] if 'tcpPorts' in endpointSet else ''
            udpPorts = endpointSet['udpPorts'] if 'udpPorts' in endpointSet else ''
            flatUrls.extend([(category, url, tcpPorts, udpPorts) for url in urls])
    flatIps = []
    for endpointSet in endpointSets:
        if endpointSet['category'] in ('Optimize', 'Allow'):
            ips = endpointSet['ips'] if 'ips' in endpointSet else []
            category = endpointSet['category']
            # IPv4 strings have dots while IPv6 strings have colons
            ip4s = [ip for ip in ips if '.' in ip]
            tcpPorts = endpointSet['tcpPorts'] if 'tcpPorts' in endpointSet else ''
            udpPorts = endpointSet['udpPorts'] if 'udpPorts' in endpointSet else ''
            flatIps.extend([(category, ip, tcpPorts, udpPorts) for ip in ip4s])
    print('IPv4 Firewall IP Address Ranges')
    print(','.join(sorted(set([ip for (category, ip, tcpPorts, udpPorts) in flatIps]))))
    print('URLs for Proxy Server')
    print(','.join(sorted(set([url for (category, url, tcpPorts, udpPorts) in flatUrls]))))

    # TODO send mail (e.g. with smtplib/email modules) with new endpoints data
else:
    print('Microsoft 365 worldwide commercial service instance endpoints are up-to-date')

Webszolgáltatás felületének verziószámozása

Frissítések a webszolgáltatási metódusok paramétereire vagy eredményeire a jövőben szükség lehet. A webszolgáltatások általánosan elérhető verziójának közzététele után a Microsoft ésszerű erőfeszítéseket tesz a webszolgáltatás anyagfrissítéseinek előzetes értesítése érdekében. Ha a Microsoft úgy véli, hogy a frissítéshez módosítani kell a webszolgáltatást használó ügyfeleket, a Microsoft az új verzió megjelenése után legalább 12 hónapig megőrzi a webszolgáltatás előző verzióját (egy verziót vissza). Előfordulhat, hogy azok az ügyfelek, akik ez idő alatt nem frissítenek, nem férhetnek hozzá a webszolgáltatáshoz és annak módszereihez. Az ügyfeleknek gondoskodniuk kell arról, hogy a webszolgáltatás ügyfelei hiba nélkül működjenek, ha a következő módosítások történnek a webszolgáltatás felületének aláírásán:

  • Új választható paraméter hozzáadása meglévő webes metódushoz, amelyet a régebbi ügyfeleknek nem kell megadniuk, és nem befolyásolják a régebbi ügyfelek által kapott eredményt.
  • Új elnevezett attribútum hozzáadása az egyik válasz REST-eleméhez vagy más oszlopához a válasz CSV-fájljához.
  • Új webes metódus hozzáadása olyan új névvel, amelyet a régebbi ügyfelek nem hívnak meg.

Értesítések frissítése

Az IP-címek és URL-címek módosításainak a webszolgáltatásban való közzétételekor többféleképpen is kaphat e-mailes értesítéseket.

Proxy PAC-fájl exportálása

A Get-PacFile egy PowerShell-szkript , amely beolvassa a legújabb hálózati végpontokat a Microsoft 365 IP-cím és URL-webszolgáltatásból, és létrehoz egy PAC-mintafájlt. A Get-PacFile használatával kapcsolatos információkért lásd: PAC-fájl használata a létfontosságú Microsoft 365-forgalom közvetlen irányításához.

Microsoft 365 URL-címek és IP-címtartományok

Microsoft 365-végpontok kezelése

A Microsoft 365 hálózati kapcsolati alapelvei

A Microsoft 365 hálózat- és teljesítményhangolása

A Microsoft 365 hálózati adatkapcsolat felmérése

Médiaminőség és hálózati kapcsolati teljesítmény az Skype Vállalati verzió Online-ban

A hálózat optimalizálása az Skype Vállalati verzió Online-hoz

A Microsoft 365 teljesítményhangolása alaptervek és teljesítményelőzmények használatával

Teljesítménnyel kapcsolatos hibaelhárítási terv a Microsoft 365-höz