causal/oidc
此扩展使用OpenID Connect进行用户身份验证。
Requires
- php: >= 7.4.0, <= 8.3.99
- ext-json: *
- league/oauth2-client: ^2.7
- typo3/cms-core: ^11.5
- typo3/cms-felogin: ^11.5
- typo3/cms-frontend: ^11.5
Replaces
- typo3-ter/oidc: 2.1.0
This package is auto-updated.
Last update: 2024-09-21 16:03:24 UTC
README
此扩展允许您使用OpenID Connect服务器对前端用户进行身份验证。它预先配置为与瑞士阿尔卑斯俱乐部的WSO2身份服务器一起使用,但也可与其他自己的身份服务器一起使用。
如果您是瑞士阿尔卑斯俱乐部的分会,请务必与伯尔尼联系,以获取您的专用私钥和密钥。
默认前端登录框
此扩展与系统扩展'felogin'集成。
此Fluid标记可以用于包含授权服务器授权端点的链接。
<f:if condition="{openidConnectUri}"> <f:then> <a href="{openidConnectUri}" rel="nofollow" class="btn btn-default"><span class="fa fa-openid"></span> OpenID Connect</a> </f:then> <f:else> Invalid OpenID Connect configuration </f:else> </f:if>
有关参考,请参阅Resources/Private/Templates/Login/Login.html
。
OIDC登录
如果您只有openid_connect一种前端登录方式,您可以使用包含的"OIDC登录"插件。将其添加到您的登录页面,通常添加felogin框的位置。添加OIDC登录插件后,对登录页面的请求将立即重定向到授权服务器。
登录过程后,用户将被重定向
- OIDC登录支持与felogin框相同的
redirect_url
参数 - 如果没有设置参数,OIDC登录将重定向用户到在
plugin.tx_oidc_login.defaultRedirectPid
中配置的页面。 - 如果没有设置该配置,用户将被重定向到'/'。
PKCE(代码交换密钥证明)
如果您的OIDC登录支持代码交换密钥证明,您可以通过在扩展配置中检查enableCodeVerifier
来启用它。将发送共享密钥以防止授权代码拦截攻击。有关详细信息,请参阅https://tools.ietf.org/html/rfc7636。
配置
映射前端用户字段
-
配置通过TypoScript在
plugin.tx_oidc.mapping.fe_users
内完成 -
OIDC属性将通过特定的字符
<>
被识别email = <mail>
-
您也可以组合多个标记,例如
name = <family_name>, <given_name>
-
支持在字段定义中添加stdWrap,例如
name = <name> name.wrap = |-OIDC
-
支持TypoScript "split"(
//
)。这将检查多个字段名称,并返回第一个有非空值的字段。例如username = <sub> // <contact_number> // <emailaddress> // <benutzername>
映射前端用户组
- 在TYPO3中创建您的组
- 使用附加模式将其与OpenID Connect中的角色相关联
- 在身份验证过程中将保留本地TYPO3组(不与某些角色相关联)
- 始终添加在扩展管理器中配置的默认TYPO3组
OIDC登录
plugin.tx_oidc_login.defaultRedirectPid
是用户在未设置redirect_url
参数时将被重定向到的页面的UID。
日志记录
此扩展利用了TYPO3 CMS 6.0中引入的日志系统。它比旧系统写入"sys_log"表更加灵活。技术细节可以在TYPO3核心API中找到。
作为一名管理员,您应该知道TYPO3日志记录器会将日志记录转发到“写入器”,以持久化日志记录。
默认情况下,使用标准的TYPO3安装,消息会被写入默认的日志文件(var/log/typo3_*.log
)。
为OpenID Connect指定的日志文件
如果您希望将此扩展的每个日志信息重定向到var/log/oidc.log
,并将级别为“警告”或以上的日志条目发送到系统日志,您可以在typo3conf/AdditionalConfiguration.php
中添加以下配置
$GLOBALS['TYPO3_CONF_VARS']['LOG']['Causal']['Oidc']['writerConfiguration'] = [
\TYPO3\CMS\Core\Log\LogLevel::DEBUG => [
\TYPO3\CMS\Core\Log\Writer\FileWriter::class => [
'logFileInfix' => 'oidc'
],
],
// Configuration for WARNING severity, including all
// levels with higher severity (ERROR, CRITICAL, EMERGENCY)
\TYPO3\CMS\Core\Log\LogLevel::WARNING => [
\TYPO3\CMS\Core\Log\Writer\SyslogWriter::class => [],
],
];
提示:请务必阅读日志系统配置,以在任一生产网站上微调您的配置。