Веб-служба IP-адресов и URL-адресов в Office 365Office 365 IP Address and URL web service

Веб-служба IP-адресов и URL-адресов в Office 365 позволяет лучше выявлять и разграничивать сетевой трафик Office 365, упрощая оценку, настройку и обновление.The Office 365 IP Address and URL web service helps you better identify and differentiate Office 365 network traffic, making it easier for you to evaluate, configure, and stay up to date with changes. Эта веб-служба на основе REST заменяет собой ранее доступные скачиваемые XML-файлы, поддержка которых была прекращена 2 октября 2018 г.This REST-based web service replaces the previous XML downloadable files, which were phased out on October 2, 2018.

Будучи клиентом или поставщиком устройств сети периметра, вы можете создавать решения с использованием веб-службы для записей FQDN и IP-адресов в Office 365.As a customer or a network perimeter device vendor, you can build against the web service for Office 365 IP address and FQDN entries. Доступ к данным можно получить непосредственно в браузере с помощью этих URL-адресов:You can access the data directly in a web browser using these URLs:

Как клиент вы можете использовать эту веб-службу, чтобы:As a customer, you can use this web service to:

  • обновлять скрипты PowerShell для получения данных конечной точки Office 365 и изменять форматирование для сетевых устройств;Update your PowerShell scripts to obtain Office 365 endpoint data and modify any formatting for your networking devices.
  • применять эту информацию для обновления PAC-файлов, развернутых на клиентских компьютерах.Use this information to update PAC files deployed to client computers.

Как поставщик устройств сети периметра вы можете использовать эту веб-службу, чтобы:As a network perimeter device vendor, you can use this web service to:

  • создавать и тестировать программное обеспечение устройств для скачивания списка с целью автоматической настройки;Create and test device software to download the list for automated configuration.
  • проверять текущую версию;Check for the current version.
  • получать текущие изменения.Get the current changes.

Примечание

Если вы используете Azure ExpressRoute для подключения к Office 365, см. статью Azure ExpressRoute для Office 365, чтобы ознакомиться со службами Office 365, поддерживаемыми в Azure ExpressRoute.If you are using Azure ExpressRoute to connect to Office 365, please review Azure ExpressRoute for Office 365 to familiarize yourself with the Office 365 services supported over Azure ExpressRoute. Чтобы понимать, какие сетевые запросы для приложений Office 365 требуют подключения в Интернету, см. статью URL-адреса и диапазоны IP-адресов Office 365.Also review the article Office 365 URLs and IP address ranges to understand which network requests for Office 365 applications require Internet connectivity. Это поможет вам лучше настроить устройства периметра безопасности.This will help to better configure your perimeter security devices.

Подробнее:For more information, see:

Общие параметрыCommon parameters

Эти параметры являются общими для всех методов веб-службы:These parameters are common across all the web service methods:

  • format=<JSON | CSV>. По умолчанию данные возвращаются в формате JSON.format=<JSON | CSV> — By default, the returned data format is JSON. Используйте этот необязательный параметр для возврата данных в формате данных с разделителями-запятыми (CSV).Use this optional parameter to return the data in comma-separated values (CSV) format.

  • ClientRequestId=<guid>. Обязательный GUID, создаваемый для сопоставления клиента.ClientRequestId=<guid> — A required GUID that you generate for client association. Создайте уникальный GUID для каждого компьютера, который вызывает веб-службу (скрипты, указанные на этой странице, позволяют создать GUID).Generate a unique GUID for each machine that calls the web service (the scripts included on this page generate a GUID for you). Не используйте GUID, показанные в примерах ниже, так как они могут быть заблокированы веб-службой в будущем.Do not use the GUIDs shown in the following examples because they might be blocked by the web service in the future. Формат GUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Здесь "x" означает шестнадцатеричное число.GUID format is xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, where x represents a hexadecimal number.

    Чтобы создать GUID, можно использовать команду PowerShell New-Guid или веб-службу, например Online GUID Generator.To generate a GUID, you can use the New-Guid PowerShell command, or use an online service such as Online GUID Generator.

Веб-метод версииVersion web method

Корпорация Майкрософт обновляет записи IP-адресов и FQDN Office 365 в конце каждого месяца.Microsoft updates the Office 365 IP address and FQDN entries at the end of each month. Иногда обновления публикуются вне цикла для устранения инцидентов, поддержки обновлений для системы безопасности или выполнения других операционных требований.Out-of-band updates are sometimes published due to support incidents, security updates or other operational requirements.

