我在 apache 2.4 服务器上配置了 mod_auth_openidc。对于受保护的位置,一切正常。对于这些资源,后端应用程序(PHP 脚本或反向代理应用程序)将声明作为 HTTP 标头 OIDC_xxx 接收。
在这个网络服务器上,我也有公共位置。不过,如果经过身份验证的用户点击了这些资源中的一个,我也希望收到 OIDC 标头。
我的 httpd 配置看起来像
<Location /private>
AuthType openid-connect
<RequireAll>
Require valid-user
Require claim groups:B2C
</RequireAll>
</Location>
<Location /public>
AuthType openid-connect
<RequireAny>
Require valid-user
Require all granted
</RequireAny>
</Location>
私有位置受到 oidc 提供程序的良好保护,并且填充了 HTTP 标头。未经身份验证的用户可以访问公共位置(需要全部授权);但是有一种方法可以配置 httpd 和 mod_auth_openidc 来填充经过身份验证的用户访问公共位置的标头。上面的配置在任何情况下都不会这样做(没有 OIDC_ 标头)。
谢谢。