Webová služba Ip adresa a adresa URL Microsoftu 365

Webová služba Microsoft 365 IP adresa a adresa URL pomáhá lépe identifikovat a odlišit síťový provoz Microsoftu 365 a usnadňuje vyhodnocování, konfiguraci a udržování aktuálního stavu změn. Tato webová služba založená na REST nahrazuje předchozí soubory XML ke stažení, které byly vyřazeny 2. října 2018.

Jako zákazník nebo dodavatel hraničního síťového zařízení můžete s využitím webové služby vytvářet položky IP adresy a plně kvalifikovaného názvu domény Microsoftu 365. K datům můžete přistupovat přímo ve webovém prohlížeči pomocí těchto adres URL:

Jako zákazník můžete tuto webovou službu použít k:

  • Aktualizujte skripty PowerShellu, abyste získali data koncového bodu Microsoftu 365, a upravte formátování síťových zařízení.
  • Tyto informace slouží k aktualizaci souborů PAC nasazených do klientských počítačů.

Jako dodavatel hraničního síťového zařízení můžete tuto webovou službu použít k:

  • Vytvořte a otestujte software zařízení a stáhněte si seznam pro automatizovanou konfiguraci.
  • Zkontrolujte aktuální verzi.
  • Získejte aktuální změny.

Poznámka

Pokud pro připojení k Microsoftu 365 používáte Azure ExpressRoute, přečtěte si téma Azure ExpressRoute pro Microsoft 365 a seznamte se se službami Microsoft 365 podporovanými přes Azure ExpressRoute. Přečtěte si také článek Adresy URL a rozsahy IP adres Microsoft 365, kde zjistíte, které síťové požadavky pro aplikace Microsoft 365 vyžadují připojení k internetu. To vám pomůže lépe nakonfigurovat hraniční zabezpečovací zařízení.

Další informace najdete tady:

Běžné parametry

Tyto parametry jsou společné pro všechny metody webové služby:

  • format=<JSON | CSV> – ve výchozím nastavení je vrácený formát dat JSON. Tento volitelný parametr použijte k vrácení dat ve formátu hodnot oddělených čárkami (CSV).

  • ClientRequestId=<guid> – požadovaný identifikátor GUID, který vygenerujete pro přidružení klienta. Vygenerujte jedinečný identifikátor GUID pro každý počítač, který volá webovou službu (skripty zahrnuté na této stránce za vás vygenerují identifikátor GUID). Nepoužívejte identifikátory GUID uvedené v následujících příkladech, protože je webová služba může v budoucnu zablokovat. Formát GUID je xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx, kde x představuje šestnáctkové číslo.

    Pokud chcete vygenerovat identifikátor GUID, můžete použít příkaz PowerShellu New-Guid nebo online službu, jako je online generátor GUID.

Webová metoda verze

Microsoft aktualizuje IP adresu Microsoft 365 a položky plně kvalifikovaného názvu domény na začátku každého měsíce. Vzdálené aktualizace se někdy publikují kvůli incidentům podpory, aktualizacím zabezpečení nebo jiným provozním požadavkům.

Data pro každou publikovanou instanci mají přiřazené číslo verze a webová metoda verze umožňuje zkontrolovat nejnovější verzi každé instance služby Microsoft 365. Doporučujeme zkontrolovat verzi maximálně jednou za hodinu.

Parametry webové metody verze jsou:

  • AllVersions=<true | false> – Ve výchozím nastavení je vrácená verze nejnovější. Zahrňte tento volitelný parametr, pokud chcete požadovat všechny publikované verze od prvního vydání webové služby.
  • Format=<JSON | CSV | RSS> – kromě formátů JSON a CSV podporuje webová metoda verze také RSS. Tento volitelný parametr můžete použít spolu s parametrem AllVersions=true k vyžádání informačního kanálu RSS, který lze použít s Outlookem nebo jinými čtečkami RSS.
  • Instance=<Celosvětově | Čína | USGovDoD | USGovGCCHigh> – Tento volitelný parametr určuje instanci, pro která se má vrátit verze. Pokud je vynechán, vrátí se všechny instance. Platné instance jsou: Worldwide, China, USGovDoD, USGovGCCHigh.

