VPN 配置文件概述
虚拟专用网络 (VPN) 为用户提供对组织网络的安全远程访问。 设备使用 VPN 连接配置文件以启动与 VPN 服务器的连接。 在Intune中,VPN 配置文件将 VPN 设置分配给组织中的用户和设备。 然后,用户可以轻松安全地连接到组织网络。
例如,如果要使用连接到组织网络上的文件共享所需的设置配置所有 iOS 设备,可以创建包含这些设置的 VPN 配置文件,并将此配置文件分配给拥有 iOS 设备的所有用户。 之后,用户可以在可用网络列表中看到 VPN 连接,并且只需极少的工作量即可进行连接。
可以使用不同的 VPN 连接类型创建 VPN 配置文件。
必须先为配置文件安装适用的 VPN 应用,然后才能使用分配给设备的 VPN 配置文件。
如何创建 VPN 配置文件
若要创建 VPN 配置文件,请按照
创建设备配置文件
中的步骤操作。
有关示例,请参阅以下屏幕截图:
在示例中,Android 和 iOS VPN 配置文件的连接类型为 Cisco AnyConnect,Windows 10的连接类型为 Automatic。 VPN 配置文件链接到 SCEP 配置文件。
组类型部署 (用户组或设备组) 非常重要,它必须在涉及此资源策略 (受信任的证书、SCEP 和 VPN) 的所有策略中保持一致。 这取决于要部署的证书类型。 如果要部署用户证书,则所有部署都应为用户组,反之亦然。 如果部署的证书是设备类型 1,请使用设备组。
有关示例,请参阅以下屏幕截图:
成功的 VPN 配置文件的外观
Android
Windows
使用设备管理员管理的 Android 设备时,可能会有多个证书,因为在更改或删除证书配置文件时,证书不会吊销或删除。 在此方案中,选择最新的证书。 它通常是列表中显示的最后一个证书。
Android Enterprise 和 Samsung Knox 设备上不会出现这种情况。 有关详细信息,请参阅
使用 Intune 管理 Android 工作配置文件设备和
删除 Microsoft Intune 中的 SCEP 和 PKCS 证书
。
已成功创建 VPN 连接。
在 Android 设备上,
Omadmlog.log
文件记录在设备上处理 VPN 配置文件的详细活动。 根据公司门户应用的安装时间长度,最多可能有五个
Omadmlog.log
文件,并且上次同步的时间戳可以帮助你查找相关条目。
以下示例使用
CMTrace
读取日志并搜索
android.vpn.client
。
示例日志:
<Date Time> INFO com.microsoft.omadm.platforms.android.vpn.client.IntentVpnProfileProvisionStateMachine 13229 00622 Notifying to provision vpn profile 'AnyConnect'.
<Date Time> INFO com.microsoft.omadm.platforms.android.vpn.client.IntentVpnProfileProvisionStateMachine 13229 00622 VPN Profile "AnyConnect" state changed from RECEIVED to PENDING_USER_INSTALL
<Date Time> VERB com.microsoft.omadm.platforms.android.vpn.client.VpnClient 13229 00002 Creating VPN Provision Intent: anyconnect://create/?host=VPN.contoso.com&name=AnyConnect&usecert=true&keychainalias=UserID
<Date Time> INFO com.microsoft.omadm.platforms.android.vpn.client.IntentVpnProfileProvisionStateMachine 13229 00002 Vpn profile 'AnyConnect' provisioned and complete.
<Date Time> INFO com.microsoft.omadm.platforms.android.vpn.client.IntentVpnProfileProvisionStateMachine 13229 00002 VPN Profile "AnyConnect" state changed from PENDING_USER_INSTALL to PROVISIONED
在 iOS 设备上,公司门户日志不包含有关 VPN 配置文件的任何信息。 若要查看 VPN 配置文件的安装详细信息,请查看控制台或设备日志,如下所示:
将 iOS 设备连接到 Mac,然后选择“ 应用程序>实用工具 ”以打开“控制台”应用。
在“操作”下,选中“包括信息消息”和“包括调试消息”选项。
重现方案,并将日志保存到文本文件:
选择当前屏幕上的所有消息: “编辑”>选择“全选”。
复制邮件: 编辑>副本。
将日志数据粘贴到文本编辑器中,然后保存该文件。
若要查看详细信息,请使用 VPN 配置文件名称搜索文件。
示例日志:
debug <Time> -0400 profiled createConfigurationFromPayload type com.apple.vpn.managed.applayer, name 'ContosoVPN', atom \{\
PayloadDisplayName = "VPN Profile - ContosoVPN";\
UserDefinedName = ContosoVPN;\
RemoteAddress = "Contoso.com";\
PayloadDisplayName = "VPN Profile - ContosoVPN";\
UserDefinedName = ContosoVPN;\
RemoteAddress = "Contoso.com";\
PayloadDisplayName = "VPN Profile - ContosoVPN";\
UserDefinedName = ContosoVPN;\
RemoteAddress = "Contoso.com";\
RemoteAddress = "Contoso.com";\
debug <Time> -0400 profiled configurePluginWithPayload: done, serverAddress Contoso.com, providerConfiguration \{\
RemoteAddress = "Contoso.com";\
serverAddress = Contoso.com\
PayloadDisplayName = "VPN Profile - ContosoVPN";\
UserDefinedName = ContosoVPN;\
RemoteAddress = "Contoso.com";\
serverAddress = Contoso.com\
debug <Time> -0400 profiled NEConfiguration initWithAppLayerVPNPayload: done, serverAddress Contoso.com\
PayloadIdentifier = "www.windowsintune.com.vpn.ContosoVPN";\
debug <Time> -0400 profiled NEProfileIngestion saveConfiguration: 'ContosoVPN'\
default <Time> -0400 profiled Saving configuration ContosoVPN with existing signature (null)\
default <Time> -0400 profiled Successfully saved configuration ContosoVPN\
default <Time> -0400 profiled Profile \'93www.windowsintune.com.vpn.ContosoVPN\'94 installed.\
在 Windows 设备上,有关 VPN 配置文件的详细信息记录在事件查看器的以下位置:
应用程序和服务日志>> Microsoft Windows>DeviceManagement-Enterprise-Diagnostic-Provider>管理员
应用程序和服务日志>> Microsoft Windows>DeviceManagement-Enterprise-Diagnostic-Provider>Debug
必须在事件查看器中选择“显示分析和调试日志”选项才能查看这些日志。
示例日志:
Event 6165
Log Name: Microsoft-Windows-DeviceManagement-Enterprise-Diagnostics-Provider/Debug
Source: Microsoft-Windows-DeviceManagement-Enterprise-Diagnostics-Provider
Date: <Date Time>
Event ID: 401
Task: N/A
Level: Information
Opcode: Info
Keyword: N/A
User: SID
User Name: NT AUTHORITY\SYSTEM
Computer: <Computer Name>
Description:
MDM ConfigurationManager: CSP Node Operation. Configuration Source ID: (ID), Enrollment Name: (MDMFullWithAAD), Provider Name: (VPNv2), Operation: (Add), CSP URI: (./User/Vendor/MSFT/VPNv2), Child URI: (Contoso), Result: (The operation completed successfully.).
常见问题故障排除
问题 1:VPN 配置文件未部署到设备
Android
Windows
如果 VPN 配置文件链接到受信任的根配置文件和 SCEP 配置文件,请验证两个配置文件是否已部署到设备。 VPN 配置文件依赖于这些配置文件。
如果设备上未安装受信任的根和 SCEP 配置文件,则会在 公司门户 日志文件中看到以下条目, (Omadmlog.log) :
<Date Time> INFO com.microsoft.omadm.platforms.android.vpn.client.IntentVpnProfileProvisionStateMachine 14210 00948 Waiting for required certificates for vpn profile 'androidVPN'.
即使受信任的根和 SCEP 配置文件位于设备上且合规,VPN 配置文件仍可能不在设备上。 当公司门户应用中的提供程序找不到与指定条件匹配的证书时CertificateSelector
,会出现此问题。 特定条件可以在证书模板或 SCEP 配置文件中。 如果未找到匹配的证书,则将排除设备上的证书。 因此,将跳过 VPN 配置文件,因为它没有正确的证书。 在此方案中,在 公司门户 日志文件中看到以下条目 (Omadmlog.log) :
Waiting for required certificates for vpn profile 'androidVPN'.
以下示例日志显示,由于指定了 EKU () 条件,因此排除了证书。 但是,分配给设备的证书没有 EKU:
<Date Time> VERB com.microsoft.omadm.utils.CertUtils 14210 00948 Excluding cert with alias User<ID1> and requestId <requestID1> as it does not have any purpose EKU.
<Date Time> VERB com.microsoft.omadm.utils.CertUtils 14210 00948 Excluding cert with alias User<ID2> and requestId <requestID2> as it does not have any purpose EKU.
<Date Time> VERB com.microsoft.omadm.utils.CertUtils 14210 00948 0 cert(s) matched criteria:
<Date Time> VERB com.microsoft.omadm.utils.CertUtils 14210 00948 2 cert(s) excluded by criteria:
<Date Time> INFO com.microsoft.omadm.platforms.android.vpn.client.IntentVpnProfileProvisionStateMachine 14210 00948 Waiting for required certificates for vpn profile '<profile name>'.
以下示例显示 SCEP 配置文件具有指定的 “任何用途 EKU”选项。 但是,它未在证书颁发机构的证书模板中指定, (CA) 。 若要解决此问题,请将 “任何用途” 选项添加到证书模板,或从 SCEP 配置文件中删除 “任何用途” 选项。
验证完整证书链中的所有必需证书是否都位于设备上。 否则,将在 公司门户 日志文件中看到以下条目 (Omadmlog.log) :
Waiting for required certificates for vpn profile 'androidVPN'.
有关详细信息,请参阅 缺少中间证书颁发机构。
如果 VPN 配置文件链接到受信任的根配置文件和 SCEP 配置文件,请验证两个配置文件是否已部署到设备。 VPN 配置文件依赖于这些配置文件。
对于Windows 10设备,请查看 MDM 诊断信息日志。
下载 MDM 诊断信息日志。
若要检查报表,请导航到 C:\Users\Public\Documents\MDMDiagnostics 文件夹。
如果可以,请检查在手动连接中使用的证书的属性,并更改Intune VPN 配置文件。
对于 Android 和 iOS 设备,VPN 客户端应用程序日志是否显示设备尝试连接到 VPN 配置文件?
通常,连接错误记录在 VPN 客户端应用程序日志中。
对于 Windows 设备,Radius 服务器日志是否显示设备尝试连接到 VPN 配置文件?
通常,连接错误记录在 Radius 服务器日志中。
如何在 AnyConnect 应用中查看日志
若要查看日志,请参阅以下适用于 Android 和 iOS 设备的两个示例。
示例 1:查看 Android 设备上的日志
选择 “菜单>诊断”。
若要查看证书,请选择“ 证书管理”。
用于创建 VPN 的示例日志:
<Date Time> I/AnyConnect(14530): URIHandlerActivity: Received command: anyconnect://create?host=VPN.Contoso.com&name=AnyConnect&usecert=true&keychainalias=UserID
<Date Time> I/AnyConnect(14530): VpnService: VpnService is being created.
VPN 连接失败的示例日志:
<Date Time> I/vpnapi (14530): Message type information sent to the user: Contacting VPN.Contoso.com.
<Date Time> I/vpnapi (14530): Initiating VPN connection to the secure gateway https://VPN.Contoso.com
<Date Time> I/acvpnagent(14592): Using default preferences. Some settings (e.g. certificate matching) may not function as expected if a local profile is expected to be used. Verify that the selected host is in the server list section of the profile and that the profile is configured on the secure gateway.
<Date Time> I/acvpnagent(14592): Function: processConnectNotification File: MainThread.cpp Line: 14616 Received connect notification (host VPN.Contoso.com, profile N/A)
<Date Time> W/acvpnagent(14592): Function: getHostIPAddrByName File: SocketSupport.cpp Line: 344 Invoked Function: ::getaddrinfo Return Code: 11 (0x0000000B) Description: unknown
<Date Time> W/acvpnagent(14592): Function: resolveHostName File: HostLocator.cpp Line: 710 Invoked Function: CSocketSupport::getHostIPAddrByName Return Code: -31129588 (0xFE25000C) Description: SOCKETSUPPORT_ERROR_GETADDRINFO
<Date Time> W/acvpnagent(14592): Function: ResolveHostname File: HostLocator.cpp Line: 804 Invoked Function: CHostLocator::resolveHostName Return Code: -31129588 (0xFE25000C) Description: SOCKETSUPPORT_ERROR_GETADDRINFO failed to resolve host name VPN.Contoso.com to IPv4 address
<Date Time> I/vpnapi (14530): Message type warning sent to the user: Connection attempt has failed.
<Date Time> E/vpnapi (14530): Function: processIfcData File: ConnectMgr.cpp Line: 3399 Content type (unknown) received. Response type (DNS resolution failed) from VPN.Contoso.com: DNS resolution failed
<Date Time> I/vpnapi (14530): Message type warning sent to the user: Unable to contact VPN.Contoso.com.
<Date Time> E/vpnapi (14530): Function: processIfcData File: ConnectMgr.cpp Line: 3535 Unable to contact VPN.Contoso.com DNS resolution failed
<Date Time> I/vpnapi (14530): Message type error sent to the user: The VPN connection failed due to unsuccessful domain name resolution.
示例 2:在 iOS 设备上查看日志
若要查看用户证书,请选择“ 诊断>证书”。
若要查看日志消息,请选择“ 诊断”,启用 “VPN 调试日志” 选项以启用日志记录,然后选择“ 日志”。
若要显示服务调试日志消息,请选择“ 服务”。
若要显示应用程序调试日志消息,请选择“ 应用”。
显示 VPN 配置文件的 AnyConnect_App_Debug_Logs.txt 文件的示例日志:
[<Date Time>] Info: Function: SaveSettings File: AppleVpnConfig.mm Line: 198 SaveSettings {type = mutable dict, count = 3, entries => 0 : {contents = "RemoteAddress"} = {contents = "Contoso.com"} 1 : {contents = "AuthenticationMethod"} = {contents = "Certificate"} 2 : {contents = "LocalCertificate"} = <69646e74 00000000 000002d3> }
[<Date Time>] Info: Function: GetSettings File: AppleVpnConfig.mm Line: 175 GetSettings { AuthenticationMethod = Certificate; LocalCertificate = <69646e74 00000000 000002d3>; RemoteAddress = "Contoso.com"; }
[<Date Time>] Info: Function: -[AppleVpnConfigBatch startBatchSaveToSystem] File: AppleVpnConfigBatch.mm Line: 43 Invoking save to system with 0x28202fd60
[<Date Time>] Info: Function: saveToSystem_block_invoke File: AxtVpnConfig.mm Line: 222 Successfully saved profile for Contoso.com
[<Date Time>] Info: Function: -[AppleVpnConfigBatch startBatchSaveToSystem] File: AppleVpnConfigBatch.mm Line: 36 completed!.
显示 VPN 连接失败 的AnyConnect_Messages.txt 文件的示例日志:
[<Date Time>] [VPN] - Contacting Contoso.com.
[<Date Time>] [VPN] - Connection attempt has failed.
[<Date Time>] [VPN] - Unable to contact CoolBreeze.com.
[<Date Time>] [VPN] - Connection attempt has timed out. Please verify Internet connectivity.
显示 VPN 连接失败 的AnyConnect_Plugin_Debug_Logs.txt 文件的示例日志:
[<Date Time>] Info: Message type information sent to the user: Contacting Contoso.com.
[<Date Time>] Info: Initiating VPN connection to the secure gateway https://Contoso.com
[<Date Time>] Info: Function: NoticeCB File: AnyConnectAuthenticator.cpp Line: 2116 Sending notice Contacting Contoso.com. to App
[<Date Time>] Error: Function: SendRequest File: CTransportCurlStatic.cpp Line: 2046 Invoked Function: curl_easy_perform Return Code: -29949904 (0xFE370030) Description: CTRANSPORT_ERROR_TIMEOUT 28 : Error
[<Date Time>] Error: Function: TranslateStatusCode File: ConnectIfc.cpp Line: 3169 Invoked Function: TranslateStatusCode Return Code: -29949904 (0xFE370030) Description: CTRANSPORT_ERROR_TIMEOUT Connection attempt has timed out. Please verify Internet connectivity.
[<Date Time>] Error: Function: doConnectIfcConnect File: ConnectMgr.cpp Line: 2442 Invoked Function: ConnectIfc::connect Return Code: -29949904 (0xFE370030) Description: CTRANSPORT_ERROR_TIMEOUT
[<Date Time>] Info: Message type warning sent to the user: Connection attempt has failed.
[<Date Time>] Error: Function: processIfcData File: ConnectMgr.cpp Line: 3407 Content type (unknown) received. Response type (host unreachable) from Contoso.com:
[<Date Time>] Info: Message type warning sent to the user: Unable to contact Contoso.com.
[<Date Time>] Info: Function: NoticeCB File: AnyConnectAuthenticator.cpp Line: 2116 Sending notice Connection attempt has failed. to App
[<Date Time>] Error: Function: processIfcData File: ConnectMgr.cpp Line: 3543 Unable to contact Contoso.com
[<Date Time>] Info: Function: NoticeCB File: AnyConnectAuthenticator.cpp Line: 2116 Sending notice Unable to contact Contoso.com. to App
[<Date Time>] Info: Message type error sent to the user: Connection attempt has timed out. Please verify Internet connectivity.
如果仍在查找相关问题的解决方案,或者想要了解有关Microsoft Intune的详细信息,请在Microsoft Intune论坛中发布问题。 许多支持工程师、MVP 和开发团队成员都访问了论坛。 因此,很有可能找到具有所需信息的人员。
如果要向Microsoft Intune产品支持团队提出支持请求,请参阅如何获取Microsoft Intune的支持。
有关 Intune 中的 VPN 配置文件的详细信息,请参阅以下文章:
Intune 中配置 VPN 的 Android 设备设置
在 Microsoft Intune 的 iOS 设备上配置 VPN 设置
使用 Intune 添加 VPN 连接的 Windows 10 和 Windows 全息设备设置
支持提示 - 如何在 Intune 中为 SCEP 证书部署配置 NDES
排查 Microsoft Intune 中的 SCEP 证书配置文件部署问题
排查用于Microsoft Intune证书配置文件的 NDES 配置问题
有关所有最新新闻、信息和技术提示,请访问官方博客:
Microsoft Intune支持团队博客
Microsoft企业移动性和安全性博客