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

WSO2 API Manager 4.1.0中Basic Auth租户域不匹配错误解决求助

解决WSO2 API Manager 4.1.0中BasicAuth认证租户域不匹配的403错误

根据你提供的错误日志Basic Authentication failure: tenant domain mismatch for user :user1@testdomain.com,核心问题是API调用时使用的用户名租户域与WSO2中用户实际归属的租户域不匹配,结合你的操作场景,可按以下步骤排查解决:

1. 修正API认证用户的格式

WSO2的用户命名规则为<用户名>@<租户域>,默认租户域为carbon.super:

  • 如果你是在默认租户下创建的user1用户,调用API时的BasicAuth用户名应为user1或完整格式user1@carbon.super,而非user1@testdomain.com(该格式会被解析为租户域testdomain.com下的user1用户)。
  • 若业务需求必须使用user1@testdomain.com作为认证用户名,需先在WSO2中创建租户testdomain.com,并在该租户下创建user1用户。

2. 区分API前端认证与后端BasicAuth配置

你在Endpoints中配置的BasicAuth凭据是APIM调用后端服务时使用的,这部分与API前端的用户认证完全独立:

  • 确保Endpoints中的用户名user1@testdomain.com和密码apimtestpwd与后端服务的要求一致。
  • API前端的认证用户必须是WSO2用户库中存在的、租户域匹配的用户,两者不可混淆。

3. 调整deployment.toml的租户相关配置

若需允许用户使用不带租户域的用户名登录,或忽略租户域检查,添加以下配置到<APIM_HOME>/repository/conf/deployment.toml:

[apim.authentication.basic_auth]
allow_plain_username = true

[tenant_mgt]
enable_email_domain_as_tenant_domain = false

修改后必须重启WSO2 APIM服务使配置生效。

4. 验证用户的租户归属

登录Carbon控制台(https://<APIM_HOST>:9443/carbon),进入Users and Roles > List Users:

  • 查看user1用户的租户域是否为carbon.super(默认租户)。
  • 若租户域不匹配,需重新创建用户或调整租户配置。

5. 检查API的订阅与权限

即使API采用BasicAuth保护,仍需确保用户拥有访问权限:

  • 在Publisher的API配置 > Subscriptions中,给用户所属角色添加该API的订阅。
  • 或在Devportal中让用户手动订阅API(APIM默认要求订阅后才能访问,除非配置为开放API)。

6. 测试请求格式验证

调用API时,确保请求头中的Authorization格式正确:

  • 将正确的用户名(如user1)和密码进行Base64编码,生成Authorization: Basic <编码字符串>的请求头。
  • 避免使用错误的用户名格式(如user1@testdomain.com)导致租户域解析错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:05:30