GVKun编程网logo

Apache2 – 授权用户使用BasicAuth而不是本地子网外的用户(apache授权协议)

10

本文将介绍Apache2–授权用户使用BasicAuth而不是本地子网外的用户的详细情况,特别是关于apache授权协议的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,

本文将介绍Apache2 – 授权用户使用BasicAuth而不是本地子网外的用户的详细情况,特别是关于apache授权协议的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于Apache authtype Basic 无法在 50 台主机中的 1 台上运行、Apache HTTP BasicScheme.authenticate已弃用?、Apache2反向代理到需要BasicAuth的终点,但希望将其从用户隐藏、asp.net – 何时使用HttpApplicationState而不是Web.Caching.Cache?的知识。

本文目录一览:

Apache2 – 授权用户使用BasicAuth而不是本地子网外的用户(apache授权协议)

Apache2 – 授权用户使用BasicAuth而不是本地子网外的用户(apache授权协议)

在我的Apache 2configuration中,我有一个VirtualHost ,看起来像这样:

<VirtualHost *:80> ServerName sub.domain.com # username:password sent on to endpoint RequestHeader set Authorization "Basic dXNlcm5hbWU6cGFzc3dvcmQ==" ProxyPass /xyz http://192.168.1.253:8080/endpoint ProxyPassReverse /xyz http://192.168.1.253:8080/endpoint <Location /xyz> # This needs to let users through under the following circumstances # * They are in 192.168.1.0/24 # * They have a valid user in a htpasswd file # So what goes here? </Location> </VirtualHost>

我正在使用虚拟主机作为networking上另一台服务器(我将称之为端点)的反向代理。

我试图找出一个configuration,允许networking内的用户浏览到sub.domain.com自动服务端点。 但是,networking之外的用户应提示input凭据

端点需要一个我使用RequestHeader隐藏的密码(我想要的)。 外部用户的密码应该是不同的,并且需要是BasicAuth,从htpasswd文件中获取用户列表。

如何使用一个HttpClient每个应用程序?

PHPmyadmin显示代码而不是网页

csv excel转换

在wordpress上传图片时出错“文件为空”

漂亮的url和search引擎友好的url?

OTRS在CentOS 6上安装时重启httpd时出错

如何限制PHP应用程序到他们自己的目录和他们自己的PHP.ini?

如何在端口80以外的https端口上创build肥皂服务器

什么是/ path /(null)请求的来源?

Prerender.io子页面redirect到索引

<Location /xyz> # This needs to let users through under the following circumstances # * They are in 192.168.1.0/24 # * They have a valid user in a htpasswd file

直接从http://httpd.apache.org/docs/2.2/mod/core.html#satisfy :

Require valid-user Order allow,deny Allow from 192.168.1 Satisfy any

当然,你也需要包含你的AuthUserFile或其他指令

AuthType basic AuthName "yadayadayada" AuthUserFile /foo/bar/blah/.htpasswd </Location>

你可以创建两个虚拟主机,一个监听外部接口,一个监听本地虚拟主机。 身份验证设置将在前者。

我认为David已经很好的覆盖了Apache2配置,但是使用分离DNS为内部和外部用户提供不同的服务也是很常见的。 内部用户确实没有理由向您的代理发出请求,因为他们(表面上)可以直接访问“端点”。

如果您的内部用户连接到您的公共IP地址,您可能实际上会导致路由延迟和拥塞。 最初,我是两个DNS服务器分开硬件的粉丝,但最近切换到使用绑定“视图”为我的两个用户类提供不同的区域。

总结

以上是小编为你收集整理的Apache2 – 授权用户使用BasicAuth而不是本地子网外的用户全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Apache authtype Basic 无法在 50 台主机中的 1 台上运行

Apache authtype Basic 无法在 50 台主机中的 1 台上运行

如何解决Apache authtype Basic 无法在 50 台主机中的 1 台上运行?

我们有一个包含大约 120 个虚拟主机的服务器,其中大约 50 个受密码保护。所有虚拟主机配置都是通过 Ansible 编写的。

具有工作密码保护的虚拟主机是

