目前我正在处理一个项目的迁移PHP 网络应用程序从阿帕奇2.2到阿帕奇2.4。该应用程序支持 SSO,通过使用什博莱斯为了管理身份验证过程。
以下.htaccess
文件经过调整来管理身份类的授权:
SSLRequireSSL # The modules only work using HTTPS
AuthType shibboleth
ShibRequireSession On
ShibExportAssertion Off
# Page can only be accessed by authenticated users
Require valid-user
# To restrict access to an Identity Class
# use the configuration line below.
#Require ADFS_IDENTITYCLASS "Trusted" "Registered" "Shared"
Apache能够正确启动,但是在尝试使用.htaccess
上面文件下的内容时,出现错误:
/var/www/myapp/SSO/RestrictedIdentityClass/.htaccess: Unknown Authz provider: ADFS_IDENTITYCLASS
考虑到我也启用了mod_authz_core.so
,但问题仍然存在。另请注意,我使用 Microsoft ADFS 作为身份提供程序,通常一切正常。
有什么建议可以指出我做错了什么吗?
答案1
这什博莱斯升级后语法已更改阿帕奇2.2到2.4:
SSLRequireSSL # The modules only work using HTTPS
AuthType shibboleth
ShibRequireSession On
ShibExportAssertion Off
# Page can only be accessed by authenticated users
Require valid-user
# To restrict access to an Identity Class
# use the configuration line below.
Require shib-attr ADFS_IDENTITYCLASS "Trusted" "Registered" "Shared"
我必须shib-attr
在身份类之前添加才能运行授权过程。
注意:检查是否mod_authz_core
已正确加载到您的环境中。
答案2
Shibboleth 模块位于此路径中。 /usr/lib64/shibboleth/mod_shib_24.so。只需使用 LoadModule 使用任何 .conf 文件来指向它即可。此 00-shib-global.conf 不是由任何包创建的。例如,cat conf.d/00-shib-global.conf。
LoadModule mod_shib /usr/lib64/shibboleth/mod_shib_24.so