Apache Config - 从身份验证中排除位置

时间:2012-10-30 19:39:34

标签: apache authentication location single-sign-on shibboleth

我有一个受Shibboleth身份验证模块保护的Web应用程序。我目前的配置如下

<Location /MyApp>
 AuthType shibboleth
 ShibUseHeaders On
 ShibRequestSetting requireSession 1
 require shibboleth
</Location>

shibboleth 是一个提供SSO功能的身份验证模块,当前流程将用户定向到身份提供商,以便用户输入登录凭据。我希望能够打开一个特定的URL,以便验证模块绕过URL。我尝试了以下但它似乎没有工作,我得到一个关于加载URL的空白页

方法1

<Location /MyApp/Login.html>
  Satisfy Any
  Allow from all
  AuthType None
  Require all granted
</Location>

方法2

<Location /MyApp/Login.html>
  AuthType shibboleth
  ShibRequestSetting requireSession 0
  require shibboleth
</Location>

我做了一些额外的调试,看来问题是 Login.html 加载的其他文件 - 例如css,js等。在Apache中配置它的正确方法是什么可以从身份验证中绕过Login.html

由于

2 个答案:

答案 0 :(得分:4)

关于排除 Login.html 加载的其他文件的最终评论最终是正确的。我使用以下格式来排除由html文件

加载的文件
<Location ~ "/MyApp/(Login.html|SessionTimeout.html|accessDenied.html|/badRequest.html|status|css/*|login/*|images/*|style/*|js/*|javascript/*|)">   
  Satisfy Any   
  Allow from all   
  AuthType None   
  Require all granted   
</Location>

答案 1 :(得分:0)

使用Apache 2.4而不是2.2时,为了排除“ / server-status”,以下内容就足够了:

  pd.concat([df1, df2, df3])

分析:

  • <LocationMatch "^(?!/server-status)"> AuthType Basic AuthUserFile /etc/apache2/.htpasswd <RequireAll> Require ssl Require user valid_user_name </RequireAll> </LocationMatch> equivalent<LocationMatch "regex">
  • 正则表达式used<Location ~ "regex">(与perl兼容的正则表达式)。
  • pcre的意思是:
    • ^(?!/server-status):“开头为”
    • ^:“ negative look ahead(而不是肯定的(?!))”