<VirtualHost *:80>

    ServerName staging.website1.demohub.site
    ServerAlias origin.staging.website1.demohub.site

    ServerAdmin jd@automatem.co.nz

    DocumentRoot /var/www/staging.website1.org.nz/trunk

    <IfModule mpm_itk_module>
        AssignUserId sta_website1 sta_website1
    </IfModule>
    CustomLog /var/www/staging.website1.org.nz/apachelogs/staging.website1.org.nz-access.log combined
    ErrorLog /var/www/staging.website1.org.nz/apachelogs/staging.website1.org.nz-error.log

    <FilesMatch "\.PHP$">
        CGIPassAuth on
        SetHandler "proxy:fcgi://127.0.0.1:9270/
    </FilesMatch>

     Alias "/robots.txt" "/var/www/norobots.txt"
     <Directory /var/www/staging.website1.org.nz>
        AuthUserFile /etc/apache2/staging.passwd
        AuthType Basic
        AuthName "Review security udpates"
        Require valid-user
    </Directory>

    <Location /info.PHP>
        AuthUserFile /etc/apache2/staging.passwd
        AuthType Basic
        AuthName "Review security udpates"
        Require valid-user
    </Location>
    Alias "/info.PHP" "/var/www/info.PHP"
</VirtualHost>

几天前在一个虚拟主机上密码保护不起作用

<VirtualHost *:80>

    ServerName staging.websitenameis22chars22.demohub.site
    ServerAlias origin.staging.websitenameis22chars22.demohub.site

    ServerAdmin jd@automatem.co.nz

    DocumentRoot /var/www/staging.websitenameis22chars22.org.nz/trunk

    <IfModule mpm_itk_module>
        AssignUserId sta_usernameis12 sta_usernameis12
    </IfModule>
    CustomLog /var/www/staging.websitenameis22chars22.org.nz/apachelogs/staging.websitenameis22chars22.org.nz-access.log combined
    ErrorLog /var/www/staging.websitenameis22chars22.org.nz/apachelogs/staging.websitenameis22chars22.org.nz-error.log

    <FilesMatch "\.PHP$">
        CGIPassAuth on
        SetHandler "proxy:fcgi://127.0.0.1:9364/
    </FilesMatch>

     Alias "/robots.txt" "/var/www/norobots.txt"
     <Directory "/var/www/staging.websitenameis22chars22.org.nz">
        AuthUserFile /etc/apache2/staging.passwd
        AuthType Basic
        AuthName "Review security udpates"
        Require valid-user
    </Directory>

#    <Location /info.PHP>
#       AuthUserFile /etc/apache2/staging.passwd
#       AuthType Basic
#       AuthName "Review security udpates"
#       Require valid-user
#   </Location>
#   Alias "/info.PHP" "/var/www/info.PHP"
</VirtualHost>

通过反复试验,我们发现如果我们也添加位置块

 <Location />
    AuthUserFile /etc/apache2/staging.passwd
    AuthType Basic
    AuthName "Review security udpates"
    Require valid-user
</Location>

密码保护也适用于此虚拟主机。

密码保护在没有位置的情况下不起作用的原因是什么

其他apache自定义配置:

FileETag none

Timeout 120
KeepAliveTimeout 4
MaxKeepAliveRequests 100
ServerLimit 512

<IfModule mpm_itk_module>
  StartServers             5
  MinSpareServers          5
  MaxSpareServers         10
  MaxRequestWorkers      150
  MaxConnectionsPerChild   0
</IfModule>


# Prevent SVN and git downloads
<Directory ~ ".*\.(svn|git)">
  Order allow,deny
  Deny from all
  Satisfy All
</Directory>

<FilesMatch ".*~$">
  Order allow,deny
</FilesMatch>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

LogFormat "%a %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

解决方法

您的配置看起来应该可以正常工作。

因此,它要么是 file limit problem(即使这应该显示在日志中),您可以通过例如诊断暂时禁用其他不受保护网站以释放文件句柄,或其他一些奇怪的限制问题(这可以通过禁用其他受保护网站来确认,一旦第一次检查失败了)。

这也可能是一些愚蠢的偶然事件 - 我记得我在几年前遇到的一些麻烦,因为我没有注意到在文件名之后以某种方式插入了 0xA0 字符。从视觉上看,名称是 something.pl,但实际上它是 something.pl,所以毕竟不是 Perl 文件。由于它很容易做到,请检查配置文件以确保它都是可见的 ASCII。我什至会检查 AuthName 中的“udpates” - 不应该有什么不同,绝对不是一个未登录的 AFAIK,它与参考相同,但是...为了以防万一,为了拉稻草而拉稻草,请尝试“更新”。

如果没有任何效果,我将开始在此站点和另一个正常工作的站点之间交换配置和目录,然后一次换回一项,然后查看身份验证故障何时重新启动。此外,在此之前,更改配置文件名称,以便它们以不同的顺序加载。在调查此类恶作剧者时,这通常对我很有帮助。

Apache HTTP BasicScheme.authenticate已弃用?

Apache HTTP BasicScheme.authenticate已弃用?

在Apache HTTP组件4类org.apache.http.impl.auth.BasicScheme中我注意到了这个方法:

