받는 토큰을 기반으로 환경 변수를 설정하는 공급 업체 Apache 모듈 (PingFederate)이 있습니다. 환경 변수의 값을 기반으로 디렉토리에 대한 액세스를 제어하려고합니다. , [PF_AUTH_SUBJECT] => 아론 [PF_AUTH_GROUPS] => CN = Application.E18.Users, OU = 내부 로컬 DC = CN = Application.E17.Users :환경 변수 값을 기반으로 한 Apache ACL
예를 들어, 모듈은 다음과 같이 변수를 설정 OU = Internal, DC = local
그룹 CN = Application.E18 ...의 사용자 만 액세스 할 수 있도록 디렉터리를 보호하려고합니다. 내 위치 방향은 다음과 같습니다.
<Location /example_app>
SetEnvIf %{PF_AUTH_GROUPS} ^.*CN=Application.E18.Users.*$ ALLOWED
AuthName "ACL PingFederate restricted"
AuthType PFApacheAgent
Order Deny,Allow
Deny from all
Allow from all
</Location>
이것은 작동하지 않는 것 같습니다. 나는 시도했다 : 작동
SetEnvIf %{PF_AUTH_GROUPS} ^.*CN=Application.E18.Users.*$ ALLOWED
SetEnvIf %{PF_AUTH_GROUPS} ^.*Application.*$ ALLOWED
SetEnvIf %{PF_AUTH_GROUPS} ^.*A.*$ ALLOWED
있는 유일한 방법은 다음과 같습니다 분명히 작동하지 않습니다
SetEnvIf %{PF_AUTH_GROUPS} ^.*$ ALLOWED
.
https://issues.apache.org/bugzilla/show_bug.cgi?id=25725 SetEnvIf는 환경 변수를 테스트하지 않지만 http://httpd.apache.org/docs/2.2/mod/mod_setenvif.html의 문서에는 "요청과 관련된 환경 변수 목록"이 언급되어 있습니다. 나는 또한이를 사용하여 mod_rewrite를 시도했습니다
: 허용되는 환경 변수가 설정되지 않은 이러한 경우 모두에서
RewriteEngine On
<Location /example_app>
RewriteCond %{PF_AUTH_GROUPS} ^.*Application.E18.Users.*$
RewriteRule - [E=ALLOWED:1]
AuthName "ACL PingFederate restricted"
AuthType PFApacheAgent
Order Deny,Allow
Deny from all
Allow from all
</Location>
.