Compartir a través de

Microsoft Entra 应用程序代理常见问题解答

本页解答了有关 Microsoft Entra 应用程序代理的常见问题。

概况

是否可以从Microsoft Entra 管理中心的“应用注册”页修改应用程序代理应用?

否,应用代理正在使用以下配置项目,不应更改或删除:

  • 启用/禁用“允许公共客户端流”。
  • CWAP_AuthSecret(客户端机密)。
  • API 权限。 在“应用注册”页上修改上述任何配置项目会中断Microsoft Entra 应用程序代理的预身份验证。

是否可以从Microsoft Entra 管理中心的应用注册页中删除应用程序代理应用?

否,应从 Microsoft Entra 管理中心 的企业应用程序 区域中删除应用程序代理应用。 如果从 Microsoft Entra 管理中心 的应用注册 区域中删除应用程序代理应用,则可能会遇到问题。

使用 Microsoft Entra 应用程序代理需要哪些许可证?

若要使用 Microsoft Entra 应用程序代理,必须具有 Microsoft Entra ID P1 或 P2 许可证。 有关许可的详细信息,请参阅 Microsoft Entra 定价

如果我的许可证过期,我的租户中的 Microsoft Entra 应用代理会如何处理?

如果许可证过期,则会自动禁用应用程序代理。 应用程序信息最多保存一年。

为什么“启用应用程序代理”按钮灰显?

请确保至少安装了 Microsoft Entra ID P1 或 P2 许可证和 Microsoft Entra 专用网络连接器。 成功安装第一个连接器后,会自动启用 Microsoft Entra 应用程序代理服务。

连接器配置

应用程序代理是否使用与 Microsoft Entra Private Access 相同的连接器?

是的,Microsoft Entra 的专用网络连接器同时被应用程序代理和 Microsoft Entra Private Access 使用。

ConnectorTroubleshooter 无法启动

ConnectorTroubleshooterLauncher.exe 已弃用,不再正常运行。 目前,没有可用的替换项。

是否可以更改 Microsoft Entra Private Network Connector/ Updater Services 的登录用户?

不支持更改连接器或更新程序服务的登录用户。

正确配置:

Microsoft Entra Private Network Connector: Network Service Microsoft Entra Private Network Connector Updater: NT Authority\System

应用程序配置

是否可以在外部 URL 中使用域后缀“[tenant name].partner.onmschina.cn”或“[tenant name].mail.partner.onmschina.cn”?

尽管这些后缀显示在后缀列表中,但不应使用这些后缀。 这些域后缀不用于 Microsoft Entra 应用程序代理。 如果使用这些域后缀,则创建的Microsoft Entra 应用程序代理应用程序将不起作用。 可以使用标准域后缀 msappproxy.net自定义域

应用程序代理是否支持主权和区域云?

Microsoft Entra ID 具有应用程序代理服务,它允许用户使用其Microsoft Entra 帐户登录来访问本地应用程序。 如果已在不同区域中安装了连接器,则可以通过选择要与每个连接器组一起使用的最近的应用程序代理云服务区域来优化流量,请参阅“ 使用 Microsoft Entra 应用程序代理优化流量流”。

我收到一个关于证书无效或密码可能错误的错误信息。

上传 SSL 证书后,会在门户中收到消息“证书无效,密码可能错误”。

下面是排查此错误的一些提示:

  • 检查证书是否存在问题。 在本地计算机上安装它。 如果没有遇到任何问题,则证书是好的。
  • 确保密码不包含任何特殊字符。 密码应仅包含字符 0-9、A-Z 和 a-z。
  • 如果证书是使用Microsoft软件密钥存储提供程序创建的,则必须使用 RSA 算法。

默认值和“long”后端超时的长度是多少? 超时是否可以延长?

默认长度为 85 秒。 “long”设置为 180 秒。 无法扩展超时限制。

服务主体是否可以使用 PowerShell 或 Microsoft Graph API 管理应用程序代理?

否,目前不支持此功能。

如果在应用注册中删除CWAP_AuthSecret(客户端密码),会发生什么情况?

创建 Microsoft Entra 应用程序代理应用时,客户端密码(也称为 CWAP_AuthSecret)会自动添加到应用程序对象(应用注册)。

客户端密码有效期为一年。 在当前有效的客户端密码过期之前,会自动创建一年的新客户端密码。 始终将三个CWAP_AuthSecret客户端机密保存在应用程序对象中。

重要

删除CWAP_AuthSecret会中断Microsoft Entra 应用程序代理的预身份验证。 请勿删除CWAP_AuthSecret。

我正在使用或想要使用 Microsoft Entra 应用程序代理。 我可以按照文章《在 Microsoft 365 中添加和替换你的 partner.onmschina.cn 回退域》中所建议的替换我的租户在 Microsoft 365 中的 "partner.onmschina.cn" 回退域吗?

否,必须使用原始备选域名。

有关文章: 在 Microsoft 365 中添加或替换 partner.onmschina.cn 备用域

如何更改应用程序加载的登陆页面?

在“应用程序注册”页中,可以将主页 URL 更改为登陆页面的所需外部 URL。 从“我的应用”或 Office 365 门户启动应用程序时,将加载指定的页面。 有关配置步骤,请参阅 使用 Microsoft Entra 应用程序代理为已发布的应用设置自定义主页

为什么当 URL 包含“#”(井号标签)字符时,我尝试访问已发布的应用程序会被重定向到截断的 URL?

如果配置了 Microsoft Entra 预身份验证,并且首次尝试访问应用程序时,应用程序 URL 包含“#”字符,则会重定向到Microsoft Entra ID(login.partner.microsoftonline.cn)进行身份验证。 完成身份验证后,你会在“#”字符之前重定向到 URL 部分,而“#”之后的所有内容似乎将被忽略/删除。 例如,URL 在 https://www.contoso.com/#/home/index.html完成Microsoft Entra 身份验证后,用户将被重定向到 https://www.contoso.com/。 此行为是设计造成的,因为浏览器如何处理“#”字符。

可能的解决方法/替代方法:

  • 设置从https://www.contoso.comhttps://contoso.com/#/home/index.html的重定向。 用户必须首先访问 https://www.contoso.com
  • 用于第一次访问尝试的 URL 必须以编码形式(%23)中包含“#”字符。 已发布的服务器可能不接受此内容。
  • 配置透传预身份验证类型(不建议)。

只能发布基于 IIS 的应用程序? 在非 Windows Web 服务器上运行的 Web 应用程序呢? 连接器是否必须在安装了 IIS 的服务器上安装?

否,发布的应用程序不需要 IIS。 可以发布在 Windows Server 以外的服务器上运行的 Web 应用程序。 但是,你可能无法将预身份验证用于非 Windows Server,具体取决于 Web 服务器是否支持 Negotiate(Kerberos 身份验证)。 安装连接器的服务器上不需要 IIS。

是否可以配置应用程序代理以添加 HSTS 标头?

应用程序代理不会自动将 HTTP Strict-Transport-Security 标头添加到 HTTPS 响应,但如果标头位于已发布应用程序发送的原始响应中,它将维护标头。 提供启用此功能的设置已列入路线图。

是否可以在外部 URL 中使用自定义端口号?

否,如果在外部 URL 中配置了协议 http ,则Microsoft Entra 应用程序代理终结点接受端口 TCP 80 上的传入请求(如果协议 https 位于端口 TCP 443 上)。

是否可以在内部 URL 中使用自定义端口号?

是的,一些内部 URL 的示例,包括端口: http://app.contoso.local:8888/https://app.contoso.local:8080/https://app.contoso.local:8081/test/

如果外部 URL 和内部 URL 不同,有哪些挑战?