Webová metoda verze není omezená rychlostí a nikdy nevrací kódy odpovědi HTTP 429. Odpověď na webovou metodu verze obsahuje hlavičku cache-control, která doporučuje ukládání dat do mezipaměti po dobu 1 hodiny. Výsledkem webové metody verze může být jeden záznam nebo pole záznamů. Prvky každého záznamu jsou:

  • instance – krátký název instance služby Microsoft 365.
  • latest – nejnovější verze koncových bodů zadané instance.
  • versions – seznam všech předchozích verzí pro zadanou instanci. Tento prvek je zahrnut pouze v případě, že allVersions parametr je true.

Příklady webových metod verze

Příklad 1 identifikátor URI požadavku: https://endpoints.office.com/version?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Tento identifikátor URI vrátí nejnovější verzi každé instance služby Microsoft 365. Příklad výsledku:

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

Důležité

Identifikátor GUID parametru ClientRequestID v těchto identifikátorech URI je pouze příkladem. Pokud chcete vyzkoušet identifikátory URI webové služby, vygenerujte vlastní identifikátor GUID. Identifikátory GUID uvedené v těchto příkladech může webová služba v budoucnu zablokovat.

Příklad 2 identifikátor URI požadavku: https://endpoints.office.com/version/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Tento identifikátor URI vrátí nejnovější verzi zadané instance služby Microsoft 365. Příklad výsledku:

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

Příklad 3 identifikátor URI požadavku: https://endpoints.office.com/version/Worldwide?Format=CSV& ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Tento identifikátor URI zobrazuje výstup ve formátu CSV. Příklad výsledku:

instance,latest
Worldwide,2018063000

Příklad 4 identifikátor URI požadavku: https://endpoints.office.com/version/Worldwide?AllVersions=true& ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Tento identifikátor URI zobrazuje všechny předchozí verze publikované pro instanci služby Microsoft 365 worldwide. Příklad výsledku:

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

Příklad 5 Identifikátor URI informačního kanálu RSS: https://endpoints.office.com/version/worldwide?clientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7& allVersions=true&format=RSS

Tento identifikátor URI zobrazuje informační kanál RSS publikovaných verzí, které obsahují odkazy na seznam změn pro jednotlivé verze. Příklad výsledku:

<?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>

Webová metoda koncových bodů

Webová metoda koncových bodů vrátí všechny záznamy pro rozsahy IP adres a adresy URL, které tvoří službu Microsoft 365. Pro konfiguraci síťového zařízení by se vždy měla používat nejnovější data z webové metody koncových bodů. Společnost Microsoft poskytuje předběžné oznámení 30 dní před publikováním nových doplňků, abyste měli čas aktualizovat seznamy řízení přístupu a seznamy vynechaných proxy serverů. Doporučujeme znovu volat webovou metodu koncových bodů pouze v případech, kdy webová metoda verze indikuje, že je k dispozici nová verze dat.

Parametry webové metody koncových bodů:

  • ServiceAreas=<Běžné | Výměna | SharePoint | Skype> – seznam oblastí služeb oddělených čárkami. Platné položky jsou Common, Exchange, SharePoint a Skype. Vzhledem k tomu, že položky společné oblasti služby jsou předpokladem pro všechny ostatní oblasti služby, webová služba je vždy zahrnuje. Pokud tento parametr nezadáte, vrátí se všechny oblasti služby.
  • TenantName=<tenant_name> – název vašeho tenanta Microsoftu 365. Webová služba převezme zadaný název a vloží ho do částí adres URL, které obsahují název tenanta. Pokud nezadáte název tenanta, budou mít tyto části adres URL zástupný znak (*).
  • NoIPv6=<true | false> – Nastavením hodnoty na true vyloučíte IPv6 adresy z výstupu, pokud ve své síti nepoužíváte protokol IPv6.
  • Instance=<Celosvětově | Čína | USGovDoD | USGovGCCHigh> – Tento povinný parametr určuje instanci, ze které se mají koncové body vrátit. Platné instance jsou: Worldwide, China, USGovDoD a USGovGCCHigh.

