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

如何在knpuniversity/oauth2-client-bundle中设置正确的Azure AD B2C Policy参数

解决Azure AD B2C Policy参数格式错误问题

1. 修正config.yml中的客户端配置

在knpu_oauth2_client的客户端配置里,需要明确指定azure客户端的options,添加policy参数,同时配置正确的B2C授权和令牌端点,避免库自动拼接错误路径:

knpu_oauth2_client:
    clients:
        azure_b2c:
            type: azure
            client_id: '%env(AZURE_B2C_CLIENT_ID)%'
            client_secret: '%env(AZURE_B2C_CLIENT_SECRET)%'
            redirect_route: azure_oauth_redirect
            redirect_params: {}
            options:
                tenant: '%env(AZURE_B2C_TENANT_NAME)%'
                policy: 'b2c_1_signupin'
                authorization_url: 'https://%env(AZURE_B2C_TENANT_NAME)%.b2clogin.com/%env(AZURE_B2C_TENANT_NAME)%.onmicrosoft.com/oauth2/v2.0/authorize'
                token_url: 'https://%env(AZURE_B2C_TENANT_NAME)%.b2clogin.com/%env(AZURE_B2C_TENANT_NAME)%.onmicrosoft.com/oauth2/v2.0/token'

2. 手动覆盖客户端实例的Policy参数

如果配置后问题仍存在,可在控制器中获取客户端实例时,显式设置policy参数:

$client = $this->get('knpu.oauth2.client.azure_b2c');
/** @var \TheNetworg\OAuth2\Client\Provider\Azure $provider */
$provider = $client->getOAuth2Provider();
$provider->policy = 'b2c_1_signupin';

// 生成授权URL
$authUrl = $provider->getAuthorizationUrl();

3. 版本适配说明

你使用的thenetworg/oauth2-azure v1.4.2对B2C的支持需要显式指定policy和自定义端点,不能依赖库的自动生成逻辑,否则会错误地将租户路径拼接到policy参数中。务必使用b2clogin.com的专用端点,而非通用的login.microsoftonline.com。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:40:25