我们目前使用 NGINX 服务器作为各种服务和应用程序的反向代理。它处理和代理我们创建的 Web 应用程序的流量、API 代理服务器以及单独的编程 API。下面是显示代理背后的资源的示例图。
\n\n\xe2\x80\x8b foobar.com\n |-foobar.com/api\n |-foobar.com/webapp\n |-foobar.com/proxy\nRun Code Online (Sandbox Code Playgroud)\n\n我们有一个具有单点登录功能的企业 AD 系统。我正在尝试将其与 NGINX 反向代理集成,以便在访问 NGINX 后面的一项或多项服务时对用户进行身份验证。
\n\n我看过类似https://www.nginx.com/blog/nginx-plus-authenticate-users/的帖子这样的帖子描述了如何让 NGINX 通过让用户填写登录表单来使用用户的 AD 身份验证,但这不适用于我们的用例。这是因为其中一些用户将通过 HTTP CRUD 操作和/或 curl 命令与 API 服务和代理服务进行交互。此外,这些API和代理用户可能属于其他应用程序而不是人类。从这个意义上说,它们是完全程序化的交互。
\n\n如何配置 NGINX 以支持人工和编程 AD 身份验证?
\n我有一台 Windows 10 电脑。
我想在与我的 PC 连接的 Windows 域不同的用户的安全上下文中运行应用程序。
DomainXYZ\Walter。遗憾的是,我需要在 Linux 机器上为单个用户启用 telnet。其他所有人都必须使用 ssh。
如何配置 PAM 以限制哪些用户可以通过 telnet 服务器登录?
我们在远程办公室有一些用户只能通过 SonicWALL Global VPN Client 访问任何服务器。他们的机器是这里的 Active Directory 域的成员,因此他们可以在 VPN 连接处于活动状态时访问 Exchange 邮件和网络共享......效果很好。
问题是更改他们的域密码。如果我在服务器上为它们手动更改它,更改后发生的任何身份验证会话都应该没问题(访问共享、登录电子邮件)。但是他们的本地机器登录到域呢?他们是否仍需要使用之前在机器上缓存的密码登录?由于 VPN 连接是在登录后(在软件中)激活的,因此最初的 Windows 登录永远无法看到服务器。
有谁知道如果我们经历这个会发生什么?除了将机器带回现场之外,有人知道解决方法吗?
windows-server-2003 vpn password active-directory authentication
我们正在使用集成的 Windows 身份验证(我认为是 NTLM)。所有其他客户端似乎都运行良好,IE6 或 IE7。Intranet 站点位于 IE 中的受信任站点区域。
第一个测试的用户说 IE8 最初可以工作,但补丁可能已经破坏了它。我将我的工作 IE7 安装升级到 IE8 进行了测试,并看到了相同的行为。
访问该站点时,我们会收到登录提示,我们可以通过域\用户名和密码进行身份验证。从文档库访问某些内容时,我们也会再次收到提示。
有没有其他人看到过这种行为?
Sharepoint 2007 SP2 或切换到 Kerberos 会修复它吗?
下面可能是相关的,但是这个参考在服务器上运行IE8,另外,我们仍然可以进行身份验证,只是不能自动进行。
明确一点:我不打算编写自己的协议或自己的客户端实现。我正在寻找一个现有的协议,它是 HTTP 标准的一部分,它通常已经被普通浏览器支持。(这种东西可能不存在。)
我有一个 HTTP 应用程序,需要对中间人威胁进行一些保护。(服务器需要能够向客户端证明其响应的真实性。)加密是无关紧要的,也是不必要的。此外,考虑到预期的命中率,硬件预算非常少。
通常,我只需要一个便宜的证书并在 Web 服务器上启用 SSL,但是负载生成器同时杀死了 Apache 和 Nginx(我不希望任何其他 Web 服务器做得更好)。对于非 HTTP 服务,负载很好。我还尝试配置 HTTPS 服务器以协商空加密密码。这有点帮助,但 SSL 握手仍然太重。
响应文档上的简单 SHA-1 签名(由服务器生成),由客户端验证,很适合我。我编写了一个简单的 Python FastCGI 脚本和 HTTP 客户端来仅测试裸露的 SHA-1 操作——它增加了一些负载,但不多,甚至不接近带有空加密的 SSL 添加的负载。但实际上,我的客户端不是 Python 脚本,而是 Web 浏览器。
(再次声明:我不是在提议我自己的加密协议,Python 脚本只是测试 SHA-1 哈希本身与 SSL 协商的其余部分相比产生了多少负载。我不能使用自定义客户端实现,因为我无法为所有客户端浏览器安装它。)
那么:是否有任何现有的轻量级(与 SSL 相比)用于 HTTP 的服务器身份验证协议?
我们以前的系统管理员从全职变成了“按需”,给我留下了管理部分本地网络的“任务”。我的工作之一是更改用户的密码(除非出于某种原因,他们无法自己更改 LDAP 管理员密码)。据我所知,有一个主 LDAP 服务器用于对无数帐户的用户进行身份验证:ssh、redmine、samba、zimbra 等。
他指示我更改用户密码的程序包括:
因为我没有 Windows,所以发现将 VM 用于更改 LDAP 的密码是很愚蠢的。我自己也很固执,我拒绝相信这是唯一的出路。我不熟悉 LDAP,但我几乎可以肯定它从未打算以这种方式使用!
我的问题:你推荐什么工具来完成这项工作?
我为 OSX 尝试了 LDAPManager,但它没有“更改密码”按钮。我尝试更改 SambaPassword 字段(和其他..)但无济于事。这位前系统管理员说他已经尝试了所有可用的工具,并且只有 windows 版本允许您设置密码。[在此处插入WTF]
到目前为止我尝试了什么:
phpldapadmin 安装在服务器上,但我认为它配置错误,因为一旦我登录,我什至看不到正确的域名ldapadmin 在酒下,但它非常不稳定 ldappasswd 但无法理解发生了什么,它总是给我:
请输入您的密码:ldap_sasl_interactive_bind_s:凭据无效 (49)
无论我尝试什么。
现在,LDAP 对我来说有点黑魔法。几年前我在做系统管理员工作时,我从来没有配置过。现在我不明白我是否做错了什么,服务器是否配置不当,或者更改用户网络密码的唯一方法是否真的是依赖 Windows 专用工具(有点拒绝相信)。
所以我问大家:我该怎么办?而且,有必要这么复杂吗?我们这里只有 10 个人,为这样一个无法使用的系统浪费所有时间和精力真的有意义吗?
注意:我知道有脚本每隔几分钟运行一次“以保持 LDAP 密码和其他密码同步”,但我没有服务器的 root 访问权限,也不会在任何时候获得。
我想将 Apache 配置为直接从文件系统提供文件,但对用户进行身份验证/授权。如何配置 Apache 以便它调用我的身份验证中间件?
基本上:
1) 如果用户未通过身份验证,则重定向到登录。否则根据数据库检查会话 cookie。
2) 根据用户身份(授权)允许访问某些文件。
configuration authentication authorization middleware apache-2.2
我们的电话系统能够通过 LDAP 加载其电话簿,但它仅支持非 SSL。
因此,我计划设置一个帐户,该帐户只能访问我们的 Active Directory LDAP 数据库,最好只有电话簿所需的两个或三个字段(全名、电话号码等)。
这些 LDAP 登录详细信息以纯文本形式存储在手机上(并且因为它是非 SSL,全部以纯文本形式传输),所以我对这种方式的安全性非常谨慎,它有点超出了我的权限以前必须在 Windows 中进行设置。
那么,如何为 Windows 用户帐户分配权限以仅允许 LDAP 访问,并且仅允许访问 LDAP 查询中的特定属性?
在我为期末考试寻找更多信息时,我想知道 Windows 用户身份验证过程是如何工作的。
在我自己的想象中,它可能是这样的:
- 用户在他的 Windows 机器上输入登录信息
- 机器将凭据传递给 PDC
- PDC 询问活动目录
- AD 将条目与其数据库匹配
- AD 告诉 PDC --> OK
- PDC 告诉 windows 机器 --> OK
- windows机器登录用户
但也许windows机器只是跳过PDC并将请求直接传递给活动目录服务(例如unix机器将身份验证请求传递给LDAP服务器......)?
有人知道这是如何工作的吗?
authentication ×10
ldap ×2
password ×2
apache-2.2 ×1
http ×1
https ×1
linux ×1
middleware ×1
nginx ×1
pam ×1
security ×1
ssl ×1
telnet ×1
vpn ×1
windows ×1