Pokud voláte webovou metodu koncových bodů příliš mnohokrát ze stejné IP adresy klienta, může se zobrazit kód odpovědi HTTP 429 (Příliš mnoho požadavků). Pokud dostanete tento kód odpovědi, počkejte 1 hodinu, než požadavek zopakujete, nebo pro požadavek vygenerujte nový identifikátor GUID. Obecně se doporučuje volat webovou metodu koncových bodů pouze v případě, že webová metoda verze indikuje, že je k dispozici nová verze.

Výsledkem webové metody koncových bodů je pole záznamů, ve kterém každý záznam představuje konkrétní sadu koncových bodů. Prvky pro každý záznam jsou:

  • id – neměnné číslo ID sady koncových bodů.
  • serviceArea – oblast služeb, do které patří: Common, Exchange, SharePoint nebo Skype.
  • urls – adresy URL sady koncových bodů. Pole JSON se záznamy DNS. Vynecháno, pokud je prázdné.
  • tcpPorts – porty TCP pro sadu koncových bodů. Všechny prvky portů jsou formátovány jako seznam portů oddělených čárkami nebo rozsahů portů oddělených pomlčkou (-). Porty platí pro všechny IP adresy a všechny adresy URL v sadě koncových bodů pro danou kategorii. Vynecháno, pokud je prázdné.
  • udpPorts – porty UDP pro rozsahy IP adres v této sadě koncových bodů. Vynecháno, pokud je prázdné.
  • ips – rozsahy IP adres přidružené k této sadě koncových bodů přidružené k uvedeným portům TCP nebo UDP. Pole JSON s rozsahy IP adres. Vynecháno, pokud je prázdné.
  • category – kategorie připojení pro sadu koncových bodů. Platné hodnoty jsou Optimize (Optimalizovat), Allow (Povolit) a Default (Výchozí). Pokud ve výstupu webové metody koncových bodů vyhledáte kategorii konkrétní IP adresy nebo adresy URL, je možné, že dotaz vrátí více kategorií. V takovém případě postupujte podle doporučení pro kategorii s nejvyšší prioritou. Pokud se například koncový bod zobrazí v části Optimalizovat i Povolit, měli byste postupovat podle požadavků na položku Optimalizovat. Požadované.
  • expressRoute – hodnota True , pokud je tato sada koncových bodů směrovaná přes ExpressRoute, false , pokud ne.
  • required – hodnota True , pokud tato sada koncových bodů vyžaduje připojení, aby bylo možné podporovat Microsoft 365. Nepravda, pokud je tato sada koncových bodů volitelná.
  • poznámky – Pro volitelné koncové body tento text popisuje funkce Microsoftu 365, které by byly nedostupné, pokud by ip adresy nebo adresy URL v této sadě koncových bodů nebyly dostupné na síťové vrstvě. Vynecháno, pokud je prázdné.

Příklady webových metod koncových bodů

Příklad 1 identifikátor URI požadavku: https://endpoints.office.com/endpoints/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Tento identifikátor URI získá všechny koncové body pro instanci Microsoftu 365 worldwide pro všechny úlohy. Příklad výsledku, který ukazuje výňatek z výstupu:

