标签: http-authentication

如何在 Apache httpd 虚拟主机中配置基本身份验证?

我正在尝试使用 Apache http 配置 mercurial 访问。它需要身份验证。我的/etc/apache2/sites-enabled/mercurial看起来像这样:

NameVirtualHost *:8080

<VirtualHost *:8080>
    UseCanonicalName Off
    ServerAdmin  webmaster@localhost
    AddHandler cgi-script .cgi
    ScriptAliasMatch ^(.*) /usr/lib/cgi-bin/hgwebdir.cgi/$1
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我在互联网上阅读的每个教程都告诉我插入这些行:

AuthType Basic
AuthUserFile /usr/local/etc/httpd/users
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,我收到以下错误:

# /etc/init.d/apache2 reload
Syntax error on line 8 of /etc/apache2/sites-enabled/mercurial:
AuthType not allowed here
Run Code Online (Sandbox Code Playgroud)

我的发行版是一个定制的 Ubuntu,称为 Turnkey Linux Redmine

httpd authentication mercurial http-authentication apache-2.2

53
推荐指数
3
解决办法
17万
查看次数

可以通过 HAProxy 添加基本的 HTTP 访问身份验证吗?

我已经在我无法控制的 HTTP 服务器前成功设置了 HAProxy 。

是否可以配置 HAProxy 以将简单 HTTP 身份验证添加到所有站点,记住我不能在后端配置它?

谢谢,

拉斯

haproxy http-authentication

26
推荐指数
1
解决办法
6万
查看次数

解决 IIS 7.5 中的 Windows 身份验证问题(无挑战)?

我知道有数以千计的人在将集成 Windows 身份验证与 IIS 一起使用时遇到问题的报告,但它们似乎都导致网页不适用或我已经尝试过的解决方案。我之前已经部署了几十个这样的站点,所以要么服务器/配置发生了一些奇怪的事情,要么我已经研究了太久而没有看到明显的情况。

简而言之,一切都在我的本地机器上完美运行,但在生产服务器上却崩溃了,据我所知,它具有完全相同的配置

在本地机器上:

  • 该机器运行的是 Windows 7 Ultimate、Service Pack 1、IIS 7.5。
  • 该站点已成功测试,使用 IIS 和 VS Web 开发服务器。
  • IIS 站点配置禁用了Windows 身份验证之外的所有身份验证方法。
  • 本地机器不在任何域中。
  • 设置的提供程序是 Negotiate 和 NTLM(不是 Negotiate:Kerberos)。
  • 扩展保护关闭。
  • 所有经过测试的浏览器(IE、Firefox、Chrome)都会显示质询提示,并允许我使用我的(本地)Windows 帐户登录到localhost域。
  • 所有经过测试的浏览器也使用不透明的本地 IP 地址工作 - 因此浏览器本身似乎并不关心该站点是“本地”还是“远程”。
  • 我在网页上添加了一条显示行,显示当前登录的用户,它准确地显示了我的期望(无论我使用哪个本地用户登录)。

在远程机器上:

  • 服务器运行的是 Windows Server 2008 R2、IIS 7.5。
  • 加载网页会立即导致401.2 错误:由于身份验证标头无效,您无权查看此页面。 从来没有出现过挑战提示。
  • IIS 站点配置禁用了Windows 身份验证之外的所有身份验证方法。
  • 远程机器不在任何域中。
  • 设置的提供程序是 Negotiate 和 NTLM(不是 Negotiate:Kerberos)。
  • 扩展保护关闭。
  • 在远程计算机(远程桌面会话)上,无论域是localhost还是外部 IP 地址,Internet Explorer 中都会出现相同的错误。 …

security iis authentication iis-7.5 http-authentication

22
推荐指数
2
解决办法
5万
查看次数

Apache - 在 AUTH 之前重定向到 https

我有一个开发站点,它需要用户名和密码(基本 http 身份验证)才能让用户看到该站点。我想先重定向到安全协议,然后用户才能以明文形式发送密码。关于如何使用 Apache 执行此操作的任何想法?我可以访问 conf 和 .htaccess 文件。