Данным для каждого опубликованного экземпляра назначается номер версии, а веб-метод версии позволяет проверить наличие последней версии каждого экземпляра службы Office 365.The data for each published instance is assigned a version number, and the version web method enables you to check for the latest version of each Office 365 service instance. Рекомендуем проверять версию не чаще, чем раз в час.We recommend that you check the version not more than once an hour.

Параметры для веб-метода версии:Parameters for the version web method are:

  • AllVersions=<true | false>. По умолчанию возвращается последний номер версии.AllVersions=<true | false> — By default, the version returned is the latest. Включите этот необязательный параметр для запрашивания всех версий, опубликованных с момента первого выпуска веб-службы.Include this optional parameter to request all published versions since the web service was first released.
  • Format=<JSON | CSV | RSS>. Кроме форматов JSON и CSV, веб-метод версии поддерживает RSS.Format=<JSON | CSV | RSS> — In addition to the JSON and CSV formats, the version web method also supports RSS. Вы можете использовать этот необязательный параметр вместе с параметром AllVersions=true для запрашивания RSS-канала, который можно применять в Outlook или других средствах чтения RSS.You can use this optional parameter along with the AllVersions=true parameter to request an RSS feed that can be used with Outlook or other RSS readers.
  • Instance=<Worldwide | China | Germany | USGovDoD | USGovGCCHigh>. Этот необязательный параметр указывает экземпляр, для которого возвращается версия.Instance=<Worldwide | China | Germany | USGovDoD | USGovGCCHigh> — This optional parameter specifies the instance to return the version for. Если его опустить, будут возвращены все экземпляры.If omitted, all instances are returned. Допустимые экземпляры: Worldwide, China, Germany, USGovDoD, USGovGCCHigh.Valid instances are: Worldwide, China, Germany, USGovDoD, USGovGCCHigh.

Веб-метод версии не имеет ограничения по частоте и не возвращает HTTP-код отклика 429.The version web method is not rate limited and does not ever return 429 HTTP Response Codes. Отклик для веб-метода версии включает заголовок с контролем кэша, рекомендующий кэширование данных в течение 1 часа.The response to the version web method does include a cache-control header recommending caching of the data for 1 hour. Результатом веб-метода версии может быть отдельная запись или массив записей.The result from the version web method can be a single record or an array of records. Ниже перечислены элементы каждой записи.The elements of each record are:

  • instance — короткое имя экземпляра службы Office 365.instance — The short name of the Office 365 service instance.
  • latest — последняя версия для конечных точек указанного экземпляра.latest — The latest version for endpoints of the specified instance.
  • versions — список всех предыдущих версий для указанного экземпляра.versions — A list of all previous versions for the specified instance. Этот элемент включается, только если параметр AllVersions имеет значение true.This element is only included if the AllVersions parameter is true.

Примеры:Examples:

Пример 1. Запрос URI: https://endpoints.office.com/version?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7Example 1 request URI: https://endpoints.office.com/version?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Этот URI возвращает последнюю версию каждого экземпляра службы Office 365. Пример результата:This URI returns the latest version of each Office 365 service instance. Example result:

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

Важно!

GUID для параметра ClientRequestID в этих URI приведен только в качестве примера. Чтобы попробовать применить URI веб-службы, создайте собственный GUID. GUID, показанные в этих примерах, могут быть заблокированы веб-службой в будущем.The GUID for the ClientRequestID parameter in these URIs are only an example. To try the web service URIs out, generate your own GUID. The GUIDs shown in these examples may be blocked by the web service in the future.

Пример 2. Запрос URI: https://endpoints.office.com/version/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7Example 2 request URI: https://endpoints.office.com/version/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Этот URI возвращает последнюю версию указанного экземпляра службы Office 365. Пример результата:This URI returns the latest version of the specified Office 365 service instance. Example result:

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

Пример 3. Запрос URI: https://endpoints.office.com/version/Worldwide?Format=CSV&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7Example 3 request URI: https://endpoints.office.com/version/Worldwide?Format=CSV&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Этот URI показывает выходные данные в формате CSV. Пример результата:This URI shows output in CSV format. Example result:

instance,latest
Worldwide,2018063000

Пример 4. Запрос URI: https://endpoints.office.com/version/Worldwide?AllVersions=true&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7Example 4 request URI: https://endpoints.office.com/version/Worldwide?AllVersions=true&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Этот URI показывает все более ранние версии, которые были опубликованы для экземпляра службы Office 365 Worldwide. Пример результата:This URI shows all prior versions that have been published for the Office 365 worldwide service instance. Example result:

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

Пример 5. URI RSS-канала: https://endpoints.office.com/version/worldwide?clientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7&allVersions=true&format=RSSExample 5 RSS Feed URI: https://endpoints.office.com/version/worldwide?clientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7&allVersions=true&format=RSS

Этот URI показывает RSS-канал опубликованных версий, которые содержат ссылки на список изменений для каждой версии. Пример результата:This URI shows an RSS feed of the published versions that include links to the list of changes for each version. Example result:

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

Веб-метод конечных точекEndpoints web method

Веб-метод конечных точек возвращает все записи для диапазонов IP-адресов и URL-адресов, входящих в службу Office 365.The endpoints web method returns all records for IP address ranges and URLs that make up the Office 365 service. Для настройки сетевого устройства всегда следует использовать новейшие данные от веб-метода конечных точек.The latest data from the endpoints web method should always be used for network device configuration. Корпорация Майкрософт отправляет уведомление за 30 дней до публикации новых дополнений, чтобы вы успели обновить списки управления доступом и списки обхода прокси-сервера.Microsoft provides advance notice 30 days prior to publishing new additions to give you time to update access control lists and proxy server bypass lists. Рекомендуем вызывать веб-метод конечных точек еще раз, только когда веб-метод версии указывает на доступность новой версии данных.We recommend that you only call the endpoints web method again when the version web method indicates that a new version of the data is available.

Параметры веб-метода конечных точек представлены ниже.Parameters for the endpoints web method are:

  • ServiceAreas=<Common | Exchange | SharePoint | Skype>. Список областей обслуживания, разделенных запятыми.ServiceAreas=<Common | Exchange | SharePoint | Skype> — A comma-separated list of service areas. Допустимые элементы: Common, Exchange, SharePoint и Skype.Valid items are Common, Exchange, SharePoint, and Skype. Так как элементы области обслуживания Common обязательны для всех других областей обслуживания, веб-служба всегда включает их.Because Common service area items are a prerequisite for all other service areas, the web service always includes them. Если не включить этот параметр, будут возвращены все области обслуживания.If you do not include this parameter, all service areas are returned.
  • TenantName=<имя_клиента>. Имя клиента Office 365.TenantName=<tenant_name> — Your Office 365 tenant name. Веб-служба получает предоставленное вами имя и вставляет его в части URL-адресов, которые включают имя клиента.The web service takes your provided name and inserts it in parts of URLs that include the tenant name. Если вы не предоставляете имя клиента, эти части URL-адресов будут содержать подстановочный знак (*).If you don't provide a tenant name, those parts of URLs have the wildcard character (*).
  • NoIPv6=<true | false>. Установите для него значение true, чтобы исключить адреса IPv6 из выходных данных, если в вашей сети не используется IPv6.NoIPv6=<true | false> — Set the value to true to exclude IPv6 addresses from the output if you don't use IPv6 in your network.
  • Instance=<Worldwide | China | Germany | USGovDoD | USGovGCCHigh>. Этот обязательный параметр указывает экземпляр, из которого должны быть возвращены конечные точки.Instance=<Worldwide | China | Germany | USGovDoD | USGovGCCHigh> — This required parameter specifies the instance from which to return the endpoints. Допустимые экземпляры: Worldwide, China, Germany, USGovDoD и USGovGCCHigh.Valid instances are: Worldwide, China, Germany, USGovDoD, and USGovGCCHigh.

Если вы вызываете веб-метод конечных точек слишком часто с одного клиентского IP-адреса, то можете получить код HTTP-отклика 429 (слишком большое количество запросов).If you call the endpoints web method too many times from the same client IP address, you might receive HTTP response code 429 (Too Many Requests). Если вы получили этот код отклика, подождите 1 час перед повтором своего запроса или сгенерируйте новый GUID для запроса.If you get this response code, wait 1 hour before repeating your request, or generate a new GUID for the request. Рекомендуется запланировать вызов веб-метода конечных точек, только если веб-метод версии указывает, что доступна новая версия.As a general best practice, only call the endpoints web method when the version web method indicates that a new version is available.