已发布的 Web 应用程序发送的某些响应可能包含硬编码 URL。 在这种情况下,必须确保通过使用链接转换解决方案,客户端始终使用正确的 URL。 链接翻译解决方案可能比较复杂,在所有方案中都不起作用。 您可以在此处找到我们记录的链接翻译解决方案。

作为最佳做法,建议使用相同的外部和内部 URL。 如果 protocol://hostname:port/path/ 两个 URL 中的 URL 相同,则外部 URL 和内部 URL 被视为相同。

这可以通过使用 自定义域 功能来实现。

示例:

相同:

External URL: https://app1.contoso.com/test/
Internal URL: https://app1.contoso.com/test/

不完全相同:

External URL: https://app1.contoso.com/test/
Internal URL: http://app1.contoso.com/test/

External URL: https://app1.contoso.com/test/
Internal URL: https://app1.contoso.com:8080/test/

External URL: https://app1.msappproxy.net/test/
Internal URL: https://app1.contoso.com:/test/

如果内部 URL 包含非标准端口(而不是 TCP 80/443),则无法使外部和内部 URL 完全相同。

在某些情况下,必须在 Web 应用的配置中完成更改。

Windows 集成身份验证

何时应在设置 Kerberos 约束委派(KCD)时使用 PrincipalsAllowedToDelegateToAccount 方法?

当连接器服务器处于与 Web 应用程序服务帐户不同的域中时,需要使用 PrincipalsAllowedToDelegateToAccount 方法。 它需要使用基于资源的约束委派。 如果连接器服务器和 Web 应用程序服务帐户位于同一域中,则可以使用 Active Directory 用户和计算机在每个连接器计算机帐户上配置委派设置,从而允许它们委托给目标 SPN。

如果连接器服务器和 Web 应用程序服务帐户位于不同的域中,则使用基于资源的委派。 在目标 Web 服务器和 Web 应用程序服务帐户上配置委派权限。 约束委派的此方法相对较新。 该方法是在 Windows Server 2012 中引入的,它通过允许资源(Web 服务)所有者控制哪些计算机和服务帐户可以委托给它,从而支持跨域委派。 没有 UI 可协助此配置,因此需要使用 PowerShell。 有关详细信息,请参阅白皮书 《理解使用应用程序代理的 Kerberos 约束委派》

NTLM 身份验证是否适用于 Microsoft Entra 应用程序代理?

NTLM 身份验证不能用作预身份验证或单一登录方法。 NTLM 身份验证只能在客户端和已发布的 Web 应用程序之间直接协商时使用。 使用 NTLM 身份验证通常会导致在浏览器中显示登录提示。

是否可以在 B2B IWA 单一登录方案中使用登录标识“本地用户主体名称”或“本地 SAM 帐户名称” ?

否,这不起作用,因为Microsoft Entra ID 中的来宾用户没有上述任何登录标识所需的属性。

在这种情况下,会退回到“用户主体名称”。 有关 B2B 场景的更多详细信息,请阅读 将 Microsoft Entra ID 中的 B2B 用户授权访问您的本地应用程序

透传预身份验证

是否可以对通过直通预身份验证发布的应用程序使用条件访问策略?

条件访问策略仅适用于Microsoft Entra ID 中经过成功身份验证的用户。 传递预身份验证不会触发Microsoft Entra 身份验证,因此无法强制实施条件访问策略。 使用直通预身份验证时,必须在本地服务器上实现 MFA 策略(如果可能),或通过使用 Microsoft Entra 应用程序代理启用 Microsoft Entra ID 预身份验证。

是否可以发布具有客户端证书身份验证要求的 Web 应用程序?

否,此方案不受支持,因为应用程序代理会终止 TLS 流量。

远程桌面网关发布

如何通过 Microsoft Entra 应用程序代理发布远程桌面网关?

是否可以在远程桌面网关发布方案中使用 Kerberos 约束委派(单一登录 - Windows 集成身份验证?

不可以,不支持这种方案。

我的用户不使用 Internet Explorer 11,预身份验证方案不适用于它们。 这是正常情况吗?

是的,这是预期的。 预身份验证方案需要 ActiveX 控件,该控件在第三方浏览器中不受支持。

远程桌面 Web 客户端(HTML5)是否受支持?

是的,该方案目前正在公共预览版提供。 请参阅 使用 Microsoft Entra 应用程序代理发布远程桌面

配置预身份验证方案后,我意识到用户必须进行身份验证两次:首先在 Microsoft Entra 登录表单上,然后在 RDWeb 登录表单上进行身份验证。 这是正常情况吗? 如何简化为单次登录?

是的,这是预期的。 如果用户的计算机已加入 Microsoft Entra,则用户会自动登录到 Microsoft Entra ID。 用户只需在 RDWeb 登录表单上提供其凭据。

是否可以在“Microsoft Entra 预身份验证场景”的远程桌面 Web 客户端门户的“设置”中使用“资源启动方法”选项“下载 rdp 文件”?

此选项允许用户下载 rdp 文件,并将其由另一个 RDP 客户端(远程桌面 Web 客户端外部)使用。 通常情况下,其他 RDP 客户端(如 Microsoft 远程桌面客户端)无法以本机方式处理预身份验证。 这就是方案不起作用的原因。

SharePoint 发布

如何通过 Microsoft Entra 应用程序代理发布 SharePoint?

是否可以使用 SharePoint 移动应用(iOS/Android)访问已发布的 SharePoint Server?

SharePoint 移动应用目前不支持 Microsoft Entra 预身份验证。

Active Directory 联合身份验证服务 (AD FS) 发布

是否可以使用 Microsoft Entra 应用程序代理作为 AD FS 代理(如 Web 应用程序代理)?

否,Microsoft Entra 应用程序代理旨在处理 Microsoft Entra ID,并且不符合充当 AD FS 代理的要求。

可以使用 Microsoft Entra 应用程序代理发布任何 AD FS 终结点(例如 /adfs/portal/updatepassword/)吗?

否,不支持。

WebSocket

Microsoft Entra 应用程序代理是否支持 WebSocket 协议?

现在支持使用 WebSocket 协议的应用程序,例如 QlikSense 和远程桌面 Web 客户端(HTML5)。 以下是已知限制:

  • 应用程序代理在打开 WebSocket 连接时会丢弃服务器响应中设置的 Cookie。
  • WebSocket 请求没有应用 SSO。
  • Windows Admin Center(WAC)中的功能(Eventlogs、PowerShell 和远程桌面服务)无法通过 Microsoft Entra 应用程序代理工作。

WebSocket 应用程序没有任何唯一的发布要求,可以像所有其他应用程序代理应用程序一样 发布

链接翻译

使用链接翻译是否会影响性能?

是的。 链接翻译会影响性能。 应用程序代理服务扫描应用程序以获取硬编码的链接,并将其替换为其各自的已发布外部 URL,然后再将链接呈现给用户。

为了获得最佳性能,我们建议通过配置 自定义域来使用相同的内部和外部 URL。 如果无法使用自定义域,可以使用“我的应用安全登录扩展”或移动设备上的 Microsoft Edge Browser 来提高链接转换性能。 请参阅 使用 Microsoft Entra 应用程序代理发布的应用的重定向硬编码链接

通配符

如何使用通配符发布两个具有相同自定义域名但协议不同的应用程序,一个用于 HTTP,另一个用于 HTTPS?

此方案不受直接支持。 在此场景中,您的选项是:

  1. 使用通配符将 HTTP 和 HTTPS URL 作为单独的应用程序发布,但为每个 URL 提供不同的自定义域。 此配置的工作原理是因为它们具有不同的外部 URL。

  2. 通过通配符应用程序发布 HTTPS URL。 使用这些应用程序代理 PowerShell cmdlet 单独发布 HTTP 应用程序: