Office 365 끝점 관리

참고: 사용자 언어로 가능한 한 빨리 가장 최신의 도움말 콘텐츠를 제공하고자 합니다. 이 페이지는 자동화를 통해 번역되었으며 문법 오류나 부정확한 설명을 포함할 수 있습니다. 이 목적은 콘텐츠가 사용자에게 유용하다는 것입니다. 이 페이지 하단의 정보가 도움이 되었다면 알려주세요. 쉽게 참조할 수 있는 영어 문서가 여기 있습니다.

Office 365 네트워크 연결

2018 /6/7 대용량 사용자 옆에 있는 낮은 대기 시간 송신을 통해 수행 중인 때 가장 잘 수행 하는 신뢰할 수 있는 네트워크 요청 Office 365 에 대 한 연결 구성 합니다. 일부 Office 365 연결에서 연결을 최적화 이점을 얻을 수 있습니다.

  1. 방화벽 허용 목록에서 Office 365 끝점에 대한 연결을 허용하는지 확인합니다.

  2. 프록시 인프라를 사용하여 와일드카드 및 게시되지 않은 대상에 대한 인터넷 연결을 허용합니다.

  3. 최적의 경계 네트워크 구성을 유지합니다.

  4. 연결 상태가 최상인지 확인하세요.

  5. Office 365 네트워크 연결 원칙 안전 하 게 Office 365 트래픽을 관리 하 고 최고의 성능을 가져오기에 대 한 연결 원칙 이해를 참고 하세요.

방화벽 및 프록시를 통해 Office 365에 연결

방화벽의 아웃바운드 허용 목록 업데이트

방화벽을 통해 직접 모든 신뢰할 수 있는 Office 365 네트워크 요청을 보내 모든 추가 패킷 수준 검사 또는 처리를 건너뜀으로써 네트워크를 최적화할 수 있습니다. 그러면 대기 시간으로 인한 성능 저하가 줄어들고 경계 용량 요구 사항이 줄어듭니다. 신뢰하는 네트워크 요청을 선택하는 가장 쉬운 방법은 위의 프록시 탭에서 미리 빌드된 PAC 파일을 사용하는 것입니다.

방화벽에서 아웃바운드 트래픽을 차단하는 경우 이 XML 파일필수로 나열된 모든 IP 및 FQDN이 허용 목록에 포함되는지 확인할 수 있습니다. 모든 서비스에서는 타사 서비스를 사용해야 합니다. Microsoft에서는 인증서 공급자, 콘텐츠 배달 네트워크, DNS 공급자 등과 같은 이러한 타사 서비스의 IP 주소는 제공하지 않습니다. 전체 Office 365 기능을 사용하려면 Microsoft에서 대상에 대해 게시하는 정보의 양과 관계없이 Office 365에서 요청하는 모든 대상에 연결할 수 있어야 합니다.

많은 대상은 IP 주소가 게시되어 있지 않거나 구체적인 정규화된 도메인 이름 없이 와일드카드 도메인으로 나열되므로, 이 기능을 사용하려면 현재 요청되고 있는 IP 주소에 대한 이러한 네트워크 요청을 확인하고 인터넷을 통해 네트워크 요청을 보낼 수 있어야 합니다.

사용자를 대신하여 XML 파일을 구문 분석하고 방화벽을 통해 직접 라우팅하려는 서비스 또는 기능을 기반으로 하여 자동으로 규칙을 업데이트하는 방화벽을 사용하여 프로세스를 자동화합니다. 또는 커뮤니티에서 만들고 Cisco XE 경로 또는 ACL 목록 구성, 일반 텍스트 또는 CSV에 대한 내보내기 옵션으로 XML을 구문 분석하는 Azure 범위 도구를 사용할 수 있습니다.

네트워크 대상에 대한 자세한 설명은 Microsoft의 참조 사이트에서 확인할 수 있으며 RSS 기반 변경 로그를 통해 변경 내용을 구독할 수 있습니다.

PAC 파일을 사용하여 아웃바운드 경로 구성

PAC 또는 WPAD 파일을 사용하여, Office 365와 연결되어 있지만 제공된 IP 주소가 없는 네트워크 요청을 관리할 수 있습니다. 일반적으로 프록시 또는 경계 장치를 통해 전송되는 네트워크 요청은 추가 대기 시간을 발생시킵니다. 프록시 인증이 가장 큰 세금을 발생시키는 반면, 신뢰도 조회 및 패킷 검사 시도와 같은 다른 서비스는 사용자 환경의 성능을 저하시킬 수 있습니다. 또한 이러한 경계 네트워크 장치에는 모든 네트워크 요청을 처리하기 위한 충분한 용량이 필요합니다. 직접 Office 365 네트워크 요청에 대한 프록시 또는 검사 인프라는 건너뛰는 것이 좋습니다.

Microsoft의 PAC 파일 중 하나를 시작 위치로 사용하여 프록시로 전송할 네트워크 트래픽과 방화벽으로 전송할 네트워크 트래픽을 결정합니다. PAC 또는 WPAD 파일을 처음 사용하는 경우 Office 365 컨설턴트 중 한 명이 제공하는 PAC 파일 배포에 관한 이 게시물을 읽어보세요. 이 게시물을 시작 위치로 검토하고 환경에 맞게 편집할 수 있습니다.

PAC 파일 7/10/2018로 업데이트합니다.

첫 번째 예제에서는 인터넷으로만 끝점을 관리하는 권장 방법을 보여줍니다. IP 주소가 게시되는 Office 365 대상의 프록시를 사용하지 않고 프록시로 나머지 네트워크 요청을 보냅니다.

코드 조각:

// JavaScript source code

//July 2018 - Updates go live 1st August2018
//This PAC file contains all FQDNs needed for all services and splits the traffic between those which Microsoft can provide IPs for (so can be sent through a managed firewall with conditional access if desired) and those which IPs cannot be provided for, so need to go to an unrestricted proxy or egress. 
//Due to the use of wildcards, some extra logic is provided to send traffic to the proxy before a 'direct' wildcard is hit.
//Includes Core ProPlus URLs but not Office Mobile/IPAD/IOS/ANDROID fqdns from https://support.office.com/en-gb/article/Network-requests-in-Office-365-ProPlus-eb73fcd1-ca88-4d02-a74b-2dd3a9f3364d
//Every Effort is made to ensure 100% accuracy but this PAC should be used as an example and cross-checked with your needs and the Office 365 URL & IP page
//Intended only for Worldwide Office 365 instances, which the vast majority of customers will be using