public static Header authenticate( final Credentials credentials,final String charset,final boolean proxy)

已弃用以下信息:

/** * Returns a basic <tt>Authorization</tt> header value for the given * {@link Credentials} and charset. * * @param credentials The credentials to encode. * @param charset The charset to use for encoding the credentials * * @return a basic authorization header * * @deprecated (4.3) use {@link #authenticate(Credentials,HttpRequest,HttpContext)}. */ @Deprecated

但是,我没有看到解释如何从deprated函数迁移到新函数的文档。 尽pipe已弃用的function起作用,但我宁愿将事情做成“正确”的方式。 以下是我如何使用不推荐使用的函数:

UsernamePasswordCredentials creds = new UsernamePasswordCredentials("admin","admin"); URI uriLogin = URI.create("http://localhost:8161/hawtio/auth/login/"); HttpPost hpLogin = new HttpPost(uriLogin); hpLogin.setHeader(BasicScheme.authenticate(creds,"US-ASCII",false));

我怎么能采取这个相同的概念,并将其应用于BasicScheme.authenticate的“正确”的方法?

如何在1and1共享主机上configurationCake 2.3.x的htaccess文件

Apache上的HTTPS; 它会减慢Apache吗?

PHPStorm要求php-cgi构build的解释器。 如何使PHP作为快速CGI?

PHP_imap.dll for PHP v 5.2.6 apache for windows

如何在.htaccess中从一个子域redirect到另一个子域?

如何将本地主机redirect到127.0.0.1:8080?

VirtualDocumentRoot处理不存在的文件夹

是否有可能certificate在PDFBox文本?

我需要使用Nginx还是Apache来使用Lets Encrypt?

如何检测是否在本地主机上运行

对我来说,弃用通知看起来很清楚应该使用什么方法。 您应该使用#authenticate方法,它也将HttpContext的实例作为参数。 在BASIC的情况下,上下文可以为空。 更复杂的方案可能需要访问额外的上下文属性,以便能够生成认证请求。

补充oleg的答案,这是一个在我的需要工作的示例替换。

注意需要从静态调用到对象实例。

UsernamePasswordCredentials creds = new UsernamePasswordCredentials("admin","admin"); URI uriLogin = URI.create("http://localhost:8161/hawtio/auth/login/"); HttpPost hpPost = new HttpPost(uriLogin); Header header = new BasicScheme(StandardCharsets.UTF_8).authenticate(creds,hpPost,null); hpPost.addHeader( header);

总结

以上是小编为你收集整理的Apache HTTP BasicScheme.authenticate已弃用?全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

Apache2反向代理到需要BasicAuth的终点,但希望将其从用户隐藏

Apache2反向代理到需要BasicAuth的终点,但希望将其从用户隐藏

基本上我的情况是,我有一个内部网站,需要一个单一的硬编码的用户名和密码访问(这不能被closures,只有改变)。 我通过一个反向代理公开这个网站的各种原因(隐藏端口,简化url,简化NAT等)。

但是,我想要做的就是能够使用Apache来处理身份validation,以便:

我不需要给每个人一个密码

我可以使用Apache的BasicAuth有多个用户名和密码

对于内部用户,我不必提示input密码

编辑:关于更丰富的身份validation第二部分已被转移到新的问题

这里或多或less是我现在拥有的:

带有dynamic主机名的Apache ProxyPass

docker代理与自定义networking

在不同的服务器上运行独angular兽和Nginx

如何用Apache重写代理安装中的位置响应头

同时设置Nginx作为apache和gunicorn的代理

<VirtualHost *:80> ServerName sub.domain.com ProxyPass / http://192.168.1.253:8080/endpoint ProxyPassReverse / http://192.168.1.253:8080/endpoint # The endpoint has a mandatory password that I want to avoid requiring users to type # Ie something like this would be nice (but does not work) # ProxyPass / http://username:password@192.168.1.253:8080/endpoint # ProxyPassReverse / http://username:password@192.168.1.253:8080/endpoint # Also need to be able to require a password to access proxy for people outside local subnet # However these passwords will be controlled by Apache using BasicAuth,not the ProxyPass endpoint # Ideas? </VirtualHost>

如何在Nginx代理服务器中启用CORS?

在反向代理(ProxyPass)后面configuration前缀MojolicIoUs中的URL

IP和Nginx作为反向代理出错

如何使用Nginx作为博客的反向代理,方法是将Nginx.confconfiguration为proxy_pass

Apache Tomcat 7 + Nginx – IsTomcat Native需要?

在将任何请求传递到端点之前添加或覆盖Authorization标头。 授权头可以是硬编码的,它只是字符串“username:password”的base-64编码(不带引号)。

