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

Symfony 6.3 OidcTokenHandler默认OidcUser配置问题求助

解决Symfony OpenID Connect默认OidcUser的用户提供者配置问题

问题原因

尽管文档说明OidcTokenHandler会自动利用声明创建OidcUser,但Symfony的防火墙仍需明确指定对应的用户提供者服务,否则会抛出'main' firewall requires a user provider but none was defined错误。

解决方案

你只需在security.yaml中注册Symfony内置的OidcUserProvider服务,并在main防火墙中指定它即可,无需自定义用户提供者:

修改后的security.yaml配置:

security:
    # 注册内置的Oidc用户提供者
    user_providers:
        oidc_user_provider:
            id: Symfony\Component\Security\Http\AccessToken\Oidc\OidcUserProvider

    firewalls:
        main:
            # 指定使用上述注册的Oidc用户提供者
            user_provider: oidc_user_provider
            access_token:
                token_handler:
                    oidc_user_info: https://keycloack.doamin.xxx/realms/Api/protocol/openid-connect/userinfo

    access_control:
        - { path: ^/admin, roles: ROLE_ADMIN }
        - { path: ^/, roles: ROLE_USER }

说明

这个内置的OidcUserProvider专门配合OidcTokenHandler工作,会直接使用从UserInfo端点获取的声明来构建OidcUser,完全符合你不想自定义UserProvider的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 05:58:19