function FindProxyForURL(url, host)
{
    // Define proxy server
    var proxyserver = "PROXY 10.10.10.10:8080";
    var proxyserver2 = "PROXY 10.10.10.11:8080";
    // Make host lowercase
    var lhost = host.toLowerCase();
    host = lhost;

    //Catch explicit FQDNs which need the proxy but are covered under wildcarded FQDNs which have IPs. This has to be done first before the wildcard is hit

    if ((shExpMatch(host, "quicktips.skypeforbusiness.com"))    
        || (shExpMatch(host, "*.um.outlook.com"))
        || (shExpMatch(host, "r3.res.office365.com"))
        || (shExpMatch(host, "r3.res.outlook.com"))
        || (shExpMatch(host, "r4.res.office365.com"))
        || (shExpMatch(host, "xsi.outlook.com"))
        || (shExpMatch(host, "r1.res.office365.com")))


    {
        return proxyserver;
    }
        //Send FQDNs which Microsoft provide IPs for direct, so they can be sent via a firewall

    else if ((isPlainHostName(host))
    || (shExpMatch(host, "*.aria.microsoft.com"))    
    || (shExpMatch(host, "*.dc.trouter.io"))
    || (shExpMatch(host, "*.lync.com"))
    || (shExpMatch(host, "*.manage.office.com"))
    || (shExpMatch(host, "*.office365.com"))
    || (shExpMatch(host, "*.onenote.com"))
    || (shExpMatch(host, "*.outlook.com"))
    || (shExpMatch(host, "*.outlook.office.com"))
    || (shExpMatch(host, "*.portal.cloudappsecurity.com"))
    || (shExpMatch(host, "*.protection.office.com"))
    || (shExpMatch(host, "*.sharepoint.com"))
    || (shExpMatch(host, "*.skype.com"))
    || (shExpMatch(host, "*.skypeforbusiness.com"))
    || (shExpMatch(host, "*.svc.ms"))
    || (shExpMatch(host, "*.teams.microsoft.com"))
    || (shExpMatch(host, "*.yammer.com"))
    || (shExpMatch(host, "*.yammerusercontent.com"))    
    || (shExpMatch(host, "*broadcast.officeapps.live.com"))
    || (shExpMatch(host, "*excel.officeapps.live.com"))
    || (shExpMatch(host, "*onenote.officeapps.live.com"))
    || (shExpMatch(host, "*powerpoint.officeapps.live.com"))
    || (shExpMatch(host, "*view.officeapps.live.com"))
    || (shExpMatch(host, "*visio.officeapps.live.com"))
    || (shExpMatch(host, "*word-edit.officeapps.live.com"))
    || (shExpMatch(host, "*word-view.officeapps.live.com"))
    || (shExpMatch(host, "admin.microsoft.com"))    
    || (shExpMatch(host, "account.office.net"))
    || (shExpMatch(host, "adminwebservice.microsoftonline.com"))
    || (shExpMatch(host, "agent.office.net"))
    || (shExpMatch(host, "api.login.microsoftonline.com"))
    || (shExpMatch(host, "api.passwordreset.microsoftonline.com"))
    || (shExpMatch(host, "apc.delve.office.com"))
    || (shExpMatch(host, "aus.delve.office.com"))
    || (shExpMatch(host, "autologon.microsoftazuread-sso.com"))  
    || (shExpMatch(host, "becws.microsoftonline.com"))
    || (shExpMatch(host, "browser.pipe.aria.microsoft.com"))  
    || (shExpMatch(host, "can.delve.office.com"))
    || (shExpMatch(host, "ccs.login.microsoftonline.com"))
    || (shExpMatch(host, "ccs-sdf.login.microsoftonline.com"))
    || (shExpMatch(host, "clientconfig.microsoftonline-p.net"))
    || (shExpMatch(host, "clientlog.portal.office.com"))
    || (shExpMatch(host, "companymanager.microsoftonline.com"))
    || (shExpMatch(host, "cus-000.tasks.osi.office.net"))
    || (shExpMatch(host, "delve.office.com"))
    || (shExpMatch(host, "device.login.microsoftonline.com"))    
    || (shExpMatch(host, "ea-000.tasks.osi.office.net"))
    || (shExpMatch(host, "eur.delve.office.com"))
    || (shExpMatch(host, "eus-zzz.tasks.osi.office.net"))
    || (shExpMatch(host, "gbr.delve.office.com"))    
    || (shExpMatch(host, "hip.microsoftonline-p.net"))
    || (shExpMatch(host, "hipservice.microsoftonline.com"))
    || (shExpMatch(host, "home.office.com"))
    || (shExpMatch(host, "ind.delve.office.com"))
    || (shExpMatch(host, "jpn.delve.office.com"))
    || (shExpMatch(host, "kor.delve.office.com"))
    || (shExpMatch(host, "lam.delve.office.com"))
    || (shExpMatch(host, "login.microsoft.com"))
    || (shExpMatch(host, "login.microsoftonline.com"))
    || (shExpMatch(host, "login.microsoftonline-p.com"))
    || (shExpMatch(host, "login.windows.net"))
    || (shExpMatch(host, "logincert.microsoftonline.com"))
    || (shExpMatch(host, "loginex.microsoftonline.com"))
    || (shExpMatch(host, "login-us.microsoftonline.com"))     
    || (shExpMatch(host, "manage.office.com"))
    || (shExpMatch(host, "mobile.pipe.aria.microsoft.com"))
    || (shExpMatch(host, "nam.delve.office.com"))
    || (shExpMatch(host, "neu-000.tasks.osi.office.net"))
    || (shExpMatch(host, "nexus.microsoftonline-p.com"))
    || (shExpMatch(host, "nexus.officeapps.live.com"))
    || (shExpMatch(host, "nexusrules.officeapps.live.com"))
    || (shExpMatch(host, "office.live.com"))
    || (shExpMatch(host, "officeapps.live.com"))
    || (shExpMatch(host, "passwordreset.microsoftonline.com"))
    || (shExpMatch(host, "portal.microsoftonline.com"))
    || (shExpMatch(host, "portal.office.com"))
    || (shExpMatch(host, "protection.office.com"))
    || (shExpMatch(host, "provisioningapi.microsoftonline.com"))
    || (shExpMatch(host, "scsinstrument-ss-us.trafficmanager.net"))   
    || (shExpMatch(host, "scsquery-ss-asia.trafficmanager.net")) 
    || (shExpMatch(host, "scsquery-ss-eu.trafficmanager.net")) 
    || (shExpMatch(host, "scsquery-ss-us.trafficmanager.net"))
    || (shExpMatch(host, "sea-000.tasks.osi.office.net"))    
    || (shExpMatch(host, "stamp2.login.microsoftonline.com"))
    || (shExpMatch(host, "suite.office.net"))    
    || (shExpMatch(host, "tasks.office.com"))
    || (shExpMatch(host, "teams.microsoft.com"))
    || (shExpMatch(host, "testconnectivity.microsoft.com"))
    || (shExpMatch(host, "webshell.suite.office.com"))
    || (shExpMatch(host, "weu-000.tasks.osi.office.net"))
    || (shExpMatch(host, "wus-000.tasks.osi.office.net"))
    || (shExpMatch(host, "www.office.com")))

      
    {
        return "DIRECT";
    }
    else

        // Send all unknown IP traffic to Proxy for unrestricted access. This section is not necessary if you have a catchall for all other traffic to go to an unfiltered proxy. 
        //However the fqdns required, but for which we dont have IPs for, are listed here incase you need an explicit list.

   if          ((shExpMatch(host, "*.aadrm.com"))
        || (shExpMatch(host, "*.adhybridhealth.azure.com")) 
        || (shExpMatch(host, "*.adl.windows.com"))   
        || (shExpMatch(host, "*.api.microsoftstream.com"))      
        || (shExpMatch(host, "*.assets-yammer.com"))   
        || (shExpMatch(host, "*.azureedge.net"))            
        || (shExpMatch(host, "*.azurerms.com"))
        || (shExpMatch(host, "*.cloudapp.net"))
        || (shExpMatch(host, "*.entrust.net")) 
        || (shExpMatch(host, "*.geotrust.com"))   
        || (shExpMatch(host, "*.helpshift.com"))   
        || (shExpMatch(host, "*.hockeyapp.net"))    
        || (shExpMatch(host, "*.localytics.com"))    
        || (shExpMatch(host, "*.log.optimizely.com"))    
        || (shExpMatch(host, "*.microsoft.com"))
        || (shExpMatch(host, "*.microsoftonline.com"))
        || (shExpMatch(host, "*.microsoftonline-p.com"))
        || (shExpMatch(host, "*.microsoftonline-p.net"))
        || (shExpMatch(host, "*.msecnd.net"))
        || (shExpMatch(host, "*.msedge.net"))      
        || (shExpMatch(host, "*.msocdn.com")) 
        || (shExpMatch(host, "*.mstea.ms"))    
        || (shExpMatch(host, "*.notification.api.microsoftstream.com")) 
        || (shExpMatch(host, "*.o365weve.com"))     
        || (shExpMatch(host, "*.office.com"))   
        || (shExpMatch(host, "*.office.net"))
        || (shExpMatch(host, "*.omniroot.com"))
        || (shExpMatch(host, "*.onmicrosoft.com"))
        || (shExpMatch(host, "*.phonefactor.net"))
        || (shExpMatch(host, "*.public-trust.com"))
        || (shExpMatch(host, "*.search.production.apac.trafficmanager.net"))
        || (shExpMatch(host, "*.search.production.emea.trafficmanager.net"))
        || (shExpMatch(host, "*.search.production.us.trafficmanager.net"))
        || (shExpMatch(host, "*.secure.skypeassets.com"))  
        || (shExpMatch(host, "*.sfbassets.com"))
        || (shExpMatch(host, "*.sharepointonline.com"))
        || (shExpMatch(host, "*.sway.com"))
        || (shExpMatch(host, "*.symcb.com"))
        || (shExpMatch(host, "*.teams.microsoft.com"))  
        || (shExpMatch(host, "*.tenor.com"))  
        || (shExpMatch(host, "*.symcd.com"))     
        || (shExpMatch(host, "*.users.storage.live.com"))
        || (shExpMatch(host, "*.verisign.com"))
        || (shExpMatch(host, "*.verisign.net"))
        || (shExpMatch(host, "*.windows.net"))
        || (shExpMatch(host, "*cdn.onenote.net"))
        || (shExpMatch(host, "account.activedirectory.windowsazure.com"))
        || (shExpMatch(host, "ad.atdmt.com"))
        || (shExpMatch(host, "admin.onedrive.com"))
        || (shExpMatch(host, "ajax.aspnetcdn.com"))
        || (shExpMatch(host, "aka.ms"))
        || (shExpMatch(host, "amp.azure.net"))
        || (shExpMatch(host, "api.microsoftstream.com"))
        || (shExpMatch(host, "apis.live.net"))  
        || (shExpMatch(host, "apps.identrust.com"))  
        || (shExpMatch(host, "assets.onestore.ms"))
        || (shExpMatch(host, "auth.gfx.ms"))
        || (shExpMatch(host, "cacerts.digicert.com"))        
        || (shExpMatch(host, "cdn.odc.officeapps.live.com"))  
        || (shExpMatch(host, "cdn.onenote.net"))
        || (shExpMatch(host, "cdn.optimizely.com")) 
        || (shExpMatch(host, "cert.int-x3.letsencrypt.org"))
        || (shExpMatch(host, "client.hip.live.com"))
        || (shExpMatch(host, "connect.facebook.net"))        
        || (shExpMatch(host, "crl.globalsign.com"))
        || (shExpMatch(host, "crl.globalsign.net"))
        || (shExpMatch(host, "crl.identrust.com"))    
        || (shExpMatch(host, "crl3.digicert.com"))  
        || (shExpMatch(host, "crl4.digicert.com"))
        || (shExpMatch(host, "cus-odc.officeapps.live.com"))              
        || (shExpMatch(host, "cus-roaming.officeapps.live.com"))
        || (shExpMatch(host, "dc.services.visualstudio.com"))
        || (shExpMatch(host, "domains.live.com"))
        || (shExpMatch(host, "ea-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "ea-roaming.officeapps.live.com"))          
        || (shExpMatch(host, "ecn.dev.virtualearth.net "))   
        || (shExpMatch(host, "eus2-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "eus2-roaming.officeapps.live.com"))             
        || (shExpMatch(host, "eus-odc.officeapps.live.com"))         
        || (shExpMatch(host, "eus-www.sway-cdn.com"))
        || (shExpMatch(host, "eus-www.sway-extensions.com"))        
        || (shExpMatch(host, "firstpartyapps.oaspapps.com"))
        || (shExpMatch(host, "g.live.com"))
        || (shExpMatch(host, "groupsapi2-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "groupsapi3-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "groupsapi4-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "groupsapi-prod.outlookgroups.ms"))   
        || (shExpMatch(host, "isrg.trustid.ocsp.identrust.com"))   
        || (shExpMatch(host, "liverdcxstorage.blob.core.windowsazure.com"))
        || (shExpMatch(host, "management.azure.com"))        
        || (shExpMatch(host, "mem.gfx.ms"))
        || (shExpMatch(host, "mrodevicemgr.officeapps.live.com"))      
        || (shExpMatch(host, "ncus-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "ncus-roaming.officeapps.live.com"))                
        || (shExpMatch(host, "neu-000.ocws.officeapps.live.com")) 
        || (shExpMatch(host, "neu-odc.officeapps.live.com"))         
        || (shExpMatch(host, "neu-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "nexus.officeapps.live.com"))
        || (shExpMatch(host, "nexusrules.officeapps.live.com"))
        || (shExpMatch(host, "nps.onyx.azure.net"))
        || (shExpMatch(host, "ocsa.officeapps.live.com"))
        || (shExpMatch(host, "ocsp.digicert.com"))
        || (shExpMatch(host, "ocspx.digicert.com"))
        || (shExpMatch(host, "ocsp.globalsign.com"))
        || (shExpMatch(host, "ocsp.int-x3.letsencrypt.org"))
        || (shExpMatch(host, "ocsp.msocsp.com"))       
        || (shExpMatch(host, "ocsp2.globalsign.com"))
        || (shExpMatch(host, "ocsredir.officeapps.live.com"))
        || (shExpMatch(host, "ocws.officeapps.live.com"))
        || (shExpMatch(host, "odc.officeapps.live.com"))  
        || (shExpMatch(host, "officecdn.microsoft.com.edgekey.net"))            
        || (shExpMatch(host, "officecdn.microsoft.com.edgesuite.net"))              
        || (shExpMatch(host, "ols.officeapps.live.com"))  
        || (shExpMatch(host, "oneclient.sfx.ms"))
        || (shExpMatch(host, "outlook.uservoice.com"))
        || (shExpMatch(host, "platform.linkedin.com"))
        || (shExpMatch(host, "policykeyservice.dc.ad.msft.net"))
        || (shExpMatch(host, "prod.firstpartyapps.oaspapps.com.akadns.net")) 
        || (shExpMatch(host, "r1.res.office365.com"))
        || (shExpMatch(host, "r3.res.office365.com"))
        || (shExpMatch(host, "r4.res.office365.com"))
        || (shExpMatch(host, "s.ytimg.com"))
        || (shExpMatch(host, "scus-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "scus-odc.officeapps.live.com"))         
        || (shExpMatch(host, "scus-roaming.officeapps.live.com"))                 
        || (shExpMatch(host, "sea-odc.officeapps.live.com"))         
        || (shExpMatch(host, "sea-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "secure.globalsign.com"))
        || (shExpMatch(host, "site-cdn.onenote.net"))
        || (shExpMatch(host, "skydrive.wns.windows.com"))
        || (shExpMatch(host, "skypemaprdsitus.trafficmanager.net"))   
        || (shExpMatch(host, "spoprod-a.akamaihd.net"))  
        || (shExpMatch(host, "ssw.live.com"))
        || (shExpMatch(host, "staffhub.ms"))
        || (shExpMatch(host, "staffhub.uservoice.com"))
        || (shExpMatch(host, "storage.live.com"))
        || (shExpMatch(host, "sway.com")) 
        || (shExpMatch(host, "teams.microsoft.com"))              
        || (shExpMatch(host, "telemetry.remoteapp.windowsazure.com"))         
        || (shExpMatch(host, "telemetryservice.firstpartyapps.oaspapps.com"))    
        || (shExpMatch(host, "web.microsoftstream.com"))         
        || (shExpMatch(host, "weu-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "weu-odc.officeapps.live.com"))         
        || (shExpMatch(host, "weu-roaming.officeapps.live.com"))
        || (shExpMatch(host, "wu.client.hip.live.com"))
        || (shExpMatch(host, "wus-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "wus-firstpartyapps.oaspapps.com"))  
        || (shExpMatch(host, "wus-odc.officeapps.live.com"))         
        || (shExpMatch(host, "wus-roaming.officeapps.live.com"))
        || (shExpMatch(host, "wus-www.sway-cdn.com"))
        || (shExpMatch(host, "wus-www.sway-extensions.com"))   
        || (shExpMatch(host, "www.digicert.com"))
        || (shExpMatch(host, "www.google-analytics.com"))
        || (shExpMatch(host, "www.onedrive.com"))
        || (shExpMatch(host, "www.remoteapp.windowsazure.com"))
        || (shExpMatch(host, "www.youtube.com"))
        || (shExpMatch(host, "xsi.outlook.com")))


        

    {
        return proxyserver;
    }

    //Catchall for all other traffic to another proxy 

else return proxyserver;
}

두 번째 예제에서는 ExpressRoute 및 인터넷 회로를 사용할 수 있는 때 연결을 관리하는 권장 방법을 보여줍니다. ExpressRoute 회로에 ExpressRoute 보급 대상을 보내고 프록시에 인터넷 전용 보급 대상을 보냅니다.

코드 조각:

// JavaScript source code
//July 2018 Update
// Consolidated FQDNs of URLS which are reachable via Microsoft peering over ExpressRoute. All other traffic sent to a proxy in this example. 
//Every Effort is made to ensure 100% accuracy but this PAC should be used as an example and cross-checked with your traffic flow needs and the Office 365 URL & IP page. 
//Intended only for Worldwide Office 365 instances, which the vast majority of customers will be using
//PAC presumes all Office 365 BGP communities/route filters are allowed.

function FindProxyForURL(url, host)
{
    // Define proxy server
    var proxyserver = "PROXY 10.10.10.10:8080";
    // Make host lowercase
    var lhost = host.toLowerCase();
    host = lhost;
    //SUB-FQDNs of ExpressRoutable wildcards which need to be explicitly sent to the proxy at the top of the PAC because they arent ER routable
    if ((shExpMatch(host, "xsi.outlook.com"))
        || (shExpMatch(host, "r3.res.outlook.com"))
        || (shExpMatch(host, "quicktips.skypeforbusiness.com"))
        || (shExpMatch(host, "*.um.outlook.com")))					
    {
        return proxyserver;
    }
        //EXPRESS ROUTE DIRECT
    else if ((isPlainHostName(host))  
            || (shExpMatch(host, "*.aria.microsoft.com"))             
            || (shExpMatch(host, "*.dc.trouter.io"))
            || (shExpMatch(host, "*.lync.com"))
            || (shExpMatch(host, "*.manage.office.com"))
            || (shExpMatch(host, "*.outlook.com"))
            || (shExpMatch(host, "*.outlook.office.com"))
            || (shExpMatch(host, "*.portal.cloudappsecurity.com"))
            || (shExpMatch(host, "*.protection.office.com"))
            || (shExpMatch(host, "*.protection.outlook.com"))
            || (shExpMatch(host, "*.sharepoint.com")) 
            || (shExpMatch(host, "*.skype.com")) 
            || (shExpMatch(host, "*.skypeforbusiness.com")) 
            || (shExpMatch(host, "*.svc.ms"))   
            || (shExpMatch(host, "*.teams.microsoft.com"))  
            || (shExpMatch(host, "*broadcast.officeapps.live.com"))
            || (shExpMatch(host, "*excel.officeapps.live.com"))
            || (shExpMatch(host, "*onenote.officeapps.live.com"))
            || (shExpMatch(host, "*powerpoint.officeapps.live.com"))
            || (shExpMatch(host, "*view.officeapps.live.com"))                                 
            || (shExpMatch(host, "*visio.officeapps.live.com"))
            || (shExpMatch(host, "*word-edit.officeapps.live.com"))
            || (shExpMatch(host, "*word-view.officeapps.live.com"))
            || (shExpMatch(host, "account.office.net"))
            || (shExpMatch(host, "adminwebservice.microsoftonline.com"))
            || (shExpMatch(host, "agent.office.net"))  
            || (shExpMatch(host, "apc.delve.office.com"))
            || (shExpMatch(host, "api.login.microsoftonline.com"))
            || (shExpMatch(host, "api.passwordreset.microsoftonline.com"))
            || (shExpMatch(host, "aus.delve.office.com"))
            || (shExpMatch(host, "autologon.microsoftazuread-sso.com")) 
            || (shExpMatch(host, "becws.microsoftonline.com"))
            || (shExpMatch(host, "browser.pipe.aria.microsoft.com"))  
            || (shExpMatch(host, "can.delve.office.com")) 
            || (shExpMatch(host, "ccs.login.microsoftonline.com"))  
            || (shExpMatch(host, "ccs-sdf.login.microsoftonline.com"))
            || (shExpMatch(host, "clientconfig.microsoftonline-p.net"))
            || (shExpMatch(host, "companymanager.microsoftonline.com"))
            || (shExpMatch(host, "delve.office.com"))
            || (shExpMatch(host, "device.login.microsoftonline.com"))
            || (shExpMatch(host, "domains.live.com")) 
            || (shExpMatch(host, "eur.delve.office.com"))
            || (shExpMatch(host, "gbr.delve.office.com"))
            || (shExpMatch(host, "hip.microsoftonline-p.net"))
            || (shExpMatch(host, "hipservice.microsoftonline.com"))
            || (shExpMatch(host, "home.office.com"))
            || (shExpMatch(host, "ind.delve.office.com"))
            || (shExpMatch(host, "jpn.delve.office.com"))
            || (shExpMatch(host, "kor.delve.office.com"))
            || (shExpMatch(host, "lam.delve.office.com"))
            || (shExpMatch(host, "login.microsoft.com"))
            || (shExpMatch(host, "login.microsoftonline.com"))
            || (shExpMatch(host, "login.microsoftonline-p.net"))
            || (shExpMatch(host, "login.windows.net"))
            || (shExpMatch(host, "logincert.microsoftonline.com"))
            || (shExpMatch(host, "loginex.microsoftonline.com"))
            || (shExpMatch(host, "login-us.microsoftonline.com"))
            || (shExpMatch(host, "manage.office.com"))
            || (shExpMatch(host, "mobile.pipe.aria.microsoft.com"))
            || (shExpMatch(host, "nam.delve.office.com"))
            || (shExpMatch(host, "nexus.microsoftonline-p.net"))
            || (shExpMatch(host, "office.live.com")) 
            || (shExpMatch(host, "officeapps.live.com")) 
            || (shExpMatch(host, "outlook.office365.com")) 
            || (shExpMatch(host, "passwordreset.microsoftonline.com"))
            || (shExpMatch(host, "portal.office.com"))
            || (shExpMatch(host, "protection.office.com"))
            || (shExpMatch(host, "provisioningapi.microsoftonline.com"))
            || (shExpMatch(host, "scsinstrument-ss-us.trafficmanager.net")) 
            || (shExpMatch(host, "scsquery-ss-asia.trafficmanager.net"))
            || (shExpMatch(host, "scsquery-ss-eu.trafficmanager.net")) 
            || (shExpMatch(host, "scsquery-ss-us.trafficmanager.net"))  
            || (shExpMatch(host, "signup.microsoft.com"))
            || (shExpMatch(host, "smtp.office365.com"))  
            || (shExpMatch(host, "stamp2.login.microsoftonline.com"))
            || (shExpMatch(host, "suite.office.net")) 
            || (shExpMatch(host, "teams.microsoft.com")) 
            || (shExpMatch(host, "webshell.suite.office.com")) 
            || (shExpMatch(host, "www.office.com")))             

       
    {
        return "DIRECT";
    }

        //Catchall for all other traffic to proxy
    else
    {
        return proxyserver;
    }
}

세 번째 예제에서는 Office 365와 연결된 모든 네트워크 요청을 단일 대상으로 보내는 방법을 보여줍니다. 이 방법은 일반적으로 Office 365 네트워크 요청에 대한 모든 검사를 무시하는 데 사용되며, 사용자 지정에 사용하는 PAC 형식의 목록에서 모든 게시된 끝점이 있는 형식도 제공합니다.

코드 조각:

// JavaScript source code
//July 2018 Update new URLS go live 1st August 2018 -
//Consolidated FQDNs required to access Office 365 - All services including optional components covered and elements covered under wildcards removed. 
//Some repeated domains have been consoliodated into unpublished wildcards in order to keep the file as small as possible.
//Includes Core ProPlus URLs but not Office Mobile/IPAD/IOS/ANDROID fqdns from https://support.office.com/en-gb/article/Network-requests-in-Office-365-ProPlus-eb73fcd1-ca88-4d02-a74b-2dd3a9f3364d
//Every Effort is made to ensure 100% accuracy but this PAC should be used as an example and cross-checked with your needs and the Office 365 URL & IP page
//Intended only for Worldwide Office 365 instances, which the vast majority of customers will be using

function FindProxyForURL(url, host)
{
    // Define proxy server
    var proxyserver = "PROXY 10.10.10.10:8080";
    // Make host lowercase
    var lhost = host.toLowerCase();
    host = lhost;

   if  ((shExpMatch(host, "*.aadrm.com"))
        || (shExpMatch(host, "*.adhybridhealth.azure.com"))
        || (shExpMatch(host, "*.adl.windows.com"))
        || (shExpMatch(host, "*.api.microsoftstream.com"))  
        || (shExpMatch(host, "*.assets-yammer.com"))
        || (shExpMatch(host, "autologon.microsoftazuread-sso.com"))  
        || (shExpMatch(host, "*.azureedge.net"))   
        || (shExpMatch(host, "*.azurerms.com"))
        || (shExpMatch(host, "*.cloudapp.net")) 
        || (shExpMatch(host, "*.dc.trouter.io"))
        || (shExpMatch(host, "*.entrust.net")) 
        || (shExpMatch(host, "*.geotrust.com"))
        || (shExpMatch(host, "*.helpshift.com"))
        || (shExpMatch(host, "*.hockeyapp.net"))       
        || (shExpMatch(host, "*.localytics.com"))
        || (shExpMatch(host, "*.log.optimizely.com"))     
        || (shExpMatch(host, "*.lync.com"))
        || (shExpMatch(host, "*.microsoft.com"))
        || (shExpMatch(host, "*.microsoftonline.com"))
        || (shExpMatch(host, "*.microsoftonline-p.com"))
        || (shExpMatch(host, "*.microsoftonline-p.net"))
        || (shExpMatch(host, "*.msecnd.net"))
        || (shExpMatch(host, "*.msedge.net"))
        || (shExpMatch(host, "*.msocdn.com"))
        || (shExpMatch(host, "*.mstea.ms"))
        || (shExpMatch(host, "*.o365weve.com"))
        || (shExpMatch(host, "*.office.com"))
        || (shExpMatch(host, "*.office.net"))
        || (shExpMatch(host, "*.office365.com"))
        || (shExpMatch(host, "*.omniroot.com"))
        || (shExpMatch(host, "*.onenote.com"))
        || (shExpMatch(host, "*.onmicrosoft.com"))
        || (shExpMatch(host, "*.outlook.com"))
        || (shExpMatch(host, "*.phonefactor.net")) 
        || (shExpMatch(host, "*.portal.cloudappsecurity.com"))
        || (shExpMatch(host, "*.public-trust.com"))
        || (shExpMatch(host, "*.search.production.apac.trafficmanager.net"))
        || (shExpMatch(host, "*.search.production.emea.trafficmanager.net"))
        || (shExpMatch(host, "*.search.production.us.trafficmanager.net"))
        || (shExpMatch(host, "*.secure.skypeassets.com"))
        || (shExpMatch(host, "*.sfbassets.com"))  
        || (shExpMatch(host, "*.sharepoint.com"))
        || (shExpMatch(host, "*.sharepointonline.com"))
        || (shExpMatch(host, "*.skype.com"))
        || (shExpMatch(host, "*.skypeforbusiness.com"))
        || (shExpMatch(host, "*.svc.ms")) 
        || (shExpMatch(host, "*.sway.com"))
        || (shExpMatch(host, "*.symcb.com"))
        || (shExpMatch(host, "*.symcd.com"))
        || (shExpMatch(host, "*.tenor.com"))
        || (shExpMatch(host, "*.users.storage.live.com"))
        || (shExpMatch(host, "*.verisign.com"))
        || (shExpMatch(host, "*.verisign.net"))
        || (shExpMatch(host, "*.windows.net"))
        || (shExpMatch(host, "*.yammer.com"))
        || (shExpMatch(host, "*.yammerusercontent.com"))         
        || (shExpMatch(host, "*broadcast.officeapps.live.com"))
        || (shExpMatch(host, "*cdn.onenote.net"))
        || (shExpMatch(host, "*excel.officeapps.live.com"))
        || (shExpMatch(host, "*onenote.officeapps.live.com"))
        || (shExpMatch(host, "*powerpoint.officeapps.live.com"))
        || (shExpMatch(host, "*view.officeapps.live.com"))
        || (shExpMatch(host, "*visio.officeapps.live.com"))
        || (shExpMatch(host, "*word-edit.officeapps.live.com"))
        || (shExpMatch(host, "*word-view.officeapps.live.com"))    
        || (shExpMatch(host, "account.activedirectory.windowsazure.com"))
        || (shExpMatch(host, "ad.atdmt.com"))
        || (shExpMatch(host, "admin.onedrive.com"))
        || (shExpMatch(host, "ajax.aspnetcdn.com"))
        || (shExpMatch(host, "aka.ms"))
        || (shExpMatch(host, "amp.azure.net"))
        || (shExpMatch(host, "api.microsoftstream.com"))
        || (shExpMatch(host, "apis.live.net"))
        || (shExpMatch(host, "apps.identrust.com")) 
        || (shExpMatch(host, "assets.onestore.ms"))
        || (shExpMatch(host, "auth.gfx.ms"))
        || (shExpMatch(host, "cacerts.digicert.com"))    
        || (shExpMatch(host, "cdn.odc.officeapps.live.com"))  
        || (shExpMatch(host, "cdn.onenote.net"))
        || (shExpMatch(host, "cdn.optimizely.com"))
        || (shExpMatch(host, "cert.int-x3.letsencrypt.org"))
        || (shExpMatch(host, "client.hip.live.com"))     
        || (shExpMatch(host, "connect.facebook.net"))
        || (shExpMatch(host, "crl.globalsign.com"))
        || (shExpMatch(host, "crl.globalsign.net"))
        || (shExpMatch(host, "crl.identrust.com"))    
        || (shExpMatch(host, "crl3.digicert.com"))  
        || (shExpMatch(host, "crl4.digicert.com"))
        || (shExpMatch(host, "cus-odc.officeapps.live.com"))              
        || (shExpMatch(host, "cus-roaming.officeapps.live.com"))      
        || (shExpMatch(host, "dc.services.visualstudio.com"))
        || (shExpMatch(host, "domains.live.com"))
        || (shExpMatch(host, "ea-000.ocws.officeapps.live.com")) 
        || (shExpMatch(host, "ea-roaming.officeapps.live.com"))           
        || (shExpMatch(host, "ecn.dev.virtualearth.net"))
        || (shExpMatch(host, "eus2-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "eus2-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "eus-odc.officeapps.live.com"))              
        || (shExpMatch(host, "eus-www.sway-cdn.com"))
        || (shExpMatch(host, "eus-www.sway-extensions.com"))
        || (shExpMatch(host, "firstpartyapps.oaspapps.com"))
        || (shExpMatch(host, "g.live.com"))
        || (shExpMatch(host, "groupsapi2-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "groupsapi3-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "groupsapi4-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "groupsapi-prod.outlookgroups.ms"))  
        || (shExpMatch(host, "isrg.trustid.ocsp.identrust.com"))
        || (shExpMatch(host, "liverdcxstorage.blob.core.windowsazure.com"))
        || (shExpMatch(host, "management.azure.com"))
        || (shExpMatch(host, "mem.gfx.ms"))
        || (shExpMatch(host, "mrodevicemgr.officeapps.live.com"))               
        || (shExpMatch(host, "ncus-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "ncus-roaming.officeapps.live.com"))                 
        || (shExpMatch(host, "neu-000.ocws.officeapps.live.com")) 
        || (shExpMatch(host, "neu-odc.officeapps.live.com"))              
        || (shExpMatch(host, "neu-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "nexus.officeapps.live.com"))
        || (shExpMatch(host, "nexusrules.officeapps.live.com"))
        || (shExpMatch(host, "nps.onyx.azure.net"))   
        || (shExpMatch(host, "ocsa.officeapps.live.com"))
        || (shExpMatch(host, "ocsp.digicert.com"))
        || (shExpMatch(host, "ocsp.globalsign.com"))
        || (shExpMatch(host, "ocsp.int-x3.letsencrypt.org"))
        || (shExpMatch(host, "ocsp.msocsp.com"))     
        || (shExpMatch(host, "ocsp2.globalsign.com")) 
        || (shExpMatch(host, "ocspx.digicert.com"))
        || (shExpMatch(host, "ocsredir.officeapps.live.com"))
        || (shExpMatch(host, "ocws.officeapps.live.com"))
        || (shExpMatch(host, "odc.officeapps.live.com"))  
        || (shExpMatch(host, "office.live.com"))
        || (shExpMatch(host, "officeapps.live.com"))
        || (shExpMatch(host, "officecdn.microsoft.com.edgekey.net"))              
        || (shExpMatch(host, "officecdn.microsoft.com.edgesuite.net"))
        || (shExpMatch(host, "ols.officeapps.live.com"))  
        || (shExpMatch(host, "oneclient.sfx.ms"))
        || (shExpMatch(host, "outlook.uservoice.com"))
        || (shExpMatch(host, "platform.linkedin.com"))
        || (shExpMatch(host, "policykeyservice.dc.ad.msft.net"))
        || (shExpMatch(host, "prod.firstpartyapps.oaspapps.com.akadns.net"))
        || (shExpMatch(host, "s.ytimg.com"))
        || (shExpMatch(host, "s0.assets-yammer.com"))  
        || (shExpMatch(host, "scsinstrument-ss-us.trafficmanager.net")) 
        || (shExpMatch(host, "scsquery-ss-asia.trafficmanager.net"))
        || (shExpMatch(host, "scsquery-ss-eu.trafficmanager.net")) 
        || (shExpMatch(host, "scsquery-ss-us.trafficmanager.net")) 
        || (shExpMatch(host, "scus-000.ocws.officeapps.live.com"))
        || (shExpMatch(host, "scus-odc.officeapps.live.com"))         
        || (shExpMatch(host, "scus-roaming.officeapps.live.com"))                 
        || (shExpMatch(host, "sea-odc.officeapps.live.com"))              
        || (shExpMatch(host, "sea-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "secure.globalsign.com"))
        || (shExpMatch(host, "site-cdn.onenote.net"))
        || (shExpMatch(host, "skydrive.wns.windows.com"))
        || (shExpMatch(host, "skypemaprdsitus.trafficmanager.net"))
        || (shExpMatch(host, "spoprod-a.akamaihd.net"))
        || (shExpMatch(host, "ssw.live.com"))
        || (shExpMatch(host, "staffhub.ms"))
        || (shExpMatch(host, "staffhub.uservoice.com"))    
        || (shExpMatch(host, "storage.live.com"))
        || (shExpMatch(host, "telemetry.remoteapp.windowsazure.com"))
        || (shExpMatch(host, "telemetryservice.firstpartyapps.oaspapps.com"))
        || (shExpMatch(host, "web.microsoftstream.com"))   
        || (shExpMatch(host, "weu-000.ocws.officeapps.live.com")) 
        || (shExpMatch(host, "weu-odc.officeapps.live.com"))              
        || (shExpMatch(host, "weu-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "wu.client.hip.live.com"))
        || (shExpMatch(host, "wus-000.ocws.officeapps.live.com"))  
        || (shExpMatch(host, "wus-firstpartyapps.oaspapps.com"))  
        || (shExpMatch(host, "wus-odc.officeapps.live.com"))              
        || (shExpMatch(host, "wus-roaming.officeapps.live.com"))              
        || (shExpMatch(host, "wus-www.sway-cdn.com"))
        || (shExpMatch(host, "wus-www.sway-extensions.com"))        
        || (shExpMatch(host, "www.digicert.com"))
        || (shExpMatch(host, "www.google-analytics.com"))
        || (shExpMatch(host, "www.onedrive.com"))
        || (shExpMatch(host, "www.remoteapp.windowsazure.com"))
        || (shExpMatch(host, "www.youtube.com")))




    {
        return proxyserver;
    }

        //Catchall for all other traffic to another proxy

    else return "PROXY 10.10.10.11:8080";
}

다음은 커뮤니티에서 제공하는 몇 가지 추가 도구입니다. 공유하고 싶은 도구를 만들었다면 의견에 메모를 남겨주세요. 이 문서에서 참조된 커뮤니티 도구는 Microsoft에서 공식적으로 지원하거나 유지 관리하지 않으며 편의를 위해 제공된 것입니다.

  • 이 도구는 프로세스를 관리하기 위하여 커뮤니티에서 만들어진 도구 중 가장 오래된 것으로, Office 365 커뮤니티의 구성원에 의해 만들어졌습니다. 다음의 링크에서 다운로드하세요.

  • 내보낼 수 있는 방화벽 규칙이 있는 개념 증명: Microsoft 클라우드 IP API.

  • IT praktyk: RSS 변환XML 변환.

  • Peter Abele: 다운로드.

  • 네트워크 분석을 사용하여 프록시 인프라를 무시해야 하는 네트워크 요청을 확인합니다. 이러한 끝점에서 보내고 받은 네트워크 트래픽의 양으로 인해 고객 프록시를 무시하는 데 사용되는 가장 일반적인 FQDN에는 다음이 포함됩니다.

    outlook.office365.com
    outlook.office.com
    <tenant-name>.sharepoint.com
    <tenant-name>-my.sharepoint.com
    <tenant-name>-<app>.sharepoint.com
    *.Lync.com
    
  • 방화벽으로 직접 전송되는 모든 네트워크 요청에는 요청이 통과하도록 허용하는 방화벽 허용 목록에 해당 항목이 있어야 합니다.

경계 네트워크 통합

Microsoft의 WAN이 전 세계에서 가장 큰 백본 중 하나라는 사실을 알고 계셨나요?

이는 사실입니다. 이 거대한 네트워크는 사용자가 전 세계 어느 곳에 있든 관계없이 Office 365 및 기타 클라우드 서비스가 작동하게 만듭니다. Microsoft 네트워크는 개인적으로 소유된 수천 경로 마일 다크 파이버 및 데이터 센터와 에지 노드 간 다중 테라비트 연결이 있는 고대역폭의 대기 시간이 짧은 장애 조치(failover) 가능 링크로 구성됩니다. 이러한 모든 요소는 Microsoft 클라우드 서비스를 더 쉽게 사용할 수 있게 해줍니다.

이와 같은 네트워크를 통해 가능한 한 빨리 조직의 장치를 Microsoft 네트워크에 연결하기를 원합니다. 전 세계적으로 2,500개가 넘는 ISP 피어링 관계와 70개의 클라이언트에서 로그인을 통해 사용자의 네트워크에서 Microsoft 네트워크로 원활하게 연결할 수 있습니다. ISP의 피어링 관계가 최적인지 확인하는 데 시간을 들일 필요가 없습니다. Microsoft 네트워크에 대한 좋은 피어링 분배와 좋지 않은 피어링 분배의 몇 가지는 예가 여기에 나와 있습니다.

장비에 따라 Office 365 응용 프로그램 네트워크 요청을 최적으로 처리하기 위한 네트워크의 장치를 수동으로 또는 자동으로 구성할 수 있습니다. Office 365 네트워크 트래픽을 최적으로 처리하기 위해 수행해야 할 구성 변경은 환경에 따라 다릅니다. Office 365 네트워크 요청은 다음을 허용하는 네트워크 구성에서 이점을 누릴 수 있습니다.

  • 덜 중요한 네트워크 트래픽에 대한 우선 순위.

  • Microsoft 네트워크에서 제공되는 짧은 대시 기간을 활용하면서 느린 WAN 링크에 대한 백홀링을 방지하기 위해 로컬 송신으로 라우팅. 고객 참여에 따른 우수한 논의가 여기에 나와 있습니다.

  • 로컬 송신과 가까운 DNS를 사용하여 로컬 송신을 떠나는 네트워크 요청이 가장 가까운 Microsoft 피어링 위치에 도착하도록 합니다.

  • 대규모로 대기 시간 요구 사항을 충족하기 위해 딥 패킷 검사 또는 기타 집약적 네트워크 패킷 처리에서 제외.

최신 네트워크 장치에는 일반적인 신뢰할 수 없는 인터넷 트래픽과 다르게 Office 365와 같은 네트워크 요청을 관리하는 기능이 들어 있습니다. SD-WAN 솔루션이 출현하는 환경에서 트래픽 및 경로 선택의 이러한 차별화는 사용자와 클라우드 간 다양한 연결 경로의 지정 시간 가용성, 대기 시간 또는 성능과 같은 변화하는 네트워크의 상태를 인식하며 수행될 수도 있습니다.

네트워크 구성 계획에 대한 추가 지침은 Office 365에 대한 네트워크 및 마이그레이션 계획, Office 365 성능 문제 해결 계획Office 365 배포 계획 검사 목록을 참조하세요.

이 시나리오를 구현하려면

해당 네트워크 솔루션 또는 서비스 공급자가 XML의 Office 365 URL 및 IP 정의를 사용하여 Office 365 트래픽에 대한 로컬(사용자에 대한), 오버헤드가 낮은 네트워크 송신을 용이하게 하고, 다른 응용 프로그램을 기준으로 해당 우선 순위를 관리하며, 변화하는 네트워크 상태에 따라 Microsoft 네트워크에 대한 Office 365 연결의 네트워크 경로를 조정할 수 있는지 해당 공급자에 확인합니다. 일부 솔루션은 해당 스택에서 Office 365 URL 및 IP XML 정의를 다운로드하고 자동화합니다.

항상 구현된 솔루션에 필요한 수준의 복원력, Office 365 트래픽의 네트워크 경로에 대한 적절한 지리적 중복이 있는지와 Office 365 URL 및 IP에 대한 변경 내용이 게시되면 이러한 변경 내용을 수용하는지 확인합니다.

웹 서비스

새 웹 서비스를 더 나은 식별 하 고 Office 365 네트워크 트래픽에 구분할 수 있도록 Office 365 끝점을 손쉽게 평가 구성 하 고 변경 내용을 최신 상태로 유지 하려면를 게시 합니다. 이 새 웹 서비스 (지금 미리 보기)에서 Office 365 Url 및 IP 주소 범위 문서와 함께 해당 데이터의 RSS 및 XML 버전의에서 끝점 목록을으로 결국 바뀝니다. 단계적 2018, 10 월 2에서으로 정리 하려면 이러한 끝점 데이터이 형식 계획 되어 있습니다.

고객 또는 네트워크 주변 장치 공급 업체, Office 365 IP 주소 및 FQDN 항목에 대 한 새 REST 기반 웹 서비스에 대해 작성할 수 있습니다.

고객으로이 웹 서비스를 사용할 수 있습니다.

  • Office 365 끝점 데이터를 구하고 네트워킹 장치에 대 한 서식을 수정 하 여 PowerShell 스크립트를 업데이트 합니다.

  • 이 정보를 사용 하 여 클라이언트 컴퓨터에 배포 PAC 파일을 업데이트 합니다.

네트워크 주변 장치 공급 업체가 웹 서비스를 사용할 수 있습니다.

  • 페이지를 만들고 자동화 된 구성에 대 한 목록을 다운로드 하려면 장치 소프트웨어를 테스트 합니다.

  • 현재 버전을 확인 합니다.

  • 현재 변경 내용을 가져옵니다.

다음 섹션에서는 서비스 일반적으로 제공 될 때까지 시간이 지남에 따라 변경 될 수 있는이 웹 서비스의 미리 보기에 설명 합니다.

웹 서비스에서 데이터를 최신으로 유지 하 고 추가로 변경 하려면 웹 서비스 Url 계획이 없는 우리 또는이 웹 서비스의 일반 릴리스에 하기 전에 데이터 스키마를 반환 합니다.

추가 정보를 보려면

공통 매개 변수

이러한 매개 변수는 모든 웹 서비스 메서드 전체에서 공통:

  • 형식 CSV = | JSON -쿼리 문자열 매개 변수입니다. 기본적으로 반환 되는 데이터 형식이 JSON 되었습니다. 쉼표로 구분 된 값 (CSV) 형식으로 데이터를 반환 하려면이 선택적 매개 변수를 포함 합니다.

  • ClientRequestId -쿼리 문자열 매개 변수입니다. 클라이언트 세션 연결에 대 한 생성 하는 데 필요한 GUID입니다. 웹 서비스 호출 하는 각 클라이언트 컴퓨터에 대 한 GUID 생성 해야 합니다. 가 차단 되었을 수도 있는 웹 서비스에서 나중에 때문에 다음 예제에 나오는 Guid를 사용 하지 않습니다. GUID 형식이 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, x 16 진수를 나타냅니다. GUID를 생성 하려면 새로 만들기 Guid PowerShell 명령을 사용 합니다.

버전 웹 방법

Microsoft Office 365 IP 주소와 각 월의 및 주기를 필요에 따라 축소 끝 FQDN 항목 업데이트 작업 또는 요구 사항을 지원 합니다. 게시 된 각 인스턴스에 대 한 데이터가 버전 번호를 할당 됩니다. 버전 웹 메서드를 사용 하면 각 Office 365 서비스 인스턴스에 대 한 최신 버전의 의견 조사 수 있습니다. 매일, 또는 가장, 매시간 버전을 확인 하는 것이 좋습니다.

다음과 같이 버전 웹 방법에 대 한 매개 변수가 됩니다.

  • AllVersions = true -쿼리 문자열 매개 변수입니다. 기본적으로 반환 되는 버전의 최신 버전입니다. 모든 게시 된 버전을 요청 하는이 선택적 매개 변수를 포함 합니다.

  • 인스턴스 – 경로 매개 변수입니다. 이 선택적 매개 변수의 버전을 반환 하도록 인스턴스를 지정 합니다. 모든 인스턴스 반환 되 고 생략 하면 됩니다. 유효한 인스턴스가: 전세계, 중국, 독일, USGovDoD, USGovGCCHigh

단일 레코드 또는 레코드의 배열을 버전 웹 메서드의 결과 수 있습니다. 각 레코드의 요소가 있습니다.

  • 인스턴스-Office 365 서비스 인스턴스의 짧은 이름입니다.

  • 최신-지정 된 인스턴스의 끝점에 대 한 최신 버전입니다.

  • 버전 지정된 인스턴스에 대 한 모든 이전 버전의 목록입니다. 이 요소는만 AllVersions 매개 변수가 true가 포함 되어 있습니다.

예제:

예제 1 요청 URI: https://endpoints.office.com/version?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

이 URI 최신 버전의 각 Office 365 서비스 인스턴스를 반환합니다. 결과 예제:

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

중요: 이러한 Uri에서 ClientRequestID 매개 변수에 대 한 GUID는는 예제입니다. 웹 보세요 아웃 Uri 서비스, 고유한 GUID를 생성 합니다. 이 예제에 표시 된 Guid 웹 서비스에서 나중에 차단 될 수 있습니다.

예제 2 요청 URI: https://endpoints.office.com/version/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

이 URI 최신 버전의 지정된 된 Office 365 서비스 인스턴스를 반환합니다. 결과 예제:

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

예제 3 요청 URI: https://endpoints.office.com/version/Worldwide?Format=CSV&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

이 URI 출력 CSV 형식으로 표시 됩니다. 결과 예제:

instance,latest
Worldwide,2018063000

예제 4 요청 URI: https://endpoints.office.com/version/Worldwide?AllVersions=true&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

이 URI Office 365 전세계 서비스 인스턴스에 대 한 게시 한 모든 이전 버전을 보여 줍니다. 결과 예제:

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

끝점 웹 방법

끝점 웹 방법은 Office 365 서비스를 구성 하는 Url 및 IP 주소 범위에 대 한 모든 레코드를 반환 합니다. 끝점 웹 방법에 대해 매개 변수는.

  • ServiceAreas -쿼리 문자열 매개 변수입니다. 서비스 영역 쉼표로 구분 된 목록입니다. 유효한 항목은 공통, Exchange, SharePoint, Skype입니다. 일반적인 서비스 영역 항목은 다른 모든 서비스 영역에 대 한 필수 구성 요소 이기 때문에 웹 서비스는 항상 포함 시킵니다. 이 매개 변수를 사용 하지 않으면 모든 서비스 분야 반환 됩니다.

  • TenantName -쿼리 문자열 매개 변수입니다. Office 365 테 넌 트 이름입니다. 웹 서비스 제공된 이름을 걸리고 테 넌 트 이름을 포함 하는 Url의 부분에 삽입 됩니다. Url의 부분 테 넌 트 이름을 제공 되지 않는 경우 와일드 카드 문자 (*).

  • NoIPv6 -쿼리 문자열 매개 변수입니다. 하려면 true로 설정 제외 IPv6 주소는 출력에서 예를 들어 네트워크에서 i p v 6을 사용 하지 않는 경우.

  • 인스턴스 – 경로 매개 변수입니다. 이 필수 매개 변수 끝점을 반환 하도록 인스턴스를 지정 합니다. 유효한 인스턴스가: 전세계, 중국, 독일, USGovDoD, USGovGCCHigh 합니다.

끝점 웹 메서드의 결과 끝점 집합을 나타내는 각 레코드를 사용 하 여 레코드의 배열입니다. 각 레코드에 대 한 요소가 있습니다.

  • id-끝점을 변경할 수 없으므로 id 번호를 설정합니다.

  • serviceArea – 부분입니다 서비스 영역: 공통, Exchange, SharePoint 또는 Skype 합니다.

  • url-끝점에 대 한 Url을 설정 합니다. DNS 레코드의 JSON 배열 합니다. 비어 있는 경우 생략 합니다.

  • tcpPorts – 끝점에 대해 TCP 포트를 설정합니다. 모든 포트 요소 포트 또는 대시 문자 (-)으로 구분 하 여 포트 범위를 쉼표로 구분 된 목록으로 서식이 지정 됩니다. 포트 끝점 해당 범주에 대해 설정 된에 모든 IP 주소 및 모든 Url에 적용 됩니다. 비어 있는 경우 생략 합니다.

  • udpPorts – UDP 포트 ip 주소 범위 끝점 설정에서 합니다. 비어 있는 경우 생략 합니다.

  • ip 나열 된 TCP 또는 UDP 포트와 관련 된 설정이 끝점와 연결 된 IP 주소 범위입니다. 비어 있는 경우 생략 합니다.

  • 범주 – 끝점에 대 한 연결 범주를 설정합니다. 유효한 값은 최적화, 허용 및 기본값입니다. 필수.

  • express 경로 – True 또는 False express 경로 통해 전달 되는 끝점 설정 하는 경우.

  • 끝점 설정을 지원 하기 Office 365에 연결 하는 데 필요한 있으면 True – 필요 합니다. False 인 경우 생략 합니다.

  • 선택적 끝점에 대 한 메모-이 설명 IP 주소가 있으면 없을 수 있는 Office 365 기능 또는 Url이이 끝점 집합 네트워크 계층에서 액세스할 수 없습니다. 비어 있는 경우 생략 합니다.

예제:

예제 1 요청 URI: https://endpoints.office.com/endpoints/Worldwide?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

이 URI 모든 작업에 대 한 Office 365 전세계 인스턴스에 대 한 모든 끝점을 얻습니다. 출력의 일부를 보여 주는 예제 결과:

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

이 예제에서 추가 끝점 집합 포함 되지 않습니다.

예제 2 요청 URI: https://endpoints.office.com/endpoints/Worldwide?ServiceAreas=Exchange&ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

이 예제에서는 Exchange Online 및만 의존 관계에 대 한 Office 365 전세계 인스턴스에 대 한 끝점을 가져옵니다.

예를 들어 2 출력 결과가 포함 되지 것입니다 끝점 SharePoint Online 또는 Skype online 비즈니스를 제외 하 고 예제 1와 비슷합니다.

변경 내용을 웹 메서드

변경 내용을 웹 메서드 게시 된 최신 업데이트를 반환 합니다. 일반적으로 IP 주소 범위 및 Url 이전 달의 변경 내용입니다.

참고: API 변경 내용에서 데이터 미리 보기에 정확한 및 되어야 개발에 사용 되는 및 테스트만 합니다.

변경 내용 웹 방법에 대해 매개 변수가입니다.

  • 버전 – 필요한 URL 경로 매개 변수입니다. 현재 구현 하 고 해당 버전 이후 변경 내용을 확인 하려면 있는 버전입니다. 형식은 YYYYMMDDNN입니다.

변경 내용 웹 메서드의 결과 끝점의 특정 버전에서 변경 나타내는 각 레코드를 사용 하 여 레코드의 배열입니다. 각 레코드에 대 한 요소가 있습니다.

  • id 변경 레코드의 변경할 수 없으므로 id입니다.

  • endpointSetId – 끝점의 ID 변경 되는 레코드를 설정 합니다. 필수.

  • 폐기 –이 추가, 변경 또는 제거 될 수 있습니다 하 고 변경 하 고 끝점 집합 레코드로 수행 하는 것에 대해 설명 합니다.

  • 변경 내용을 도입 되었습니다에서 버전 – 버전 게시 된 끝점을 설정 합니다. 버전 번호는 단일 날짜에 게시 하는 데 필요한 여러 버전 YYYYMMDDNN, NN이 있는 경우 증가 자연 숫자 서식.

  • 이전-이전 값의 끝점에 변경 된 요소를 설명 하는 하위 구조를 설정 합니다. 새로 추가 된 끝점 집합에 대 한 포함 되지 않습니다. UdpPorts, tcpPorts 포함 express 경로 필수 항목, 메모 합니다.

  • 현재-는 endpoinset의 변경 내용 요소 값이 업데이트를 설명 하는 하위 구조입니다. UdpPorts, tcpPorts 포함 express 경로 필수 항목, 메모 합니다.

  • 추가-끝점에 추가 될 항목을 자세히 보여 주는 하위 구조 모음을 설정할 수 있습니다. 추가 되지 경우 생략 됩니다.

    • effectiveDate – 추가 서비스에서 live 될 때 데이터를 정의 합니다.

    • ip 항목을 ip 배열에 추가할 수 있습니다.

    • url 항목 url 배열에 추가할 수 있습니다.

  • 제거-끝점에서 제거 하는 항목을 자세히 보여 주는 하위 구조를 설정 합니다. 없음 제거가 경우 생략 됩니다.

    • ip 항목이 ip 배열에서 제거 됩니다.

    • url 항목 url 배열에서 제거 됩니다.

예제:

예제 1 요청 URI: https://endpoints.office.com/changes/worldwide/0000000000?ClientRequestId=b10c5ed1-bad1-445f-b386-b919946339a7

Office 365 전세계 서비스 인스턴스를 이전 변경 내용 모두를 요청합니다. 결과 예제:

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

변경을 요청할이 Office 365 전세계 인스턴스를 지정된 된 버전 이후 발생 합니다. 이 경우 지정 된 버전은 최신 합니다. 결과 예제:

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

예제 PowerShell 스크립트

업데이트 된 데이터에 대해 수행 해야 할 작업 인지 확인 하기 위해 실행할 수 있는 PowerShell 스크립트 다음과 같습니다. 이 스크립트 Office 365 전세계 인스턴스 끝점에 대 한 버전 번호를 확인합니다. 변경 때 "허용" 및 "최적화" 범주 끝점에 대 한 필터 및 끝점 다운로드 합니다. 또한 여러 번 호출에서 고유 ClientRequestId를 사용 하 여 하 고 임시 파일에 있는 최신 버전을 저장 합니다. 버전 업데이트를 확인 하는 시간에 한 번씩이 스크립트를 호출 해야 합니다.

# webservice root URL
$ws = "https://endpoints.office.com"

# path where client ID and latest version number will be stored
$datapath = $Env:TEMP + "\endpoints_clientid_latestversion.txt"

# fetch client ID and version if data file exists; otherwise create new file
if (Test-Path $datapath) {
    $content = Get-Content $datapath
    $clientRequestId = $content[0]
    $lastVersion = $content[1]
}
else {
    $clientRequestId = [GUID]::NewGuid().Guid
    $lastVersion = "0000000000"
    @($clientRequestId, $lastVersion) | Out-File $datapath
}

# 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 data file
    @($clientRequestId, $version.latest) | Out-File $datapath

    # 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
    $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
    }

    $flatIps = $endpointSets | ForEach-Object {
        $endpointSet = $_
        $ips = $(if ($endpointSet.ips.Count -gt 0) { $endpointSet.ips } else { @() })
        # IPv4 strings have dots while IPv6 strings have colons
        $ip4s = $ips | Where-Object { $_ -like '*.*' }
        
        $ipCustomObjects = @()
        if ($endpointSet.category -in ("Allow", "Optimize")) {
            $ipCustomObjects = $ip4s | ForEach-Object {
                [PSCustomObject]@{
                    category = $endpointSet.category;
                    ip = $_;
                    tcpPorts = $endpointSet.tcpPorts;
                    udpPorts = $endpointSet.udpPorts;
                }
            }
        }
        $ipCustomObjects
    }

    Write-Output "IPv4 Firewall IP Address Ranges"
    ($flatIps.ip | Sort-Object -Unique) -join "," | Out-String

    Write-Output "URLs for Proxy Server"
    ($flatUrls.url | Sort-Object -Unique) -join "," | Out-String

    # TODO Call Send-MailMessage with new endpoints data
}
else {
    Write-Host "Office 365 worldwide commercial service instance endpoints are up-to-date"
}

예제 Python 스크립트

업데이트 된 데이터에 대해 수행 해야 할 작업 인지 확인 하기 위해 실행할 수 있는 Windows 10에서 Python 3.6.3 사용 하 여 테스트 Python 스크립트 다음과 같습니다. 이 스크립트 Office 365 전세계 인스턴스 끝점에 대 한 버전 번호를 확인합니다. 변경 때 "허용" 및 "최적화" 범주 끝점에 대 한 필터 및 끝점 다운로드 합니다. 또한 여러 번 호출에서 고유 ClientRequestId를 사용 하 여 하 고 임시 파일에 있는 최신 버전을 저장 합니다. 버전 업데이트를 확인 하는 시간에 한 번씩이 스크립트를 호출 해야 합니다.

import json
import os
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 = os.environ['TEMP'] + '\endpoints_clientid_latestversion.txt'

# fetch client ID and version if data exists; otherwise create new file
if os.path.exists(datapath):
    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')

웹 서비스 인터페이스 버전 관리

매개 변수 또는 다음 웹 서비스 방법에 대 한 결과에 대 한 업데이트를 나중에 필요할 수 있습니다. 이러한 웹 서비스의 일반 공급 버전을 게시 후 Microsoft 상당한 노력을 사전 통지 재료 업데이트 웹 서비스를 제공 하 게 됩니다. Microsoft는 업데이트 하려면 변경 해야 합니다 웹 서비스를 사용 하 여 고객 생각을 하는 경우 Microsoft 이전 버전 (한 버전 다시) 새 버전 출시 후 적어도 12 (12) 개월 동안 사용할 수 있는 웹 서비스의 유지 됩니다. 고객은이 시간 동안 업그레이드 하지 않는 웹 서비스와 해당 메서드에 액세스할 수 수 있습니다. 고객 웹 서비스의 클라이언트 웹 서비스 인터페이스 서명 하려면 다음과 같이 변경 내용이 있는 경우 오류 없이 작업을 계속 확인 해야 합니다.

  • 이전 클라이언트 수신 하지 않아도 이전 버전의 클라이언트에서 제공 되는 결과 영향을 주지 기존 웹 방법을에 새 선택적인 매개 변수를 추가 합니다.

  • CSV 응답을 응답 나머지 항목 또는 추가 열 중 하나에서 새 명명 된 특성을 추가합니다.

  • 이전 버전의 클라이언트 하지 호출 하는 새 이름으로 새 웹 메서드를 추가 합니다.

FAQ

연결에 대해 관리자가 자주 묻는 질문과 대답은 다음과 같습니다.

맨 아래의 링크를 클릭하여 해당 문서가 도움이 되었는지 표시하고 추가 질문을 제출합니다. Microsoft에서는 의견을 모니터링하며 가장 자주 묻는 질문을 여기에 업데이트합니다.

새 끝점이 발표되면 새 끝점이 유효해지고 네트워크 요청이 전송되기 전에 일반적으로 30일간의 여유 기간이 있습니다. 이 여유 기간에 고객과 파트너가 시스템을 업데이트할 수 있습니다. FQDN 및 IP 접두사 추가 및 제거가 발표와 동시에 XML 파일에서 처리됩니다. 즉 새 FQDN이 사용하기 30일 전에 XML 파일에 추가됩니다. Microsoft는 끝점 제거를 발표하기 전에 제거하려는 끝점으로 네트워크 요청 전송을 중단하므로, 발표와 동시에 XML에서 끝점을 제거하면 끝점은 이미 사용되지 않고 있습니다.

Office 365 끝점은 30일 전 통지가 제공되고 매월 말에 게시됩니다. 경우에 따라 한 달에 한 번 이상 또는 더 짧은 기간의 통지가 제공되고 변경이 수행될 수 있습니다. 끝점이 추가되면 RSS 피드에 나열되는 적용 날짜는 네트워크 요청이 끝점으로 전송된 이후의 날짜가 됩니다. RSS를 처음 사용하는 경우 여기서 Outlook을 통해 구독하는 방법을 참조하거나, 전자 메일을 통해 RSS 피드 업데이트를 받을 수 있습니다.

RSS 피드를 구독하면 사용자가 직접 또는 스크립트를 사용하여 정보의 구문을 분석할 수 있습니다. 다음 표에서는 구문을 쉽게 분석할 수 있도록 RSS 피드의 형식을 설명합니다.

구역

1파트

2파트

3파트

4파트

5파트

6파트

설명

개수

끝점으로 네트워크 요청 전송이 시작될 것으로 기대되는 날짜입니다.

끝점이 필요한 기능 또는 서비스에 대한 기본적인 설명입니다.

인터넷에 더해 ExpressRoute 회선에서 이 끝점에 연결할 수 있습니까?

Yes - 인터넷과 ExpressRoute 양쪽에서 이 끝점에 연결할 수 있습니다.

No - 인터넷에서만 이 끝점에 연결할 수 있습니다.

추가 또는 제거되는 대상 FQDN 또는 IP 범위입니다.

예제

1/

[Effective xx/xx/xxx.

필수: <description>.

ExpressRoute:

<Yes/No>.

<FQDN/IP>],

모든 항목에서는 다음과 같이 공통 구분 기호 집합을 사용합니다.

  • / - 개수 뒤

  • [ - 개수에 대한 항목을 나타냄

  • . - 항목의 구분되는 각 구역 사이에 사용됨

  • ], - 단일 항목의 마지막을 나타냄

  • ]. - 모든 항목의 마지막을 나타냄

테넌트 위치데이터 센터 맵을 사용하여 확인할 수 있습니다.

피어링 위치Microsoft와의 피어링에 자세히 설명되어 있습니다.

전 세계적으로 2,500개가 넘는 ISP 피어링 관계와 70개의 클라이언트에서 로그인을 통해 사용자의 네트워크에서 Microsoft 네트워크로 원활하게 연결할 수 있습니다. ISP의 피어링 관계가 최적인지 확인하는 데 시간을 들일 필요가 없습니다. Microsoft 네트워크에 대한 좋은 피어링 분배와 좋지 않은 피어링 분배의 몇 가지는 예가 여기에 나와 있습니다.

수용되는 ExpressRoute 경로Microsoft의 IP 범위 및 특정 Office 365BGP 커뮤니티에 의해 정의됩니다.

Microsoft는 Office 365 제품군에 새로운 기능 및 서비스를 정기적으로 추가하여 연결 환경을 확장합니다. E3 또는 E5 SKU를 구독하는 경우 끝점 목록에 대해 생각하는 간단한 방법은 제품군의 전체 기능을 활용하기 위해 모든 끝점이 필요하다는 것입니다. 이러한 SKU 중 하나라도 구독하지 않는 경우 차이점은 끝점 수가 최소라는 것입니다.

Office 365 네트워크 연결 원칙Office 365 대 한 자세한 내용은 끝점 범주를 하 고 안전 하 게 Office 365 트래픽을 관리 하 고 최고의 성능을 가져오기에 대 한 연결 원칙 이해를 참고 하세요.

아래 이미지에서는 Office Online 섹션에 있는 일부 FQDN 테이블의 예제를 확인할 수 있습니다. 행은 연결의 차이점과 기능으로 구성됩니다. 처음 두 행은 Office Online이 Office 365 인증 및 ID와 포털 및 공유 섹션에서 필수로 표시된 끝점을 사용함을 나타냅니다. 일반적으로 Office 365 내 서비스는 이러한 공유 서비스를 사용합니다. 세 번째 행은 클라이언트 컴퓨터에서 *.officeapps.live.com에 연결하여 Office Online을 사용할 수 있어야 함을 나타내고, 네 번째 행은 컴퓨터도 *.cdn.office.net에 연결하여 Office Online을 사용할 수 있어야 함을 나타냅니다.

Office Online을 사용하려면 3행과 4행 모두 필요하지만 대상이 다르다는 점을 나타내기 위해 구분했습니다.

  1. *.officeapps.live.com은 CDN을 나타내지 않으며, 이 네임스페이스에 대한 요청이 Microsoft 데이터 센터로 직접 이동함을 의미합니다.

  2. *.officeapps.live.com은 Microsoft 피어링을 사용하여 ExpressRoute 회로에서 액세스할 수 있습니다.

  3. Office Online 및 *.officeapps.live.com과 연결된 IP 주소는 이 링크를 따라 이동하여 찾을 수 있습니다.

  4. *.cdn.office.net은 Akamai에서 호스트하는 CDN을 나타내며, 이 네임스페이스에 대한 요청이 Akamai 데이터 센터로 이동함을 의미합니다.

  5. *.cdn.office.net은 ExpressRoute 회로에서 액세스할 수 없습니다.

  6. Office Online 및 *.cdn.office.net과 연결된 IP 주소는 사용할 수 없습니다.

끝점 페이지의 화면 캡처

Microsoft는 사용자가 인터넷 또는 ExpressRoute를 통해 직접 라우팅해야 하는 Office 365 서버의 IP 주소만 제공합니다. 이 목록은 네트워크 요청이 표시되는 모든 IP 주소의 전체 목록이 아닙니다. Microsoft 및 타사가 소유한 게시되지 않은 IP 주소에 대한 네트워크 요청이 표시됩니다. 이러한 IP 주소는 동적으로 생성되거나 변경될 때 시기 적절한 통지를 방지하는 방법으로 관리됩니다. 방화벽에서 이러한 네트워크 요청에 대한 FQDN을 기준으로 액세스를 허용할 수 없는 경우 PAC 또는 WPAD 파일을 사용하여 요청을 관리합니다.

자세한 정보가 필요한, Office 365와 연결된 IP가 표시되나요?

  1. CIDR 계산기를 사용하여 IP 주소가 더 큰 게시된 범위에 포함되는지 확인합니다.

  2. whois 쿼리를 사용하여 파트너가 IP를 소유하는지 확인합니다. Microsoft가 해당 IP를 소유한 경우 내부 파트너일 수 있습니다.

  3. 인증서를 확인합니다. 브라우저에서 HTTPS://<IP 주소>를 사용하여 IP 주소에 연결한 후 인증서에 나열된 도메인을 확인하여 IP 주소와 연결된 도메인을 파악합니다. Microsoft 소유의 IP 주소이고 Office 365 IP 주소 목록에 없는 경우 MSOCDN.NET과 같은 Microsoft CDN과 연결된 IP 주소이거나 게시된 IP 정보가 없는 다른 Microsoft 도메인일 수 있습니다. 인증서의 도메인이 Microsoft가 IP 주소를 나열하려고 요구하는 도메인인 경우 알려주세요.

Office 365 및 기타 Microsoft 서비스에서는 Office 365 환경을 개선하기 위해 Akamai 및 MarkMonitor와 같은 몇 가지 타사 서비스를 사용합니다. 가능한 최상의 환경을 계속 제공하기 위해 Microsoft는 향후 이러한 서비스를 변경할 수 있습니다. 이 과정에서 타사가 소유한 도메인, A 레코드 또는 IP 주소를 가리키는 CNAME 레코드를 게시하는 경우가 있습니다. 타사 도메인은 CDN과 같은 콘텐츠를 호스트하거나 지리적 트래픽 관리 서비스와 같은 서비스를 호스트할 수 있습니다. 이러한 타사에 대한 연결이 표시되는 경우 클라이언트의 초기 요청이 아니라 리디렉션 또는 추천의 형식으로 되어 있습니다. 일부 고객은 타사 서비스에서 사용할 수도 있는 잠재적 FQDN의 긴 목록을 명시적으로 추가하지 않고 이 추천 및 리디렉션 형식의 전달이 허용되는지를 확인해야 합니다.

서비스 목록은 언제든지 변경될 수 있습니다. 현재 사용 중인 몇 가지 서비스는 다음과 같습니다.

MarkMonitor*.nsatc.net을 포함하는 요청이 표시될 때 사용되고 있습니다. 이 서비스는 악의적인 동작으로부터 보호하기 위해 도메인 이름 보호 및 모니터링을 제공합니다.

ExactTarget*.exacttarget.com에 대한 요청이 표시될 때 사용되고 있습니다. 이 서비스는 악의적인 동작으로부터 전자 메일 링크 관리 및 모니터링을 제공합니다.

Akamai는 다음 FQDN 중 하나를 포함하는 요청이 표시될 때 사용되고 있습니다. 이 서비스는 지역 DNS 및 콘텐츠 배달 네트워크 서비스를 제공합니다.

*.akadns.net
*.akam.net
*.akamai.com
*.akamai.net
*.akamaiedge.net
*.akamaihd.net
*.akamaized.net
*.edgekey.net
*.edgesuite.net

  • 타사 서비스에 연결하여 DNS 조회 및 CDN 콘텐츠 검색과 같은 기본 인터넷 서비스를 검색합니다. OneNote 전자 필기장에 YouTube 동영상을 포함하는 등 통합을 위한 타사 서비스에도 연결합니다.

  • 컴퓨터에서 가장 가까운 인터넷 위치에 있는 Microsoft의 전역 네트워크에 네트워크 요청이 들어갈 수 있도록 하는 에지 노드와 같은 Microsoft에서 호스트 및 실행되는 보조 서비스에 연결합니다. 이는 전 세계에서 세 번째로 큰 네트워크로서 연결 환경을 개선합니다. 다양한 Office 365 서비스에서 사용되는 Azure Media Services와 같은 Microsoft Azure 서비스에도 연결합니다.

  • 고유하고 재산적 가치를 가지는 데이터가 있는 Exchange Online 사서함 서버 또는 비즈니스용 Skype Online 서버와 같은 기본 Office 365 서비스에 연결합니다. FQDN 또는 IP 주소로 기본 Office 365 서비스에 연결하고 인터넷 또는 ExpressRoute 회로를 사용할 수 있습니다. 인터넷 회로에서는 FQDN을 사용해서만 타사 및 보조 서비스에 연결할 수 있습니다.

다음 다이어그램은 이러한 서비스 영역 간의 차이점을 보여줍니다. 이 다이어그램의 왼쪽 아래에 있는 고객 온-프레미스 네트워크에는 네트워크 연결 관리를 지원하기 위한 여러 네트워크 장치가 있습니다. 기업 고객의 경우 이와 같은 구성이 일반적입니다. 네트워크에서 클라이언트 컴퓨터와 인터넷 사이에만 방화벽이 있는 경우 이러한 구성도 지원되며 방화벽이 허용 목록 규칙의 FQDN 및 와일드카드를 지원할 수 있기를 원할 것입니다.

Office 365 네트워크 연결 원칙Office 365 대 한 자세한 내용은 끝점 범주를 하 고 안전 하 게 Office 365 트래픽을 관리 하 고 최고의 성능을 가져오기에 대 한 연결 원칙 이해를 참고 하세요.

Office 365를 사용하여 세 가지 유형의 네트워크 끝점 표시

Office 365는 인터넷을 통해 작동하도록 구축된 서비스 모음이며 안정성 및 가용성 약속은 사용할 수 있는 많은 표준 인터넷 서비스를 기반으로 합니다. 예를 들어 DNS, CRL 및 CDN과 같은 표준 인터넷 서비스는 최신 인터넷 서비스를 사용하기 위해 연결할 수 있어야 하는 것처럼 Office 365를 사용하기 위해 연결할 수 있어야 합니다.

이러한 기본 인터넷 서비스 외에 기능을 통합하는 데만 사용되는 타사 서비스도 있습니다. 예를 들어 Microsoft Teams 내에서 Giphy.com을 사용하는 것은 고객이 Teams 내에 원활하게 Gif를 포함할 수 있도록 하기 위해서입니다. 마찬가지로 YouTube 및 Flickr는 인터넷에서 Office 클라이언트에 동영상 및 이미지를 원활하게 통합하는 데 사용되는 타사 서비스입니다. 이러한 서비스는 통합에 필요하지만 Office 365 끝점 문서에서는 선택 사항으로 표시됩니다. 이는 끝점에 액세스할 수 없는 경우에도 서비스의 핵심 기능이 계속 작동함을 의미합니다.

Office 365를 사용하려고 할 때 타사 서비스에 액세스할 수 없음을 알게 되면 이 문서에서 필수 또는 선택 사항으로 표시된 모든 FQDN이 프록시 및 방화벽을 통해 허용되도록 하고 싶을 것입니다.

보조 서비스는 Office 365 컨트롤에 포함되지 않는 Microsoft 서비스입니다. 이러한 서비스로는 경계 네트워크, Azure Media Services 및 Azure Content Delivery Network가 있습니다. 이러한 서비스는 모두 Office 365를 사용하는 데 필요하며 연결할 수 있어야 합니다.

Office 365를 사용하려고 할 때 타사 서비스에 액세스할 수 없음을 알게 되면 이 문서에서 필수 또는 선택 사항으로 표시된 모든 FQDN이 프록시 및 방화벽을 통해 허용되도록 하고 싶을 것입니다.

Microsoft 소비자 서비스에 대한 액세스를 차단하는 경우 발생할 수 있는 위험은 사용자가 모두 책임져야 합니다. Microsoft 소비자 서비스를 차단하는 유일한 안정적인 방법은 login.live.com FQDN에 대한 액세스를 차단하는 것입니다. 이 FQDN은 MSDN, TechNet과 같은 비소비자 서비스를 비롯한 다양한 서비스에서 사용됩니다. 이 FQDN에 대한 액세스를 차단하면 이러한 서비스와 연결된 네트워크 연결에 대한 규칙의 예외를 포함해야 할 수 있습니다.

Microsoft 소비자 서비스에 대한 액세스만 차단해서는 네트워크상의 누군가가 Office 365 테넌트 또는 기타 서비스를 사용하여 정보를 빼내는 것을 막지 못한다는 점에 유의하세요.

관련 항목

Microsoft Azure 데이터 센터 IP 범위는
Microsoft 공용 IP 공간
Microsoft intune 네트워크 인프라 요구 사항
Power BI 및 express 경로
Office 365 Url 및 IP 주소 범위
Office 365 연결에 대 한 express 경로 관리
Office 365 네트워크 연결 원칙

Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×