Office 365 IP adresa a webová služba ADRESY URL

Webová služba Office 365 IP adresy a adresy URL vám pomůže lépe identifikovat a odlišit Office 365 síťový provoz, což usnadňuje vyhodnocování, konfiguraci a udržování přehledu o změnách. Tato webová služba založená na REST nahrazuje předchozí soubory ke stažení XML, které byly ukončeny 2. října 2018.

Jako zákazník nebo dodavatel hraničního zařízení sítě můžete vytvořit proti webové službě Office 365 IP adresu a položky plně kvalifikovaného názvu domény. 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 tomuto:

  • Aktualizujte skripty PowerShellu, abyste získali Office 365 data koncového bodu a upravili veškeré 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 zařízení sítě můžete tuto webovou službu použít k tomuto:

  • 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 Office 365 používáte Azure ExpressRoute, projděte si Office 365 Azure ExpressRoute a seznamte se se službami Office 365 podporovanými přes Azure ExpressRoute. Přečtěte si také článek Office 365 adresy URL a rozsahy IP adres, abyste zjistili, které síťové požadavky pro Office 365 aplikace vyžadují připojení k internetu. Pomůže vám to 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:

  • formát=<JSON | CSV> – Ve výchozím nastavení je vrácený formát dat JSON. Pomocí tohoto volitelného parametru můžete vrátit data ve formátu CSV (hodnoty oddělené čárkami).

  • 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 vygenerují identifikátor GUID za vás). Nepoužívejte identifikátory GUID uvedené v následujících příkladech, protože by je webová služba mohla v budoucnu zablokovat. Formát GUID je xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, kde x představuje šestnáctkové číslo.

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

Webová metoda verze

Microsoft aktualizuje IP adresu Office 365 a položky plně kvalifikovaného názvu domény na začátku každého měsíce. Aktualizace mimo síť 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 Office 365. Doporučujeme zkontrolovat verzi ne více než 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 pro vyžádání všech publikovaných verzí od prvního vydání webové služby.
  • Formát=<JSON | CSV | RSS> – Kromě formátů JSON a CSV podporuje webová metoda verze také RSS. Tento volitelný parametr můžete použít společně s parametrem AllVersions=true k vyžádání informačního kanálu RSS, který lze použít s Outlook nebo jinými čtečkami RSS.
  • Instance=<Worldwide | China | USGovDoD | USGovGCCHigh> – Tento volitelný parametr určuje instanci, pro která se má verze vrátit. Pokud tento parametr vynecháte, vrátí se všechny instance. Platné instance jsou: Worldwide, China, USGovDoD, USGovGCCHigh.

Webová metoda verze není rychlost omezená a nikdy nevrací kódy odpovědí HTTP 429. Odpověď na webovou metodu verze obsahuje hlavičku ovládacího prvku mezipaměti, 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 Office 365.
  • latest – nejnovější verze pro koncové body zadané instance.
  • verze – seznam všech předchozích verzí pro zadanou instanci. Tento prvek je zahrnut pouze v případě, že parametr AllVersions je true.

Příklady webových metod verzí

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 Office 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 si vlastní identifikátor GUID. Identifikátory GUID uvedené v těchto příkladech mohou být v budoucnu webovou službou blokovány.

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 Office 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 Office 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ý obsahuje odkazy na seznam změn pro každou verzi. 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 Office 365. Nejnovější data z webové metody koncových bodů by se měla vždy používat pro konfiguraci síťového zařízení. Společnost Microsoft poskytuje předběžné oznámení 30 dní před publikováním nových doplňků, aby vám poskytla čas na aktualizaci seznamů řízení přístupu a seznamů obejití proxy serveru. Doporučujeme znovu volat webovou metodu koncových bodů, pouze pokud webová metoda verze značí, že je k dispozici nová verze dat.

Parametry webové metody koncových bodů:

  • ServiceAreas=<Common | Exchange | SharePoint | Skype> – Čárkami oddělený seznam oblastí služeb. Platné položky jsou Běžné, Exchange, SharePoint a Skype. Vzhledem k tomu, že běžné položky oblasti služeb jsou předpokladem pro všechny ostatní oblasti služeb, webová služba je vždy zahrne. Pokud tento parametr nezadáte, vrátí se všechny oblasti služeb.
  • TenantName=<tenant_name> – název vašeho Office 365 tenanta. 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> – Pokud ve své síti nepoužíváte protokol IPv6, nastavte hodnotu true tak, aby se z výstupu vyloučila adresa IPv6.
  • Instance=<Worldwide | China | 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 webovou metodu koncových bodů voláte 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 se zobrazí tento kód odpovědi, počkejte 1 hodinu, než žádost zopakujete, nebo vygenerujte pro požadavek nový identifikátor GUID. Jako obecný osvědčený postup volejte webovou metodu koncových bodů pouze v případě, že webová metoda verze značí, že je k dispozici nová verze.

Výsledkem webové metody koncových bodů je pole záznamů, ve kterých 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žby, která je součástí: Common, Exchange, SharePoint nebo Skype.
  • urls – adresy URL pro sadu koncových bodů. Pole JSON záznamů 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 rozsahy portů oddělené pomlčkou (-). Porty platí pro všechny IP adresy a všechny adresy URL v koncovém bodu nastaveném 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 rozsahů 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 možnostech Optimalizovat i Povolit, měli byste postupovat podle požadavků pro optimalizaci. Požadované.
  • expressRoute – true , pokud je tato sada koncových bodů směrována přes ExpressRoute, false , pokud ne.
  • required – Hodnota True, pokud tato sada koncových bodů vyžaduje připojení, aby bylo možné Office 365 podporovat. Nepravda , pokud je tato sada koncových bodů nepovinná.
  • poznámky – U volitelných koncových bodů tento text popisuje Office 365 funkce, které by mohly být nedostupné v případě, že IP adresy nebo adresy URL v této sadě koncových bodů nejsou přístupné v 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 Office 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 Office 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 nezahrnují koncové body pro SharePoint Online nebo Skype pro firmy Online.

Změní webovou metodu.

Webová metoda changes vrací nejnovější aktualizace, které byly publikovány, obvykle změny rozsahů IP adres a adres URL 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 do seznamu obejití proxy serveru může způsobit výpadek pro Office 365 uživatele 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 se koncové body zřídí pro použití, aby vám poskytly čas na aktualizaci seznamů řízení přístupu a seznamů obejití proxy serveru.

Požadovaný parametr webové metody changes je:

  • Verze =<YYYYMMDDNN> – Povinný parametr trasy adresy URL. Tato hodnota je verze, kterou jste aktuálně implementovali. Webová služba vrátí změny od verze. Formát je RRRRMMDDNN, kde NN je přirozené číslo zvýšeno, pokud je nutné publikovat v jeden den více verzí, 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ž žádost zopakujete, nebo pro požadavek vygenerujte nový identifikátor GUID.

Výsledkem webové metody změn je pole záznamů, ve kterých 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 verzích. Možnosti dopadu jsou: – AddedIp – IP adresa byla přidána do Office 365 a brzy bude aktivní ve službě. To představuje změnu, kterou je potřeba provést v bráně firewall nebo jiném hraničním zařízení vrstvy 3. Pokud ho před tím, než ho začneme používat, nepřidáte, může dojít k výpadku. – AddedUrl – adresa URL byla přidána do Office 365 a brzy bude aktivní ve službě. To představuje změnu, kterou je potřeba provést na proxy serveru nebo adrese URL při analýze hraničního zařízení sítě. Pokud tuto adresu URL nepřidáte dříve, 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 je potřeba provést na zařízení brány firewall vrstvy 3, proxy serveru nebo zařízení pro analýzu adresy URL. Pokud tento pár IP/URL nepřidáte dříve, než ho začneme používat, může dojít k výpadku. – RemovedIpOrUrl – Z Office 365 byla odebrána alespoň jedna IP adresa nebo adresa URL. Odeberte koncové body sítě z hraničních zařízení, ale nemáte k tomu žádný termín. – 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 sadou koncových bodů jsme přesunuli IP adresu nebo adresu URL. Obecně se nevyžaduje žádná akce. – RemovedDuplicateIpOrUrl – Odebrali jsme duplicitní IP adresu nebo adresu URL, ale stále je publikovaná pro Office 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 publikované sady koncových bodů, ve které byla změna zavedena. Čísla verzí jsou ve formátu RRRRMMDDNN, kde NN je přirozené číslo zvýšeno, pokud existuje více verzí, které musí být publikovány v jeden den.
  • previous – podstruktury s podrobnostmi o předchozích hodnotách změněných prvků v sadě koncových bodů. To nebude zahrnuto pro nově přidané sady koncových bodů. Zahrnuje ExpressRoute, serviceArea, kategorii, povinné, tcpPorts, udpPorts a poznámky.
  • current – dílčí struktura s podrobnostmi o aktualizovaných hodnotách prvků změn v sadě koncových bodů. Zahrnuje ExpressRoute, serviceArea, kategorii, povinné, tcpPorts, udpPorts a poznámky.
  • add – Dílčí struktura s podrobnostmi o položkách, které se mají přidat do kolekcí sady koncových bodů. Vynechán, pokud nejsou k dispozici žádné doplňky. – effectiveDate – definuje data, kdy budou přidání ve službě aktivní. — ips – položky, které se přidají do pole ips . — urls- Položky, které se mají přidat do pole urls .
  • remove – dílčí struktura s podrobnostmi o položkách, které se mají odebrat ze sady koncových bodů. Vynechán, pokud neexistují žádné odebrání. — ips — Položky, které se mají odebrat z pole ips . — urls- Položky, které se mají odebrat z pole urls .

Změní příklady webových metod.

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

To vyžaduje všechny předchozí změny instance služby Office 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 vyžaduje změny od zadané verze na instanci Office 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"]
    }
  }
]

Příklad skriptu PowerShellu

Tento skript PowerShellu můžete spustit a zjistit, jestli pro aktualizovaná data potřebujete provést akce. Tento skript můžete spustit jako naplánovanou úlohu a vyhledat aktualizaci verze. Pokud se chcete vyhnout nadměrnému zatížení webové služby, zkuste 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 Office 365 Worldwide voláním rozhraní REST API webové služby.

  • Vyhledá aktuální soubor verze na $Env:TEMP\O365_endpoints_latestversion.txt. Cesta globální proměnné $Env:TEMP je obvykle C:\Users\<username>\AppData\Local\Temp.

  • Pokud skript spustíte poprvé, skript vrátí 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 následném spuštění skriptu nejnovější verze webové služby stejná jako verze v souboru O365_endpoints_latestversion.txt , skript se ukončí bez 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é Id ClientRequestId pro počítač, na kterém je spuštěný, a znovu použije toto ID napříč více voláními. 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 umístění skriptu jako Get-O365WebServiceUpdates.ps1.

  2. Pomocí následujícího příkazu spusťte skript v upřednostňovaném editoru skriptů, jako je PowerShell ISE nebo VS Code, nebo z konzoly PowerShellu:

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

    Neexistují žádné parametry, které by bylo možné předat skriptu.

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

DESCRIPTION
This script calls the REST API of the Office 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 Office 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 "Office 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 "Office 365 worldwide commercial service instance endpoints are up-to-date."
}

Příklad skriptu Pythonu

Tady je skript Pythonu otestovaný v Pythonu 3.6.3 na Windows 10, který můžete spustit, abyste zjistili, jestli pro aktualizovaná data potřebujete provést určité akce. Tento skript zkontroluje číslo verze pro koncové body instance Office 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říč více voláními a ukládá nejnovější verzi, která se nachází 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 Office 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('Office 365 worldwide commercial service instance endpoints are up-to-date')

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

V budoucnu se můžou vyžadovat aktualizace parametrů nebo výsledků pro tyto metody webové služby. Po publikování obecné verze dostupnosti těchto webových služeb společnost Microsoft vynaloží přiměřené úsilí, aby poskytla předběžné oznámení o materiálových aktualizacích webové služby. Pokud se Microsoft domnívá, že aktualizace bude vyžadovat změny u klientů, kteří používají webovou službu, microsoft zachová předchozí verzi (jednu verzi zpět) webové služby k dispozici po dobu nejméně 12 měsíců od vydání nové verze. Zákazníci, kteří během tohoto období 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 v podpisu rozhraní webové služby dojde k následujícím změnám:

  • Přidání nového volitelného parametru do existující webové metody, kterou 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 aktualizaci

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

Export souboru PAC proxy serveru

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

Rozsahy adres IP a URL Office 365.

Správa koncových bodů Office 365

nejčastější dotazy ke koncovým bodům Office 365

Principy připojení k síti Office 365

Office 365 ladění sítě a výkonu

Posouzení Office 365 připojení k síti

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

Optimalizace sítě pro Skype pro firmy Online

Office 365 ladění výkonu pomocí směrných plánů a historie výkonu

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