Результат веб-метода конечных точек — массив записей, в котором каждая запись представляет собой определенный набор конечных точек.The result from the endpoints web method is an array of records in which each record represents a specific endpoint set. Элементы каждой записи:The elements for each record are:

  • id — неизменяемый идентификатор набора конечных точек.id — The immutable id number of the endpoint set.
  • serviceArea — область обслуживания, которая является частью Common, Exchange, SharePoint или Skype.serviceArea — The service area that this is part of: Common, Exchange, SharePoint, or Skype.
  • urls — URL-адреса для набора конечных точек.urls — URLs for the endpoint set. Массив JSON записей DNS.A JSON array of DNS records. Если значение не указано, опускается.Omitted if blank.
  • tcpPorts — TCP-порты для набора конечных точек.tcpPorts — TCP ports for the endpoint set. Все элементы портов отформатированы в виде списка портов с разделителями-запятыми или диапазонов портов, разделенных символами дефиса (-).All ports elements are formatted as a comma-separated list of ports or port ranges separated by a dash character (-). Порты применяются ко всем IP-адресам и URL-адресам в наборе конечных точек для данной категории.Ports apply to all IP addresses and all URLs in the endpoint set for a given category. Если значение не указано, опускается.Omitted if blank.
  • udpPorts — порты UDP для диапазонов IP-адресов в этом наборе конечных точек.udpPorts — UDP ports for the IP address ranges in this endpoint set. Если значение не указано, опускается.Omitted if blank.
  • ips — диапазоны IP-адресов, связанные с этим набором конечных точек (с перечисленными портами TCP или UDP).ips — The IP address ranges associated with this endpoint set as associated with the listed TCP or UDP ports. Массив JSON, включающий диапазоны IP-адресов.A JSON array of IP address ranges. Если значение не указано, опускается.Omitted if blank.
  • category — категория возможности подключения к набору конечных точек.category — The connectivity category for the endpoint set. Допустимые значения: Optimize, Allow и Default.Valid values are Optimize, Allow, and Default. Если выходные данные веб-метода конечных точек используются для поиска определенного IP- или URL-адреса, запрос может возвращать несколько категорий.If you search the endpoints web method output for the category of a specific IP address or URL, it is possible that your query will return multiple categories. В таком случае необходимо следовать рекомендациям для категории с наивысшим приоритетом.In such a case, follow the recommendation for the highest priority category. Например, если для конечной точки выводятся значения Optimize и Allow, следует выполнять требования для значения Optimize.For example, if the endpoint appears in both Optimize and Allow, you should follow the requirements for Optimize. Обязательный элемент.Required.
  • expressRoute имеет значение True, если для этого набора конечных точек выполняется маршрутизация через ExpressRoute. В противном случае он получает значение False.expressRoute — True if this endpoint set is routed over ExpressRoute, False if not.
  • required имеет значение True, если этот набор конечных точек требуется для подключения к Office 365.required — True if this endpoint set is required to have connectivity for Office 365 to be supported. Имеет значение False, если этот набор конечных точек необязателен.False if this endpoint set is optional.
  • notes — текст, который в случае необязательных конечных точек описывает функциональность Office 365, которая будет недоступна, если IP- или URL-адреса в этом наборе конечных точек не могут быть доступны на сетевом уровне.notes — For optional endpoints, this text describes Office 365 functionality that would be unavailable if IP addresses or URLs in this endpoint set cannot be accessed at the network layer. Если значение не указано, опускается.Omitted if blank.

Примеры:Examples:

Пример 1. Запрос URI: https://endpoints.office.com/endpoints/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7Example 1 request URI: https://endpoints.office.com/endpoints/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Этот URI получает все конечные точки для экземпляра Office 365 Worldwide для всех рабочих нагрузок.This URI obtains all endpoints for the Office 365 worldwide instance for all workloads. В примере результата показан фрагмент выходных данных:Example result that shows an excerpt of the output:

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

Обратите внимание, что полные выходные данные запроса в этом примере будут содержать другие наборы конечных точек.Note that the full output of the request in this example would contain other endpoint sets.

Пример 2. Запрос URI: https://endpoints.office.com/endpoints/Worldwide?ServiceAreas=Exchange&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7Example 2 request URI: https://endpoints.office.com/endpoints/Worldwide?ServiceAreas=Exchange&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

В этом примере получены конечные точки для экземпляра Office 365 Worldwide в отношении Exchange Online и зависимостей.This example obtains endpoints for the Office 365 Worldwide instance for Exchange Online and dependencies only.

Выходные данные в примере 2 аналогичны таковым в примере 1, но результаты не будут включать конечные точки для SharePoint Online или Skype бизнеса в Интернете.The output for example 2 is similar to example 1 except that the results would not include endpoints for SharePoint Online or Skype for Business Online.

Веб-метод измененийChanges web method

Веб-метод изменений возвращает самые последние опубликованные обновления. Как правило, это изменения диапазонов IP- и URL-адресов за предыдущий месяц.The changes web method returns the most recent updates that have been published, typically the previous month's changes to IP address ranges and URLs.

Наиболее критические изменения в данных конечных точек — это новые URL- и IP-адреса.The most critical changes to endpoints data are new URLs and IP addresses. Неудачная попытка добавить IP-адрес в список управления доступом брандмауэра или добавить URL-адрес в список обхода прокси-сервера может привести к простою пользователей Office 365 за этим сетевым устройством.Failure to add an IP address to a firewall access control list or a URL to a proxy server bypass list can cause an outage for Office 365 users behind that network device. Несмотря на операционные требования, новые конечные точки публикуются в веб-службе за 30 дней до даты подготовки конечных точек к использованию, чтобы вы успели обновить списки управления доступом и списки обхода прокси-сервера.Notwithstanding operational requirements, new endpoints are published to the web service 30 days in advance of the date the endpoints are provisioned for use to give you time to update access control lists and proxy server bypass lists.

Обязательный параметр веб-метода изменений:The required parameter for the changes web method is:

  • Version=<YYYYMMDDNN> — обязательный параметр маршрутизации URL-адресов.Version=<YYYYMMDDNN> — Required URL route parameter. Этим значением является используемая в настоящий момент версия.This value is the version that you have currently implemented. Веб-служба возвращает изменения, внесенные с момента этой версии.The web service will return the changes since that version. Формат: ГГГГММДДЧЧ, где ЧЧ — натуральное число, увеличивающееся, если в один день нужно опубликовать больше одной версии, при этом значение 00 представляет первое обновление дня.The format is YYYYMMDDNN, where NN is a natural number incremented if there are multiple versions required to be published on a single day, with 00 representing the first update for a given day. Веб-служба требует, чтобы параметр version содержал ровно 10 цифр.The web service requires the version parameter to contain exactly 10 digits.

Веб-метод изменений ограничен по частоте аналогично веб-методу конечных точек.The changes web method is rate limited in the same way as the endpoints web method. Если вы получили код отклика HTTP 429, подождите 1 час перед повтором своего запроса или сгенерируйте новый GUID для запроса.If you receive a 429 HTTP response code, wait 1 hour before repeating your request or generate a new GUID for the request.