[
 {
  "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"
   ],

Úplný výstup požadavku v tomto příkladu by obsahoval další sady koncových bodů.

Příklad 2 identifikátor URI požadavku: https://endpoints.office.com/endpoints/Worldwide?ServiceAreas=Exchange& ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Tento příklad získá koncové body pro instanci Microsoft 365 Worldwide pouze pro Exchange Online a závislosti.

Výstup, například 2, je podobný příkladu 1 s tím rozdílem, že výsledky nebudou zahrnovat koncové body pro SharePoint nebo Skype pro firmy Online.

Změní webovou metodu.

Webová metoda changes vrátí nejnovější aktualizace, které byly publikovány, obvykle změny rozsahů IP adres a adres URL provedené v předchozím měsíci.

Nejdůležitějšími změnami dat koncových bodů jsou nové adresy URL a IP adresy. Selhání přidání IP adresy do seznamu řízení přístupu brány firewall nebo adresy URL na seznam vynechat proxy server může způsobit výpadek uživatelů Microsoftu 365 za tímto síťovým zařízením. Bez ohledu na provozní požadavky se nové koncové body publikují do webové služby 30 dní před datem, kdy jsou koncové body zřízené pro použití, abyste měli čas na aktualizaci seznamů řízení přístupu a seznamů vynechaných proxy serverů.

Požadovaný parametr pro webovou metodu changes je:

  • Version=<YYYYMMDDNN> – povinný parametr trasy adresy URL. Tato hodnota je verze, kterou jste aktuálně implementovali. Webová služba vrátí změny od této verze. Formát je RRRRMMDDNN, kde NN je přirozené číslo, které se zvýší, pokud existuje více verzí, které musí být publikovány v jeden den, přičemž 00 představuje první aktualizaci pro daný den. Webová služba vyžaduje, aby parametr verze obsahoval přesně 10 číslic.

Webová metoda změn je rychlost omezená stejným způsobem jako webová metoda koncových bodů. Pokud obdržíte kód odpovědi HTTP 429, počkejte 1 hodinu, než požadavek zopakujete, nebo pro požadavek vygenerujte nový identifikátor GUID.

Výsledkem webové metody changes je pole záznamů, ve kterém každý záznam představuje změnu v konkrétní verzi koncových bodů. Prvky pro každý záznam jsou:

  • id – neměnné ID záznamu změny.
  • endpointSetId – ID záznamu sady koncových bodů, který se změnil.
  • disposition – popisuje, co změna udělala se záznamem sady koncových bodů. Hodnoty se mění, přidávají nebo odebírají.
  • dopad – Ne všechny změny budou stejně důležité pro každé prostředí. Tento prvek popisuje očekávaný dopad na hraniční prostředí podnikové sítě v důsledku této změny. Tento prvek je zahrnut pouze v záznamech změn verze 2018112800 a novějších. Možnosti dopadu: — AddedIp – IP adresa byla přidána do Microsoftu 365 a brzy bude ve službě aktivní. To představuje změnu, kterou musíte provést na bráně firewall nebo jiném hraničním zařízení sítě vrstvy 3. Pokud ho nepřidáte předtím, než ho začneme používat, může dojít k výpadku. — AddedUrl – adresa URL byla přidána do Microsoftu 365 a brzy bude ve službě aktivní. To představuje změnu, kterou musíte provést na proxy serveru nebo na hraničním síťovém zařízení parsující adresy URL. Pokud tuto adresu URL nepřidáte předtím, než ji začneme používat, může dojít k výpadku. — AddedIpAndUrl – byla přidána IP adresa i adresa URL. To představuje změnu, kterou musíte provést na zařízení brány firewall vrstvy 3, proxy serveru nebo zařízení pro analýzu adres URL. Pokud tento pár IP/URL nepřidáte předtím, než ho začneme používat, může dojít k výpadku. — RemovedIpOrUrl – z Microsoftu 365 se odebrala aspoň jedna IP adresa nebo adresa URL. Odeberte koncové body sítě z hraničních zařízení, ale neexistuje žádný termín, abyste to mohli udělat. — ChangedIsExpressRoute – Změnil se atribut podpory ExpressRoute. Pokud používáte ExpressRoute, možná budete muset provést akci v závislosti na vaší konfiguraci. — MovedIpOrUrl – mezi touto sadou koncových bodů a jinou jsme přesunuli IP adresu nebo adresu URL. Obecně se nevyžaduje žádná akce. — RemovedDuplicateIpOrUrl – Odebrali jsme duplicitní IP adresu nebo adresu URL, ale pořád je publikovaná pro Microsoft 365. Obecně se nevyžaduje žádná akce. – OtherNonPriorityChanges – změnili jsme něco méně důležitého než všechny ostatní možnosti, například obsah pole poznámky.
  • version – verze sady publikovaných koncových bodů, ve které byla změna zavedena. Čísla verzí jsou ve formátu RRRRMMDDNN, kde NN je přirozené číslo, které se zvýší, pokud existuje více verzí, které se musí publikovat v jednom dni.
  • previous – dílčí struktura s podrobnostmi o předchozích hodnotách změněných prvků v sadě koncových bodů. Tato možnost nebude zahrnuta u nově přidaných sad koncových bodů. Zahrnuje ExpressRoute, serviceArea, category, required, tcpPorts, udpPorts a notes.
  • current – dílčí struktura s podrobnostmi aktualizovaných hodnot elementů změn v sadě koncových bodů. Zahrnuje ExpressRoute, serviceArea, category, required, tcpPorts, udpPorts a notes.
  • add – dílčí struktura s podrobnostmi o položkách, které se mají přidat do kolekcí sady koncových bodů. Vynecháno, pokud nejsou k dispozici žádné doplňky. — effectiveDate – Definuje data, kdy budou sčítání ve službě aktivní. — ips — Položky, které se mají přidat do pole ips . — urls - Položky, které mají být přidány do pole urls .
  • remove – dílčí struktura s podrobnostmi o položkách, které se mají odebrat ze sady koncových bodů. Vynechá se, pokud nedošlo k žádnému odebrání. — ips – položky, které mají být odebrány z pole ips . — urls - Položky, které mají být odebrány z pole url.

Změny příkladů webových metod

Příklad 1 identifikátor URI požadavku: https://endpoints.office.com/changes/worldwide/0000000000?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Tím si vyžádáte všechny předchozí změny instance služby Microsoft 365 worldwide. Příklad výsledku:

[
 {
  "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":
     [

Příklad 2 identifikátor URI požadavku: https://endpoints.office.com/changes/worldwide/2018062700?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

To požádá o změnu od zadané verze na instanci Microsoftu 365 Worldwide. V tomto případě je zadaná verze nejnovější. Příklad výsledku:

[
  {
    "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"]
    }
  }
]

Ukázkový skript PowerShellu

Spuštěním tohoto skriptu PowerShellu můžete zjistit, jestli pro aktualizovaná data není potřeba provést nějaké akce. Tento skript můžete spustit jako naplánovanou úlohu a vyhledat aktualizaci verze. Abyste se vyhnuli nadměrnému zatížení webové služby, pokuste se skript nespouštět více než jednou za hodinu.

Skript provede následující akce:

  • Zkontroluje číslo verze aktuálních koncových bodů instance Microsoftu 365 Worldwide voláním rozhraní REST API webové služby.

  • Zkontroluje aktuální verzi souboru v $Env:TEMP\O365_endpoints_latestversion.txt. Cesta globální proměnné $Env:TEMP je obvykle C:\Users\<uživatelské_jméno>\AppData\Local\Temp.

  • Pokud je skript spuštěn poprvé, vrátí skript aktuální verzi a všechny aktuální IP adresy a adresy URL, zapíše verzi koncových bodů do souboru $Env:TEMP\O365_endpoints_latestversion.txt a výstup dat koncových bodů do souboru $Env:TEMP\O365_endpoints_data.txt. Cestu nebo název výstupního souboru můžete upravit úpravou těchto řádků:

    $versionpath = $Env:TEMP + "\O365_endpoints_latestversion.txt"
    $datapath = $Env:TEMP + "\O365_endpoints_data.txt"
    
  • Pokud je při každém dalším spuštění skriptu nejnovější verze webové služby identická s verzí v souboruO365_endpoints_latestversion.txt , skript se ukončí bez provedení jakýchkoli změn.

  • Pokud je nejnovější verze webové služby novější než verze v souboru O365_endpoints_latestversion.txt , skript vrátí koncové body a filtry pro koncové body kategorie Povolit a Optimalizovat , aktualizuje verzi v souboru O365_endpoints_latestversion.txt a zapíše aktualizovaná data do souboruO365_endpoints_data.txt .

Skript vygeneruje jedinečný identifikátor ClientRequestId pro počítač, na který se spouští, a znovu použije toto ID při více voláních. Toto ID je uloženo v souboru O365_endpoints_latestversion.txt .

Spuštění skriptu PowerShellu

  1. Zkopírujte skript a uložte ho na místní pevný disk nebo do umístění skriptu jakoGet-O365WebServiceUpdates.ps1.

  2. Pomocí následujícího příkazu spusťte skript v preferovaném editoru skriptů, například v prostředí PowerShell ISE nebo VS Code, nebo z konzoly PowerShellu:

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

    Neexistují žádné parametry, které by bylo potřeba předat do skriptu.

<# 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."
}

Ukázkový skript Pythonu

Tady je skript Pythonu otestovaný s Pythonem 3.6.3 na Windows 10, který můžete spustit a zjistit, jestli je potřeba provést nějaké akce pro aktualizovaná data. Tento skript zkontroluje číslo verze koncových bodů instance Microsoftu 365 Worldwide. Když dojde ke změně, stáhne koncové body a filtry pro koncové body kategorie Povolit a Optimalizovat . Používá také jedinečné ClientRequestId napříč několika voláními a ukládá nejnovější verzi nalezenou v dočasném souboru. Voláním tohoto skriptu jednou za hodinu zkontrolujte aktualizaci verze.

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')

Správa verzí rozhraní webové služby

Aktualizace parametrů nebo výsledků pro tyto metody webové služby může být vyžadován v budoucnu. Po publikování verze těchto webových služeb s obecnou dostupností vynabídá Společnost Microsoft přiměřené úsilí, aby předem poskytla oznámení o podstatných aktualizacích webové služby. Pokud se Společnost Microsoft domnívá, že aktualizace bude vyžadovat změny klientů používajících webovou službu, ponechá předchozí verzi (jednu verzi zpět) webové služby k dispozici po dobu nejméně 12 měsíců po vydání nové verze. Zákazníci, kteří během této doby neupgradují, můžou mít přístup k webové službě a jejím metodám. Zákazníci musí zajistit, aby klienti webové služby pokračovali v práci bez chyb, pokud dojde k následujícím změnám podpisu rozhraní webové služby:

  • Přidání nového volitelného parametru do existující webové metody, který nemusí poskytovat starší klienti a nemá vliv na výsledek, který obdrží starší klient.
  • Přidání nového pojmenovaného atributu do jedné z položek REST odpovědi nebo jiných sloupců do souboru CSV odpovědi
  • Přidání nové webové metody s novým názvem, který není volán staršími klienty.

Oznámení o aktualizacích

Když se změny IP adres a adres URL publikují do webové služby, můžete použít několik různých metod, jak dostávat e-mailová oznámení.

Export souboru PAC proxy serveru

Get-PacFile je powershellový skript, který načte nejnovější koncové body sítě z webové služby Ip adresa a adresa URL Microsoftu 365 a vytvoří ukázkový soubor PAC. Informace o použití rutiny Get-PacFile najdete v tématu Použití souboru PAC pro přímé směrování důležitého provozu Microsoftu 365.

Adresy URL a rozsahy IP adres Microsoft 365

Správa koncových bodů Microsoftu 365

Principy síťového připojení Microsoftu 365

Ladění sítě a výkonu Microsoftu 365

Vyhodnocování síťového připojení Microsoftu 365

Kvalita médií a výkon připojení k síti v Skype pro firmy Online

Optimalizace sítě pro Skype pro firmy Online

Ladění výkonu Microsoftu 365 s využitím směrných plánů a historie výkonu

Plán řešení potíží s výkonem pro Microsoft 365