最终结果将是:

http://xxxx/ -- 当用户访问这里时,他们会立即被重定向到 https:

https -- 当用户到达这里时,会提示他们输入用户名/密码。

ssl redirect http-authentication apache-2.2

9
推荐指数
2
解决办法
8491
查看次数

在所有传入 URL 上使用 Mod_rewrite 和身份验证

我需要确保我的网址(称为 www.domain.com)始终至少通过基本 HTTP 身份验证受到保护。此外,我想使用 mod_rewrite 将我的用户发送到我的服务器上运行的两个 OC4j 实例之一。我还想使用相同的身份验证保护我的 OC4j 管理面板(和其他管理类型的功能)。我将有 2 个用户,称他们为 admin(管理员可以访问 OC4j 实例和 OC4j 管理面板)和来宾(访客只能访问 OC4j 实例)。

所以,假设我有两个 OC4j 实例——instance_a 和 instance_b。instance_a 将在端口 8888 上运行,instance_b 将在端口 8889 上运行。当用户键入 www.domain.com/instance_a 时,我想首先确保它们已通过服务器的身份验证,然后我想使用 mod_rewrite 将请求代理到 www .domain.com:8888/instance_a。这将适用于 instance_b。同样,任何用户,管理员或访客,都可以访问这些实例。如果用户尝试直接进入 OC4j 管理面板,如果他们不是管理员用户,我想将他们踢出去。

我有一个看起来像这样的 VirtualHost 条目:

<VirtualHost *:80>
        ServerName www.domain.com
        CustomLog "/var/log/httpd/ic/access_log" "combined"
        ErrorLog "/var/log/httpd/ic/error_log"
        RewriteEngine on
        RewriteLogLevel 9
        RewriteLog "/var/log/httpd/rewrite_log"
        RewriteCond %{REMOTE_USER} !^guest$ [OR]
        RewriteCond %{REMOTE_USER} !^admin$
        RewriteCond %{REQUEST_URI} ^/instance_a.*$
        RewriteRule ^.*$ - [F,L]
        <LocationMatch "^/.*$">
                AuthType Basic
                AuthName "Please Login"
                AuthBasicProvider file …
Run Code Online (Sandbox Code Playgroud)

mod-rewrite http-authentication apache-2.2

7
推荐指数
1
解决办法
3638
查看次数

如何在其他禁止的 Apache 目录中对单个文件使用基本身份验证?

我想允许访问在其他情况下被禁止的目录中的单个文件。

这不起作用:

<VirtualHost 10.10.10.10:80>
  ServerName example.com

  DocumentRoot /var/www/html

  <Directory /var/www/html>
    Options FollowSymLinks
    AllowOverride None
    order allow,deny
    allow from all
  </Directory>

  # disallow the admin directory: 
  <Directory /var/www/html/admin>
    order allow,deny
    deny from all
  </Directory>

  # but allow this single file:: 
  <Files      /var/www/html/admin/allowed.php>
      AuthType basic
      AuthName "private area"
      AuthUserFile /home/webroot/.htusers
      Require user admin1
  </Files>

  ...
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

当我访问时,http://example.com/admin/allowed.php我收到http://example.com/admin/目录的禁止消息,但没有从基本身份验证的浏览器登录弹出窗口,因此基本身份验证对文件不起作用。如何为 allowed.php 设置例外?

如果不可能,也许我可以在另一个 Files 指令中枚举所有禁止的文件?

假设 admin/ 还包含 user.php 和 admin.php 这应该在这个虚拟主机中被禁止。

编辑:我还尝试了以下修改,尝试遵循 Ignacio 的回答中的建议,结果相同为“禁止”:

  ...

  # disallow the admin …
Run Code Online (Sandbox Code Playgroud)

security virtualhost http-authentication apache-2.2

6
推荐指数
1
解决办法
2万
查看次数

创建向请求添加基本身份验证的 HTTP 代理的最简单方法是什么?

