You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony 5.4配置drenso/symfony-oidc-bundle遇错求助

配置drenso/symfony-oidc-bundle时遇到的问题

我正尝试使用drenso/symfony-oidc-bundle配置OpenID连接,已完成bundle的基础配置,.env中对应变量也已设置,但在security.yml中启用oidc后出现错误(错误截图:错误截图),以下是我的配置内容,希望用过该包的开发者帮忙排查问题。

drenso_oidc配置

drenso_oidc:
    #default_client: default # The default client, will be aliased to OidcClientInterface
    clients:
        default: # The client name, each client will be aliased to its name (for example, $defaultOidcClient)
            # Required OIDC client configuration
            well_known_url: '%env(OIDC_WELL_KNOWN_URL)%'
            client_id: '%env(OIDC_CLIENT_ID)%'
            client_secret: '%env(OIDC_CLIENT_SECRET)%'

            # Extra configuration options
            #redirect_route: '/login_check'
            #custom_client_headers: []

        # Add any extra client
        #link: # Will be accessible using $linkOidcClient
            #well_known_url: '%env(LINK_WELL_KNOWN_URL)%'
            #client_id: '%env(LINK_CLIENT_ID)%'
            #client_secret: '%env(LINK_CLIENT_SECRET)%'

security.yml配置

security:
    enable_authenticator_manager: true
    password_hashers:
        App\Entity\BackUser: auto
        App\Entity\FrontUser: auto

    providers:
        users:
            chain:
                providers: [back_users, front_users]
        back_users:
            entity: { class: App\Entity\BackUser, property: username }
        front_users:
            entity: { class: App\Entity\FrontUser, property: email }

    role_hierarchy:
        ROLE_SUPER_ADMIN: ROLE_ADMIN
        ROLE_ADMIN:       [ROLE_REDACTOR, ROLE_ALLOWED_TO_SWITCH]
        ROLE_REDACTOR:    ROLE_READER
        ROLE_READER:      ROLE_USER

    firewalls:
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false
        back:
            context: global_context
            pattern: ^/back
            #anonymous: ~
            user_checker: App\Security\Checker\UserChecker
            provider: back_users
            switch_user:
              provider: users
              role: CAN_SWITCH_USER
            form_login:
                provider: users
                check_path: back_security_login
                login_path: back_security_login
                #csrf_token_generator: security.csrf.token_manager
                enable_csrf: true
                default_target_path: back_static_index
                success_handler: App\Security\Handler\LoginSuccessHandler
                failure_handler: App\Security\Handler\LoginFailureHandler
            logout:
                path: back_security_logout
                target: back_security_login
                handlers:
                  - App\Security\Handler\LogoutHandler
        front:
            context: global_context
            pattern: ^/
            oidc: ~
            #anonymous: ~
            user_checker: App\Security\Checker\UserChecker
            provider: front_users
            switch_user:
              provider: users
              role: CAN_SWITCH_USER
#            form_login:
#                provider: users
#                check_path: front_index
#                login_path: front_index
#                #csrf_token_generator: security.csrf.token_manager
#                enable_csrf: true
#                default_target_path: front_index
#                success_handler: App\Security\Handler\LoginSuccessHandler
            logout:
                path: front_security_logout
                target: front_index
                handlers:
                    - App\Security\Handler\LogoutHandler

可能的排查方向

  • 启用匿名访问:OIDC认证流程需要用户先以匿名身份访问跳转入口,取消front防火墙中#anonymous: ~的注释,开启匿名访问。
  • 配置redirect_route:drenso_oidc默认回调路由是oidc_check,如果需要自定义路径,需确保redirect_route指向存在的有效路由,比如你注释的/login_check要对应正确的回调处理路由。
  • 用户匹配逻辑:front_users提供者基于email字段查找用户,需确认OIDC返回的用户信息中包含匹配该字段的内容,或者配置自定义的用户加载器来适配OIDC响应数据。
  • 版本兼容性:检查drenso/symfony-oidc-bundle版本与当前Symfony版本是否兼容,尤其是认证管理器(enable_authenticator_manager: true)的适配情况。
  • 补充错误详情:若以上方向未解决问题,需提供截图中的具体错误文本,比如路由不存在、客户端配置无效或用户加载失败等信息。

内容的提问来源于stack exchange,提问作者DevJny

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:05:31