如果尚未完成,则启用mod_headers模块。

RequestHeader set Authorization "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="

要有条件地执行此操作,请启用mod_setenvif,例如在本地请求的情况下仍要求主密码:

SetEnvIf Remote_Addr "127.0.0.1" localrequest RequestHeader set Authorization "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" env=!localrequest

http://en.wikipedia.org/wiki/Basic_access_authentication

http://httpd.apache.org/docs/2.0/mod/mod_headers.html

http://httpd.apache.org/docs/2.0/mod/mod_setenvif.html

# ALL remote users ALWAYS authenticate against reverse proxy''s # /www/conf/passwords database # <Directory /var/web/pages/secure> AuthBasicProvider /www/conf/passwords AuthType Basic AuthName "Protected Area" Require valid-user </Directory> # reverse proxy authenticates against master server as: # Aladdin:open sesame (Base64 encoded) # RequestHeader set Authorization "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ=="

那么我用你的例子来指向两个IP摄像机使用Apache Proxypass。 当我使用语法user:password@camarafeliz3.compufiber.com并通过iPhone访问时,我得到了来自safari(iphone导航器)的安全消息,所以我改变了这个例子与iPhone 4S

<Location /camarafeliz1/ > # usuario admin password 123456 ProxyPass http://192.168.0.39/ ProxyPassReverse http://192.168.0.39/ RequestHeader set Authorization "Basic YWRtaW46MTIzNDU2==" </Location> <Location /camarafeliz3/ > # usuario admin password 123456 ProxyPass http://192.168.0.99/ ProxyPassReverse http://192.168.0.99/ RequestHeader set Authorization "Basic YWRtaW46MTIzNDU2==" </Location>

而iphone 4s因为链接中的用户和密码而停止抱怨安全。

总结

以上是小编为你收集整理的Apache2反向代理到需要BasicAuth的终点,但希望将其从用户隐藏全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

asp.net – 何时使用HttpApplicationState而不是Web.Caching.Cache?

asp.net – 何时使用HttpApplicationState而不是Web.Caching.Cache?

当我需要在我的应用程序中缓存一些东西时,我习惯选择Web.Caching.Cache.但我遇到了一些使用HttpApplicationState的遗留代码.

由于Web.Caching.Cache更强大和灵活(似乎更多),是否有更好的使用HttpApplicationState的情况?

如果你能告诉我一些例子,我将非常感激:-)

解决方法

HttpApplicationState和Web.Caching.Cache都可用于存储可在整个ASP.Net应用程序中进行全局访问的信息.但是,它们的用途非常不同.

HttpApplicationState用于存储通常不会更改的应用程序数据.当应用程序启动时,它通常在global.asax中的Application_Start中填充.我个人没有太多使用它,但我相信它通常用于存储应用程序配置的小部分,这些应用程序配置对应用程序的所有用户都是全局的,并且不会很少更改或更改.进入应用程序状态的东西将无限期地保留在那里,直到应用程序回收.但是当它再循环并再次重新启动时,Application_State将再次执行并重新填充它.

重要的是要注意应用程序状态是单例并且不是线程安全的.因此,当您对其进行更改时,必须通过调用Application.Lock()和Application.UnLock()来锁定和解锁Application对象.

实际上有三种不同的方法可以缓存ASP.Net内容:页面级别,部分页面和数据.我将讨论数据缓存,因为我认为这与您的问题最相关. ASP.Net缓存用于存储大量的应用程序数据,这些数据对于每个请求从数据存储中检索都是昂贵的.ApplicationState和Cache之间的关键区别是1)缓存数据被设计为过期并从内存中清除通过各种触发器或条件(时间,其他缓存依赖性等),而ApplicationState将永远存在,直到应用程序回收,2)如果服务器遇到严重的内存压力,可以从内存中清除缓存数据,因此永远不能指望它在那里,必须经常测试它是否存在,而ApplicationState将始终存在.

缓存用于存储更靠近应用程序的数据,不需要在每次请求时从数据库中提取数据.缓存旨在存储大量数据,智能缓存架构可对性能产生巨大的积极影响.

今天的关于Apache2 – 授权用户使用BasicAuth而不是本地子网外的用户apache授权协议的分享已经结束,谢谢您的关注,如果想了解更多关于Apache authtype Basic 无法在 50 台主机中的 1 台上运行、Apache HTTP BasicScheme.authenticate已弃用?、Apache2反向代理到需要BasicAuth的终点,但希望将其从用户隐藏、asp.net – 何时使用HttpApplicationState而不是Web.Caching.Cache?的相关知识,请在本站进行查询。

本文标签: