本文将介绍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授权协议)
- Apache authtype Basic 无法在 50 台主机中的 1 台上运行
- Apache HTTP BasicScheme.authenticate已弃用?
- Apache2反向代理到需要BasicAuth的终点,但希望将其从用户隐藏
- asp.net – 何时使用HttpApplicationState而不是Web.Caching.Cache?
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 台上运行?
我们有一个包含大约 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组件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的终点,但希望将其从用户隐藏
基本上我的情况是,我有一个内部网站,需要一个单一的硬编码的用户名和密码访问(这不能被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?
由于Web.Caching.Cache更强大和灵活(似乎更多),是否有更好的使用HttpApplicationState的情况?
如果你能告诉我一些例子,我将非常感激:-)
解决方法
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?的相关知识,请在本站进行查询。
本文标签: