visol / shibboleth-auth
TYPO3 CMS 的 Shibboleth 认证
Requires
- typo3/cms-core: ^11.5
README
EXT:shibboleth_auth
此扩展是对 TYPO3 扩展 shibboleth_auth 的分支,用于修复性能问题,并附带基于 Extbase 的登录插件。
此扩展启用基于 Shibboleth 的单点登录,用于前端和后端认证。
兼容性和维护
目前此包维护以下版本
先决条件
此扩展依赖于 Shibboleth 会话值在 $_SERVER
数组中可用。
这可以通过 Apache 或 nginx 实现,但使用 Apache 更容易。
在使用此扩展之前,必须在 Web 服务器上安装 Apache 的 Shibboleth 模块。
必须在文档根目录的 .htaccess 文件中添加以下 .htaccess 规则
AuthType shibboleth
Require shibboleth
此外,还需要重写以使 Shibboleth 端点可用
<IfModule mod_shib>
RewriteRule ^(Shibhandler.*)/ - [L]
RewriteRule ^(Shibboleth.sso)/ - [L]
</IfModule>
它必须是 htaccess 中的第一个 RewriteRule。
安装
通过 composer require visol/shibboleth-auth
安装此扩展并激活扩展。
安装扩展后,您必须在 Admin Tools -> 设置 -> 扩展配置中激活扩展的基本功能。
默认情况下,此扩展不会执行任何操作。Shibboleth 认证可以分别用于前端和后端。在激活和测试后端登录之前,强烈建议保留一个已认证的管理员用户打开的浏览器窗口(见下文)。
否则,如果您的 Shibboleth 配置不正确,您可能会将自己锁定在外。
使用前端登录
对于前端登录,您需要一个 TYPO3 文件夹来存储用户。要激活前端认证,编辑器可用一个插件。为了让插件工作,需要包含静态 TypoScript。您可以通过覆盖 TypoScript 常量路径来使用自己的模板
plugin.tx_shibbolethauth {
view {
templateRootPaths.10 = EXT:shibboleth_auth/Resources/Private/Templates/
partialRootPaths.10 = EXT:shibboleth_auth/Resources/Private/Partials/
layoutRootPaths.10 = EXT:shibboleth_auth/Resources/Private/Layouts/
}
}
如果没有前端用户登录,将显示登录链接。
与其他 TYPO3 登录一样,插件本身提供登录,而不是保护。如果您想限制对登录页面内容的访问,必须在访问设置中分配相关组。不要将任何限制分配给 Shibboleth 插件本身!否则不会执行登录重定向。
在插件中,您还可以配置成功认证后的重定向页面。如果登录页面 URL 中传递了 redirect_url
参数,则此参数优先于 FlexForm 设置,并使用此 URL 进行成功认证的重定向。
使用后端登录
如果扩展配置中启用了 Shibboleth 的后端登录,您将在 TYPO3 后端登录表单中看到一个额外的登录提供程序。
remoteUser
设置确定在认证过程中查找哪个后端用户。默认情况下,此设置为 REMOTE_USER
。这意味着必须存在一个用户名与 REMOTE_USER
服务器变量值相同的用户。
您可以通过将 Resources/Private/Templates/BackendLogin/ShibbolethLogin.html
复制到另一个位置并调整其内容来自定义登录屏幕。然后,您可以使用 EXT:
或 FILE:
前缀将配置 typo3LoginTemplate
设置为此路径。
支持
如果您需要在 Shibboleth 中设置您的 TYPO3 实例需要支持,您可以联系我们
visol digitale Dienstleistungen GmbH,www.visol.ch