我正在尝试使用需要基本 HTTP 身份验证的服务器提供的服务,但是我使用的应用程序不支持身份验证。我想要做的是创建一个代理,使我的无身份验证应用程序能够通过代理(将添加身份验证信息)连接到需要身份验证的服务器。我确信这是可以做到的,但是我对那里的代理数量感到不知所措,无法找到如何做到这一点的答案。

基本上,我想要做的就是让代理服务于这个 URL:

http://username:password@remoteserver/path

作为这个网址:

http://proxyserver/path

我可以在 Linux 上运行它,但如果我也可以在 Windows 上运行它,那就更好了。开源或至少免费是必须的。一个很大的好处是它的设置相当简单。

proxy http-proxy http-authentication

6
推荐指数
1
解决办法
1万
查看次数

HAProxy 的 ngx_http_auth_request_module 等效项

ngx_http_auth_request_moduleHAProxy 或 Apache 是否存在与 nginx 等效的模块?该模块允许通过 HTTP 支持自定义身份验证。我引用:

ngx_http_auth_request_module模块 (1.5.4+) 根据子请求的结果实现客户端授权。如果子请求返回 2xx 响应码,则允许访问。如果返回 401 或 403,则访问被拒绝并返回相应的错误代码。子请求返回的任何其他响应代码都被视为错误。

nginx haproxy http-authentication apache-2.2

6
推荐指数
1
解决办法
1788
查看次数

使用 Apache 和 LDAP 进行单点登录

我有一台运行两个 Web 应用程序的服务器:Gerrit 和 Mantis BT。现在,这些应用程序连接到 LDAP 服务器以对用户进行身份验证,并且工作正常。但是用户必须为每个应用程序进行身份验证;我想允许用户仅进行一次身份验证(可能使用 Apache+LDAP)并重用凭据以在两个应用程序中自动登录用户。

我现在的网络架构:

我现在拥有的网络架构图

我想要的网络架构:

我要的网络架构图

我什至不知道要在 Google 上寻找什么,因为我通常不熟悉 HTTP 身份验证和服务器管理。任何解决方案或指向我想要的东西都将不胜感激。

配置:
Ubuntu 服务器 14.04 LTS
Apache2 2.4
Gerrit 2.10
Mantis BT 1.2.19

重要说明:
我想保留 Gerrit。
如果它可以轻松完成我想要的操作,我可以使用另一个错误跟踪器。

ubuntu authentication single-sign-on http-authentication apache-2.4

5
推荐指数
1
解决办法
4229
查看次数

仅针对给定位置的 Nginx 身份验证

我使用 Nginx 作为 python WSGI web-app 的反向代理。

它看起来像这样:

location / {
    #auth_basic     "Administrator Login";
    #auth_basic_user_file  /var/www/static/.htpasswd;
    proxy_pass          http://mywebapp_gunicorn;
    proxy_redirect      off;
    proxy_set_header    Host            $host;
    proxy_set_header    X-Real-IP       $remote_addr;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
}
Run Code Online (Sandbox Code Playgroud)

在 Web 应用程序内部,我有一些管理员页面,我希望受到很好的保护,所以现在我在 Web 应用程序内部使用了一些身份验证来保护它们,我也想添加 Nginx 身份验证。

如何激活:

    auth_basic      "Administrator Login";
    auth_basic_user_file  /var/www/static/.htpasswd;
Run Code Online (Sandbox Code Playgroud)

对于 path: /managers,但不适用于所有其他 URL。

nginx authentication http-authentication http-basic-authentication

2
推荐指数
1
解决办法
1万
查看次数

NGINX 上的 HTTP 'auth_basic' 错误

我保护 wp-login 页面的代码抛出错误: nginx: [emerg] invalid number of arguments in "auth_basic" directive in /etc/nginx/conf.d/wordpress.conf:41

我不确定 auth_basic 指令有什么问题。

以下是位于 NGINX 1.17.10 上 server 块中的代码

location /wp-login.php$ { auth_basic “Administrator’s Area”; auth_basic_user_file /etc/apache2/.htpasswd; }

apache2-utils 已安装,用户和密码也已创建。

nginx http-authentication

2
推荐指数
1
解决办法
3305
查看次数