AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1170130
Accepted
E_Cross
E_Cross
Asked: 2025-01-15 04:47:50 +0800 CST2025-01-15 04:47:50 +0800 CST 2025-01-15 04:47:50 +0800 CST

为什么在将 IWA 与 Negotiate 结合使用时 IIS 会错误识别我的用户帐户?

  • 772

如果这个问题偏离了主题,我深感抱歉;我正在尝试解决一些超出我专业领域的问题。

我最近将一个面向内部的 Web 应用程序迁移到 IIS。我还启用了以前没有使用的 Windows 身份验证 (IWA)。我发现的问题是,我的用户帐户(显然只有我的用户帐户)有时(并非总是)被身份验证过程错误识别。

以下是我的网站的 IIS 身份验证设置的详细信息:

  • 我已启用 Windows 身份验证并禁用其他所有内容(包括匿名身份验证)。
  • Windows 身份验证使用内核模式身份验证和Negotiate提供程序。

关于我提到的错误识别:

  • 我在同一个 AD 域中有两个用户帐户。分别称为acct1和acct2。我通常以 身份登录,在需要提升权限时acct1切换到。acct2
  • 我登录到运行 IIS 的 VMacct2来设置站点。
  • 当我返回本地电脑访问该网站时,该网站将我识别为acct2,尽管我以 的身份登录到我的电脑acct1。
  • 访问过该网站的其他人都已被正确识别,甚至包括像我一样拥有多个帐户的人。
  • 如果我以 身份登录并从另一台 PC 访问该网站acct1,则该网站会正确识别我为acct1。
  • 反常的是,如果我从服务器机器本身访问该网站,我以 的身份登录acct2,它会将我识别为acct1。
  • 不管怎样,acct2我在本地电脑上具有管理员权限,但在访问该网站的其他电脑上却没有。
  • 这种情况已经持续了一周多,即使重启本地电脑后问题仍然存在。不同的浏览器也会出现这种情况。

如果我将 IWA 提供程序从 切换Negotiate到NTLM,那么我会看到以下内容:

  • acct1当我从本地电脑访问该网站时,我就能正确识别。
  • 当我从 Web 服务器计算机访问网站时,系统提示我输入凭据。但是,它不接受acct1或 的凭据acct2。

我不太关心从服务器访问网站,但我从 PC 访问网站时需要正确识别身份。我想使用Negotiate而不是NTLM。

我是一名开发人员,而不是系统管理员,但我正在尝试寻找任何线索,以帮助我缩小问题范围,并可能为我们的基础设施团队指明正确的方向。这听起来像是 Active Directory 配置或 Kerberos 问题吗?

该网站是一个 Python Flask 应用程序,通过 Python 库在 IIS 中作为 FastCGI 应用程序运行wfastcgi。该网站读取请求变量的值REMOTE_USER以获取 IWA 身份验证过程的结果。

active-directory
  • 1 1 个回答
  • 79 Views

1 个回答

  • Voted
  1. Best Answer
    E_Cross
    2025-01-18T03:02:37+08:002025-01-18T03:02:37+08:00

    感谢@massimo 的提示,@grawity 对此进行了扩展,我找到了答案。原来这是一个与存储在 Windows 凭据管理器中的凭据相关的简单问题。

    我曾假设 Kerberos 身份验证过程将始终使用来自我活动的 Windows 登录的凭据,我以 的身份登录acct1。但是,与托管我的网站的机箱相关的凭据存储在凭据管理器中(在 Windows 凭据下,而不是 Web 凭据,仅供参考),并且系统似乎在意识到该网站托管在该机箱上后以某种方式使用了这些凭据。(我的理解在这里仍然很模糊。)保存的凭据使用acct2。

    无论如何,在删除已保存的凭据并重新启动我的电脑后,该网站就按照acct1我预期的那样识别了我。

    • 0

相关问题

  • 如果以域用户身份远程登录,PC 速度极慢

  • 如何在 Windows 2003 的 ou 级别应用策略

  • 允许用户更改其 Active Directory 密码的 Web 界面

  • MOSS 2007 无法使用 ActiveDirectoryMembershipProvider 配置表单身份验证

  • 通过 VPN 更改 Active Directory 密码

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve