【问题标题】:How to solve authentication failure with CNAME in url如何在 url 中使用 CNAME 解决身份验证失败
【发布时间】:2020-06-03 16:05:37
【问题描述】:

我们有一个使用 Liferay 6.2 编写并部署在 tomcat 服务器上的 Web 应用程序。使用集成 Windows 身份验证访问应用程序。如果主机名直接用于 url 访问,一切正常。

为了隐藏实际的主机名,创建了 CNAME 记录。当用于访问时,用户会收到重复的凭据提示,并且尽管输入了正确的凭据,但身份验证被拒绝。

我们尝试使用命令setspn -a "HTTP/<<friendly name>>" 为 CNAME 创建 SPN。由于使用 HTTPS 在标准端口 443 上建立连接,因此在创建 SPN 时未指定端口号。但是,重复的身份验证提示仍然不断出现。该应用程序使用服务帐户运行。在创建 SPN 时包括服务帐户可能是一种选择。如果对其他可以尝试的方法有任何建议,请分享。

【问题讨论】:

    标签: kerberos ntlm cname


    【解决方案1】:

    “一切正常”是什么意思?您是否收到提示并且当您输入凭据时它可以正常工作,或者它会 SSO 并在没有提示的情况下让您登录?

    您收到提示是因为 a) 新的 cname 不被认为位于 Intranet/受信任的 Internet 区域中。请参阅 Internet 选项 > 安全 > 本地 Intranet/受信任的站点 > 站点。或者 b) 发送到服务器的请求票证失败。

    通常您也不会将 cname 注册为 SPN。您将 cname 指向的 A 记录注册为 SPN。我的猜测是这导致了失败。 SPN 注册到错误的服务帐户,因此 KDC 使用了错误的服务帐户密钥。

    【讨论】:

    • 使用 url 中的主机名,第一次尝试时会出现一次提示,并且 AuthN 可以通过正确的凭据顺利通过。我将带有 CNAME 的 url 添加到受信任的站点并且它有效。在此之后删除了带有 CNAME 的 SPN。将等待一段时间,让其他用户验证它。谢谢。
    猜你喜欢
    • 2012-11-13
    • 2018-11-02
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2012-01-28
    • 2017-11-27
    相关资源
    最近更新 更多