causal/oidc

此扩展使用OpenID Connect进行用户身份验证。

安装数: 29,640

依赖项: 1

建议者: 0

安全: 1

星标: 8

关注者: 5

分支: 30

开放问题: 15

类型: typo3-cms-extension

2.1.0 2024-04-02 06:03 UTC

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 => [],
    ],
];

提示:请务必阅读日志系统配置,以在任一生产网站上微调您的配置。