提问人:JoJ 提问时间:8/8/2023 更新时间:8/8/2023 访问量:46
Apache2:如何在外部身份验证脚本中设置环境变量
Apache2: How to set Environment Variable inside External Auth Script
问:
我正在使用此插件来验证用户的个人访问令牌:https://github.com/phokz/mod-auth-external
用户名无关紧要,我正在针对外部服务验证 PAT。 此外部服务将返回 UserId 和 Role。
现在,我希望能够将userId和Role设置为外部身份验证器中的环境变量,然后再在Apache2将调用专用路由的CGI脚本中使用这两个。
我尝试了以下方法,但环境变量始终为空。是否可以从外部身份验证设置一个值?否则,我该如何与 apache2 通信?- 请记住,下面是一个最小的示例,可以展示和关注问题本身 -
两个简单的外部身份验证器脚本(均未设置环境)
#!/usr/bin/perl
use Env;
$ENV{USER}="TESTUSER1";
$ENV{USERID}="TESTUSER2";
$ENV{ROLE}="ADMIN";
$ENV{REMOTE_USER}="TESTUSER3";
exit 0;
#! /bin/sh
export USER="USER1"
export USERID="USER2"
export ROLE="USER3"
export REMOTE_USER="USER4"
exit 0
script.pm
#!/usr/bin/perl
die "The user '$ENV{USER}', '$ENV{USERID}', '$ENV{ROLE}', '$ENV{REMOTE_USER}' has no access!";
路由的 apache2 配置 /
<VirtualHost *:80>
SetEnv USERID
AddExternalAuth pwauth "/usr/local/scripts/authenticator.sh"
SetExternalAuthMethod pwauth pipe
ScriptAlias / /usr/local/scripts/script.pm/
<Location />
Options +ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
AllowOverride None
order allow,deny
Allow from all
AuthType Basic
AuthName "Restricted Content"
AuthBasicProvider external
AuthExternal pwauth
Require valid-user
</Location>
AddHandler cgi-script .pm
</VirtualHost>
答: 暂无答案
评论