Результат веб-метода изменений — массив записей, в котором каждая запись представляет собой изменение в определенной версии конечных точек.The result from the changes web method is an array of records in which each record represents a change in a specific version of the endpoints. Элементы каждой записи:The elements for each record are:

  • id: неизменяемый идентификатор записи изменения.id — The immutable id of the change record.
  • endpointSetId: идентификатор записи набора конечных точек, который был изменен.endpointSetId — The ID of the endpoint set record that is changed.
  • disposition: описание того, как именно изменена запись набора конечных точек.disposition — Describes what the change did to the endpoint set record. Значения: change, add или remove.Values are change, add, or remove.
  • impact: не все изменения будут одинаково важны для каждой среды.impact — Not all changes will be equally important to every environment. Данный элемент описывает ожидаемое влияние на среду периметра корпоративной сети в результате этого изменения.This element describes the expected impact to an enterprise network perimeter environment as a result of this change. Этот элемент включается только в записи изменений версии 2018112800 и более поздних.This element is included only in change records of version 2018112800 and later. Доступны указанные далее варианты для элемента impact. AddedIp: IP-адрес был добавлен в Office 365 и будет доступен в службе в ближайшее время.Options for the impact are: — AddedIp – An IP address was added to Office 365 and will be live on the service soon. Этот элемент представляет изменения, которые вам необходимо внести для брандмауэра или другого устройства периметра 3 уровня сети.This represents a change you need to take on a firewall or other layer 3 network perimeter device. Если вы не добавили этот элемент перед началом его использования, могут возникать сбои.If you don’t add this before we start using it, you may experience an outage. AddedUrl: URL-адрес был добавлен в Office 365 и будет доступен в службе в ближайшее время.— AddedUrl – A URL was added to Office 365 and will be live on the service soon. Этот элемент представляет изменения, которые вам необходимо внести для прокси-сервера или устройства периметра сети, анализирующего URL-адреса.This represents a change you need to take on a proxy server or URL parsing network perimeter device. Если вы не добавили этот URL-адрес перед началом его использования, могут возникать сбои.If you don’t add this URL before we start using it, you may experience an outage. AddedIpAndUrl: IP-адрес и URL-адрес были добавлены.— AddedIpAndUrl — Both an IP address and a URL were added. Этот элемент представляет изменение, которое вам необходимо внести на устройстве 3 уровня брандмауэра, прокси-сервере или устройстве анализа URL-адреса.This represents a change you need to take on either a firewall layer 3 device or a proxy server or URL parsing device. Если вы не добавили эту пару IP- и URL-адресов перед началом ее использования, могут возникать сбои.If you don’t add this IP/URL pair before we start using it, you may experience an outage. RemovedIpOrUrl: минимум один IP- или URL-адрес удален из Office 365.— RemovedIpOrUrl – At least one IP address or URL was removed from Office 365. Удалите конечные точки сети со своих устройств периметра, но четкого срока, когда вы должны это сделать, не установлено.Remove the network endpoints from your perimeter devices, but there’s no deadline for you to do this. ChangedIsExpressRoute: изменен атрибут поддержки ExpressRoute.— ChangedIsExpressRoute – The ExpressRoute support attribute was changed. Если вы используете ExpressRoute, может потребоваться выполнить определенные действия в зависимости от вашей конфигурации.If you use ExpressRoute, you might need to take action depending on your configuration. MovedIpOrUrl: мы перенесли IP-адрес или URL-адрес в другой набор конечных точек.— MovedIpOrUrl – We moved an IP address or Url between this endpoint set and another one. Как правило, никаких дополнительных действий не требуется.Generally no action is required. RemovedDuplicateIpOrUrl: мы удалили повторяющийся IP- или URL-адрес, но он по-прежнему опубликован для Office 365.— RemovedDuplicateIpOrUrl – We removed a duplicate IP address or Url but it’s still published for Office 365. Как правило, никаких дополнительных действий не требуется.Generally no action is required. OtherNonPriorityChanges: мы изменили что-то менее критическое, чем все прочие параметры (например, содержимое поля заметки).— OtherNonPriorityChanges – We changed something less critical than all of the other options, such as the contents of a note field.
  • version — версия опубликованного набора конечных точек, в который внесено изменение.version — The version of the published endpoint set in which the change was introduced. Формат номеров версий: ГГГГММДДЧЧ, где ЧЧ — натуральное число, увеличивающееся, если в один день нужно опубликовать больше одной версии.Version numbers are of the format YYYYMMDDNN, where NN is a natural number incremented if there are multiple versions required to be published on a single day.
  • previous — подструктура с подробным указанием предыдущих значений измененных элементов в наборе конечных точек.previous — A substructure detailing previous values of changed elements on the endpoint set. Не будет включена для новых добавляемых наборов конечных точек.This will not be included for newly added endpoint sets. Включает ExpressRoute, serviceArea, category, required, tcpPorts, udpPorts и notes.Includes ExpressRoute, serviceArea, category, required, tcpPorts, udpPorts, and notes.
  • current — подструктура с подробным указанием обновленных значений измененных элементов в наборе конечных точек.current — A substructure detailing updated values of changes elements on the endpoint set. Включает ExpressRoute, serviceArea, category, required, tcpPorts, udpPorts и notes.Includes ExpressRoute, serviceArea, category, required, tcpPorts, udpPorts, and notes.
  • add — подструктура с подробным указанием элементов, добавляемых в коллекции наборов конечных точек.add — A substructure detailing items to be added to endpoint set collections. Опускается, если добавлений нет.Omitted if there are no additions. effectiveDate определяет дату начала использования добавлений в службе.— effectiveDate — Defines the data when the additions will be live in the service. ips — элементы, добавляемые в массив ips.— ips — Items to be added to the ips array. urls — элементы, добавляемые в массив urls.— urls- Items to be added to the urls array.
  • remove — подструктура с подробным указанием элементов, удаляемых из набора конечных точек.remove — A substructure detailing items to be removed from the endpoint set. Опускается, если удаленных элементов нет.Omitted if there are no removals. ips — элементы, удаляемые из массива ips.— ips — Items to be removed from the ips array. urls — элементы, удаляемые из массива urls.— urls- Items to be removed from the urls array.

Примеры:Examples:

Пример 1. Запрос URI: https://endpoints.office.com/changes/worldwide/0000000000?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7Example 1 request URI: https://endpoints.office.com/changes/worldwide/0000000000?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Запрашивает все предыдущие изменения в экземпляре службы Office 365 Worldwide. Пример результата:This requests all previous changes to the Office 365 worldwide service instance. Example result:

