共用方式為


Microsoft Entra ID 中的 IPv6 支援

注意

本篇文章實用嗎? 您的輸入對我們很重要。 請使用此頁面上的 [ 意見反應 ] 按鈕,讓我們知道這篇文章為您運作得有多好,或我們如何加以改善。

我們很高興能將 IPv6 支援帶到 Microsoft Entra ID,以支持行動能力較高的客戶,並協助減少快速耗用、昂貴的 IPv4 位址支出。 如需此變更如何影響 Microsoft 365 的詳細資訊,請參閱 Microsoft 365 服務中的 IPv6 支援。

如果您的組織網路目前不支援 IPv6,您可以放心地忽略此資訊,直到這類時間為止。

有哪些變更項目?

我們的服務端點 URL 解析現在會同時傳回 IPv4 和 IPv6 位址。 如果用戶端平台或網路支援 IPv6,則大多會使用 IPv6 嘗試連線,前提是兩者之間的網路躍點 (例如防火牆或 Web Proxy) 也支援 IPv6。 對於不支援 IPv6 的環境,用戶端應用程式將透過 IPv4 連線至 Microsoft Entra ID。

下列功能也將支援 IPv6 位址:

  • 具名位置
  • 條件式存取原則
  • 身分識別保護
  • 登入記錄

Microsoft Entra 標識符中何時支援 IPv6?

我們將於 2023 年 4 月開始引進 IPv6 支援,以Microsoft Entra ID。

我們知道 IPv6 支援對於某些組織而言是一項重大變更。 我們現在發佈這項資訊,讓客戶可以制定計劃,以確保整備。

我的組織必須做什麼?

如果您有代表網路的公用 IPv6 位址,請儘快採取下列各節所述的動作。

如果客戶未使用這些 IPv6 位址更新其具名位置,則會封鎖其使用者。

顯示使用者因網路位置而封鎖登入的螢幕快照。

要採取的動作

具名位置

具名位置會在許多功能之間共用,例如條件式存取、Identity Protection 和 B2C。 客戶應與其網路管理員和因特網服務提供者(ISP)合作,以識別其公開的 IPv6 位址。 然後客戶應該使用此清單來 建立或更新具名位置,以包含其識別的 IPv6 位址

條件式存取

設定條件式存取原則時,組織可以選擇將位置納入或排除為條件。 這些具名位置可能包含公用 IPv4 或 IPv6 位址、國家或地區,或未對應至特定國家或地區的未知區域。

  • 如果您將 IPv6 範圍新增至現有的具名位置,則用於現有的條件式存取原則中,則不需要變更。
  • 如果您為組織的 IPv6 範圍建立新的具名位置,則必須使用這些新位置更新相關的條件式存取原則。

雲端 Proxy 和 VPN

當雲端 Proxy 就緒時,需要 Microsoft Entra 混合式加入或投訴裝置 的原則更容易管理。 將雲端託管 Proxy 或 VPN 解決方案所使用的 IP 位址清單保持在最新狀態幾乎是不可能的。

Microsoft每一使用者多重要素驗證的 Entra

如果您是使用每個使用者多重要素驗證的客戶,您是否已新增 IPv4 位址,這些位址代表使用 受信任的 IP 位址 而非具名位置的內部部署信任網路? 如果您有,您可能會看到多重要素驗證提示,指出透過已啟用內部部署 IPv6 的輸出點起始的要求。

不建議使用每個使用者多重要素驗證,除非您的Microsoft Entra ID 授權不包含條件式存取,而且您不想使用安全性預設值。

輸出流量限制

如果您的組織將輸出網路流量限制為特定IP範圍,您必須更新這些位址以包含IPv6端點。 系統管理員可以在下列文章中找到這些IP範圍:

針對為 Microsoft Entra ID 指定的 IP 範圍,請確定您在 Proxy 或防火牆中允許輸出存取。

裝置設定

根據預設,Windows 和大部分其他操作系統 (OS) 平臺都支援 IPv6 和 IPv4 流量。 標準 IPv6 設定的變更可能會導致非預期的結果。 如需詳細資訊,請參閱 在 Windows 中為進階使用者設定 IPv6 的指引。

服務端點

Microsoft Entra ID 中的 IPv6 支援實作不會影響 Azure 虛擬網絡 服務端點。 服務端點仍然不支援 IPv6 流量。 如需詳細資訊,請參閱 虛擬網絡 服務端點的限制

透過 IPv6 測試Microsoft項目驗證

您可以使用下列程式,透過 IPv6 測試Microsoft Entra 驗證。 這些程式有助於驗證 IPv6 範圍設定。 建議的方法是使用 推送至已加入Microsoft Windows 裝置的名稱解析原則表 (NRPT) 規則。 在 Windows Server 中,NRPT 可讓您實作覆寫 DNS 解析路徑的全域或本機原則。 透過這項功能,您可以將各種完整功能變數名稱的 DNS 重新導向至已設定為具有 IPv6 DNS 專案的特殊 DNS 伺服器,以進行Microsoft Entra 登入。 使用 PowerShell 腳本來啟用和停用 NRPT 規則很簡單。 您可以使用 Microsoft Intune 將這項功能推送至用戶端。

注意

  • Microsoft只針對測試目的提供這些指示。 您必須在 2023 年 5 月之前移除下列設定,以確保用戶端使用生產 DNS 伺服器。 下列程式中的 DNS 伺服器可能會在 2023 年 5 月之後解除委任。

  • 我們建議使用 Resolve-DnsName Cmdlet 來驗證 NRPT 規則。 如果您使用 nslookup 命令,則結果可能會不同,因為這些工具之間存在差異。

  • 請確定您已在用戶端裝置與用於 NRPT 規則的 DNS 伺服器之間開啟 TCP 和 UDP 連接埠 53 的網路連線。

手動設定用戶端 NRPT 規則 - 公用雲端

  1. 以系統管理員身分開啟 PowerShell 控制台(以滑鼠右鍵按兩下 PowerShell 圖示,然後選取 [ 以系統管理員身分執行]。

  2. 執行下列命令以新增 NRPT 規則:

    $DnsServers = (
        "ns1-37.azure-dns.com.",
        "ns2-37.azure-dns.net.",
        "ns3-37.azure-dns.org.",
        "ns4-37.azure-dns.info."
    )
    $DnsServerIPs = $DnsServers | Foreach-Object {
        (Resolve-DnsName $_).IPAddress | Select-Object -Unique
    }
    $params = @{
        Namespace = "login.microsoftonline.com"
        NameServers = $DnsServerIPs
        DisplayName = "AZURE-AD-NRPT"
    }
    Add-DnsClientNrptRule @params
    
  3. 執行 Resolve-DnsName Cmdlet,確認您的用戶端取得的 login.microsoftonline.com IPv6 回應。 命令輸出應該類似下列文字:

    PS C:\users\username> Resolve-DnsName login.microsoftonline.com
    Name                          Type   TTL   Section    IPAddress 
    ----                          ----   ---   -------    --------- 
    login.microsoftonline.com     AAAA   300   Answer     2603:1037:1:c8::8 
    login.microsoftonline.com     AAAA   300   Answer     2603:1036:3000:d8::5 
    login.microsoftonline.com     AAAA   300   Answer     2603:1036:3000:d0::5 
    login.microsoftonline.com     AAAA   300   Answer     2603:1036:3000:d8::4 
    login.microsoftonline.com     AAAA   300   Answer     2603:1037:1:c8::9 
    login.microsoftonline.com     AAAA   300   Answer     2603:1037:1:c8::a 
    login.microsoftonline.com     AAAA   300   Answer     2603:1036:3000:d8::2 
    login.microsoftonline.com     AAAA   300   Answer     2603:1036:3000:d0::7 
    login.microsoftonline.com     A      300   Answer     20.190.151.7 
    login.microsoftonline.com     A      300   Answer     20.190.151.67 
    login.microsoftonline.com     A      300   Answer     20.190.151.69 
    login.microsoftonline.com     A      300   Answer     20.190.151.68 
    login.microsoftonline.com     A      300   Answer     20.190.151.132 
    login.microsoftonline.com     A      300   Answer     20.190.151.70 
    login.microsoftonline.com     A      300   Answer     20.190.151.9 
    login.microsoftonline.com     A      300   Answer     20.190.151.133 
    
  4. 如果您要移除 NRPT 規則,請執行此 PowerShell 文稿:

    Get-DnsClientNrptRule | Where-Object {
        $_.DisplayName -match "AZURE-AD-NRPT" -or $_.Namespace -match "login.microsoftonline.com"
    } | Remove-DnsClientNrptRule -Force
    

手動設定用戶端 NRPT 規則 - US Gov 雲端

與公用雲端的腳本類似,下列腳本會為US Gov 登入端點 login.microsfotonline.us建立 NRPT 規則。

  1. 以系統管理員身分開啟 PowerShell 控制台,方法是以滑鼠右鍵按兩下 PowerShell 圖示,然後選取 [ 以系統管理員身分執行]。

  2. 執行下列命令以新增 NRPT 規則:

    $DnsServers = (
        "ns1-35.azure-dns.com.",
        "ns2-35.azure-dns.net.",
        "ns3-35.azure-dns.org.",
        "ns4-35.azure-dns.info."
    )
    $DnsServerIPs = $DnsServers | Foreach-Object {
        (Resolve-DnsName $_).IPAddress | Select-Object -Unique
    }
    $params = @{
        Namespace = "login.microsoftonline.us"
        NameServers = $DnsServerIPs
        DisplayName = "AZURE-AD-NRPT-USGOV"
    }
    Add-DnsClientNrptRule @params
    

使用 Intune 部署 NRPT 規則

若要使用 Intune 將 NRPT 規則部署至多部電腦,請建立 Win32 應用程式,並將它指派給一或多個裝置。

步驟 1:建立腳本

建立資料夾,然後將下列安裝和復原腳本 (InstallScript.ps1RollbackScript.ps1) 儲存在其中,以便建立 .intunewin 檔案以供部署使用。

InstallScript.ps1
# Add Azure AD NRPT rule.
$DnsServers = (
    "ns1-37.azure-dns.com.",
    "ns2-37.azure-dns.net.",
    "ns3-37.azure-dns.org.",
    "ns4-37.azure-dns.info."
)
$DnsServerIPs = $DnsServers | Foreach-Object {
    (Resolve-DnsName $_).IPAddress | Select-Object -Unique
}

# List the rules.
$existingRules = Get-DnsClientNrptRule | Where-Object {
    $_.DisplayName -match "AZURE-AD-NRPT" -or $_.Namespace -match "login.microsoftonline.com"
}
if ($existingRules) { 
    Write-Output ("Azure AD NRPT rule exists: {0}" -F $existingRules) 
} 
else { 
    Write-Output "Adding Azure AD NRPT DNS rule for login.microsoftonline.com ..." 
    $params = @{
        Namespace = "login.microsoftonline.com"
        NameServers = $DnsServerIPs
        DisplayName = "AZURE-AD-NRPT"
    }
    Add-DnsClientNrptRule @params
}  
RollbackScript.ps1
# Remove the Azure AD NRPT rule.
# List the rules.
$existingRules = Get-DnsClientNrptRule | Where-Object {
    $_.DisplayName -match "AZURE-AD-NRPT" -or $_.Namespace -match "login.microsoftonline.com"
}
if ($existingRules) { 
    Write-Output "Removing Azure AD NRPT DNS rule for login.microsoftonline.com ..." 
    $existingRules | Format-Table 
    $existingRules | Remove-DnsClientNrptRule -Force 
} 
else { 
    Write-Output "Azure AD NRPT rule does not exist. Device was successfully remediated."
}
DetectionScript.ps1

將下列腳本 (DetectionScript.ps1) 儲存在另一個位置。 然後,您可以在 Intune 中建立偵測腳本時參考應用程式中的偵測腳本。

# Add Azure AD NRPT rule.
$DnsServers = (
    "ns1-37.azure-dns.com.",
    "ns2-37.azure-dns.net.",
    "ns3-37.azure-dns.org.",
    "ns4-37.azure-dns.info."
)
$DnsServerIPs = $DnsServers | Foreach-Object {
    (Resolve-DnsName $_).IPAddress | Select-Object -Unique
}
# List the rules.
$existingRules = Get-DnsClientNrptRule | Where-Object {
    $_.DisplayName -match "AZURE-AD-NRPT" -or $_.Namespace -match "login.microsoftonline.com"
}
if ($existingRules) { 
    Write-Output 'Compliant' 
}  

步驟 2:將腳本封裝為 .intunewin 檔案

請參閱 準備 Win32 應用程式內容以進行上傳 ,以從您先前儲存的資料夾和腳本建立 .intunewin 檔案。

步驟 3:建立 Win32 應用程式

下列指示說明如何建立必要的 Win32 應用程式。 如需詳細資訊,請參閱 在 Microsoft Intune 中新增、指派及監視 Win32 應用程式。

  1. 登入 Intune 入口網站

  2. 選取 [應用程式>所有應用程式],然後選取 [+ 新增] 以建立新的 Win32 應用程式。

  3. 在 [ 應用程式類型 ] 下拉式清單中,選取 [Windows 應用程式] [Win32],然後選擇 [ 選取]。

  4. 在 [ 應用程式資訊] 頁面上,按兩下 [ 選取應用程式套件檔案 ] 以選取您先前建立的 .intunewin 檔案。 選取確定以繼續。

  5. 返回 [ 應用程式資訊] 頁面,然後輸入應用程式的描述性 名稱描述發行者 。 其他欄位是選擇性的。 選取下一步以繼續。

  6. 在 [ 程式] 頁面上,輸入下列資訊,然後選取 [ 下一步]。

    • 安裝指令 字串:
      powershell.exe -executionpolicy bypass -NoLogo -NoProfile -NonInteractive -WindowStyle Hidden -file "InstallScript.ps1"
    • 卸載命令 字串:
      powershell.exe -executionpolicy bypass -NoLogo -NoProfile -NonInteractive -WindowStyle Hidden -file "RollbackScript.ps1"
    • 安裝行為
      System
  7. 在 [需求] 頁面中,選取 [操作系統架構],並將 [最低操作系統] 設定[Windows 10 1607]。 選取下一步以繼續。

  8. 在 [偵測] 頁面上,從 [規則格式] 下拉式清單中選取 [使用自定義偵測腳本]。 選取 [腳本檔案] 方塊旁的瀏覽按鈕,以選擇偵測腳本。 將其餘欄位保留為預設值。 選取下一步以繼續。

  9. 選取 [相依性] 頁面上的 [下一步],以繼續沒有任何變更。

  10. 選取 [取代(預覽)] 頁面上的 [下一步],以繼續而不進行任何變更。

  11. 在 [ 指派 ] 頁面上,根據您的需求建立指派,然後選取 [下一步 ] 繼續。

  12. 檢閱 [檢閱 + 建立] 頁面上最後一次的資訊。 完成驗證之後,請選取 [建立 ] 以建立應用程式。

在登入記錄中尋找 IPv6 位址

使用下列一或多個方法,比較 IPv6 位址清單與您預期的位址。 請考慮將這些 IPv6 位址新增至您的具名位置,並在適當時將某些地址標示為受信任。 您至少需要指派的 報表讀取者角色 ,才能讀取登入記錄。

Azure 入口網站

  1. 以報表讀取者、安全性讀取者、全域讀取者、安全性系統管理員或其他具有許可權的角色登入 Azure 入口網站
  2. 流覽至 Microsoft Entra ID>登入記錄。
  3. 選取 [+ 新增篩選>IP 位址],然後選取 [套用]。
  4. 在 [ 依 IP 位址 篩選] 方塊中,插入冒號 ()。
  5. 選擇性地將此記錄專案清單下載至 JSON 或 CSV 格式,以便進一步處理。

Log Analytics

如果您的組織使用 Log Analytics,您可以使用下列查詢來查詢記錄中的 IPv6 位址。

union SigninLogs, AADNonInteractiveUserSignInLogs
| where IPAddress has ":"
| summarize RequestCount = count() by IPAddress, AppDisplayName, NetworkLocationDetails
| sort by RequestCount

PowerShell

組織可以使用下列 PowerShell 腳本,在 graph PowerShell Microsoft 中查詢Microsoft Entra 登入記錄。 腳本會提供 IPv6 位址清單,以及應用程式及其出現次數。

$tId = "TENANT ID"  # Add the Azure Active Directory tenant ID.
$agoDays = 2  # Will filter the log for $agoDays from the current date and time.
$startDate = (Get-Date).AddDays(-($agoDays)).ToString('yyyy-MM-dd')  # Get filter start date.
$pathForExport = "./"  # The path to the local filesystem for export of the CSV file. 

Connect-MgGraph -Scopes "AuditLog.Read.All" -TenantId $tId 

# Get both interactive and non-interactive IPv6 sign-ins.
$signInsInteractive = Get-MgAuditLogSignIn -Filter "contains(IPAddress, ':')" -All
$signInsNonInteractive = Get-MgAuditLogSignIn -Filter "contains(IPAddress, ':')" -All 

# Summarize IPv6 & app display name count.
$signInsInteractive |
    Group-Object IPaddress, AppDisplayName |
    Select-Object @{Name = 'IPaddress'; Expression = {$_.Group[0].IPaddress}},
        @{Name = 'AppDisplayName'; Expression = {$_.Group[0].AppDisplayName}},
        Count |
    Sort-Object -Property Count –Descending |
    Export-Csv -Path ($pathForExport + "Summary_Interactive_IPv6_$tId.csv") -NoTypeInformation
$signInsNonInteractive |
    Group-Object IPaddress, AppDisplayName |
    Select-Object @{Name = 'IPaddress'; Expression = {$_.Group[0].IPaddress}},
        @{Name = 'AppDisplayName'; Expression = {$_.Group[0].AppDisplayName}},
        Count |
    Sort-Object -Property Count –Descending |
    Export-Csv -Path ($pathForExport + "Summary_NonInteractive_IPv6_$tId.csv") -NoTypeInformation

下一步

我們會持續更新這篇文章。 以下是一個簡短的連結,可用來返回更新和新的資訊: https://aka.ms/azureadipv6

與我們連絡,以取得說明

如果您有問題或需要相關協助,請建立支援要求,或詢問 Azure community 支援。 您也可以向 Azure 意見反應社群提交產品意見反應。