[
 {
  "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. Запрос URI: https://endpoints.office.com/changes/worldwide/2018062700?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7Example 2 request URI: https://endpoints.office.com/changes/worldwide/2018062700?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Запрашивает изменения, внесенные в экземпляр Office 365 Worldwide после выхода указанной версии. В этом случае указанная версия является последней. Пример результата:This requests changes since the specified version to the Office 365 Worldwide instance. In this case, the version specified is the latest. Example result:

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

Пример скрипта PowerShellExample PowerShell Script

Этот скрипт PowerShell позволяет узнать, нужно ли выполнить действия для обновленных данных.You can run this PowerShell script to see if there are actions you need to take for updated data. Этот скрипт можно запустить в качестве запланированной задачи, чтобы проверить наличие обновления версии.You can run this script as a scheduled task to check for a version update. Чтобы избежать чрезмерной нагрузки на веб-службу, не запускайте этот скрипт чаще одного раза в час.To avoid excessive load on the web service, try not to run the script more than once an hour.

Этот скрипт выполняет следующее:The script does the following:

  • Проверяет номер версии текущих конечных точек экземпляра Office 365 Worldwide, вызывая API REST веб-службы.Checks the version number of the current Office 365 Worldwide instance endpoints by calling the web service REST API.

  • Проверяет наличие текущего файла версии по адресу $Env:TEMP\O365_endpoints_latestversion.txt.Checks for a current version file at $Env:TEMP\O365_endpoints_latestversion.txt. Как правило, путь для глобальной переменной $Env:TEMP — C:\Users\<username>\AppData\Local\Temp.The path of the global variable $Env:TEMP is usually C:\Users\<username>\AppData\Local\Temp.

  • Если этот скрипт выполняется впервые, он возвращает текущую версию и все текущие IP- и URL-адреса, записывает версию конечных точек в файл $Env:TEMP\O365_endpoints_latestversion.txt, а выходные данные конечных точек — в файл $Env:TEMP\O365_endpoints_data.txt.If this is the first time the script has been run, the script returns the current version and all current IP addresses and URLs, writes the endpoints version to the file $Env:TEMP\O365_endpoints_latestversion.txt and the endpoints data output to the file $Env:TEMP\O365_endpoints_data.txt. Вы можете изменить путь и/или имя выходного файла, изменив следующие строки:You can modify the path and/or name of the output file by editing these lines:

    $versionpath = $Env:TEMP + "\O365_endpoints_latestversion.txt"
    $datapath = $Env:TEMP + "\O365_endpoints_data.txt"
    
  • Если при каждом последующем выполнении скрипта последняя версия веб-службы идентична версии в файле O365_endpoints_latestversion.txt, скрипт завершает работу, не внося каких-либо изменений.On each subsequent execution of the script, if the latest web service version is identical to the version in the O365_endpoints_latestversion.txt file, the script exits without making any changes.

  • Если последняя версия веб-службы новее версии в файле O365_endpoints_latestversion.txt, скрипт возвращает конечные точки и фильтры для конечных точек категорий Allow и Optimize, обновляет версию в файле O365_endpoints_latestversion.txt и записывает обновленные данные в файл O365_endpoints_data.txt.When the latest web service version is newer than the version in the O365_endpoints_latestversion.txt file, the script returns the endpoints and filters for the Allow and Optimize category endpoints, updates the version in the O365_endpoints_latestversion.txt file, and writes the updated data to the O365_endpoints_data.txt file.

Скрипт создает уникальный ClientRequestId для компьютера, на котором выполняется, и повторно использует этот идентификатор для нескольких вызовов.The script generates a unique ClientRequestId for the computer it is executed on, and reuses this ID across multiple calls. Этот идентификатор хранится в файле O365_endpoints_latestversion.txt.This ID is stored in the O365_endpoints_latestversion.txt file.

Запуск скрипта PowerShellTo run the PowerShell script

  1. Скопируйте скрипт и сохраните его на локальном жестком диске или в папке со скриптами под именем Get-O365WebServiceUpdates.ps1.Copy the script and save it to your local hard drive or script location as Get-O365WebServiceUpdates.ps1.

  2. Выполните скрипт в предпочитаемом редакторе скриптов, например VS Code или интегрированной среде сценариев PowerShell, или из консоли PowerShell с помощью следующей команды:Execute the script in your preferred script editor such as the PowerShell ISE or VS Code, or from a PowerShell console using the following command:

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

    Отсутствуют параметры для передачи в скрипт.There are no parameters to pass to the script.

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

Пример скрипта на PythonExample Python Script

Ниже показан скрипт на Python, протестированный с использованием Python 3.6.3 на Windows 10. Он позволяет узнать, нужно ли выполнить действия для обновленных данных, проверяя номер версии для конечных точек экземпляра Office 365 Worldwide. Если изменение есть, скрипт скачивает конечные точки и фильтрует результаты для категорий Allow и Optimize. Он также использует уникальный ClientRequestId для нескольких вызовов и сохраняет последнюю версию, обнаруженную во временном файле. Вам нужно вызывать этот скрипт раз в час для проверки наличия обновления версии.Here is a Python script, tested with Python 3.6.3 on Windows 10, that you can run to see if there are actions you need to take for updated data. This script checks the version number for the Office 365 Worldwide instance endpoints. When there is a change, it downloads the endpoints and filters for the Allow and Optimize category endpoints. It also uses a unique ClientRequestId across multiple calls and saves the latest version found in a temporary file. You should call this script once an hour to check for a version update.

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

Управление версиями интерфейса веб-службыWeb Service interface versioning

В будущем могут понадобиться обновления параметров или результатов для этих методов веб-служб.Updates to the parameters or results for these web service methods may be required in the future. После публикации общедоступной версии веб-служб корпорация Майкрософт примет разумные меры для заблаговременного уведомления о существенных обновлениях веб-службы.After the general availability version of these web services is published, Microsoft will make reasonable efforts to provide advance notice of material updates to the web service. Если корпорация Майкрософт сочтет, что обновление потребует изменений клиентов, использующих веб-службы, она сохранит доступ к предыдущей версии веб-службы в течение как минимум 12 месяцев после выпуска новой версии.When Microsoft believes that an update will require changes to clients using the web service, Microsoft will keep the previous version (one version back) of the web service available for at least 12 months after the release of the new version. Пользователи, которые не выполнят обновление в течение этого времени, могут лишиться доступа к веб-службе и ее методам.Customers who do not upgrade during that time may be unable to access the web service and its methods. Пользователи должны убедиться, что клиенты веб-службы продолжат работать без ошибок, если такие изменения будут внесены в подпись интерфейса веб-службы:Customers must ensure that clients of the web service continue working without error if the following changes are made to the web service interface signature:

  • Добавление нового необязательного параметра к существующему веб-методу, который необязательно должны предоставлять старые клиенты и который не влияет на результат, получаемый старым клиентом.Adding a new optional parameter to an existing web method that doesn't have to be provided by older clients and doesn't impact the result an older client receives.
  • Добавление нового именованного атрибута в один из элементов REST отклика или дополнительных столбцов в файл CSV отклика.Adding a new named attribute in one of the response REST items or additional columns to the response CSV.
  • Добавление нового веб-метода с новым именем, который не вызывается старыми клиентами.Adding a new web method with a new name that is not called by the older clients.

Уведомления об обновленияхUpdate notifications

Вы можете использовать несколько различных методов, чтобы получать по электронной почте уведомления о публикации изменений IP- и URL-адресов в веб-службе.You can use a few different methods to get email notifications when changes to the IP addresses and URLs are published to the web service.

Экспорт PAC-файла прокси-сервераExporting a Proxy PAC file

Get-PacFile — это скрипт PowerShell, который считывает последние конечные точки сети из IP-адреса и веб-службы URL-адресов Office 365 и создает пример PAC-файла.Get-PacFile is a PowerShell script that reads the latest network endpoints from the Office 365 IP Address and URL web service and creates a sample PAC file. Сведения об использовании этого скрипта см. в статье Использование PAC-файла для прямой маршрутизации обязательного трафика Office 365.For information on using Get-PacFile, see Use a PAC file for direct routing of vital Office 365 traffic.

URL-адреса и диапазоны IP-адресов для Office 365Office 365 URLs and IP address ranges

Управление конечными точками Office 365Managing Office 365 endpoints

Вопросы и ответы о конечных точках Office 365Office 365 endpoints FAQ

Принципы сетевого подключения к Office 365Office 365 Network Connectivity Principles

Сеть Office 365 и настройка производительностиOffice 365 network and performance tuning

Оценка сетевого подключения к Office 365Assessing Office 365 network connectivity

Качество мультимедиа и характеристики сетевого подключения в случае Skype для бизнеса OnlineMedia Quality and Network Connectivity Performance in Skype for Business Online

Оптимизация сети для Skype для бизнеса OnlineOptimizing your network for Skype for Business Online

Настройка производительности Office 365 с помощью базовых показателей и журнала производительностиOffice 365 performance tuning using baselines and performance history

План устранения проблем с производительностью Office 365Performance troubleshooting plan for Office 365