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

Azure App Service多身份提供商问题:ASP.NET Core B2B登录后无权限

回答

一、代码问题排查

最可能的代码问题是缺失认证中间件启用步骤:
当前代码仅调用了app.UseAuthorization(),但未在UseRouting()之后、UseAuthorization()之前添加app.UseAuthentication()。这会导致应用无法识别App Service身份认证流程返回的用户身份信息,进而触发授权失败,显示“无权访问”。

修正后的代码片段:

app.UseRouting();

// 新增这一行,启用身份认证中间件
app.UseAuthentication();

app.UseAuthorization();

二、租户注册/配置问题排查

若修正代码后问题仍存在,检查以下配置项:

  • OIDC受众配置:确认B2B租户应用注册的“受众”是否指向App Service客户端ID,或App Service身份认证设置中“msb2b”提供商的“允许的令牌受众”是否包含B2B租户颁发令牌的受众值。
  • 应用注册账户类型:B2B租户的应用注册是否设置为允许外部租户用户访问(例如账户类型选择“任何组织目录中的用户”)。
  • 用户访问权限:确认登录的B2B用户是否被授予应用访问权限,或App Service身份认证设置中是否启用“允许所有已验证用户访问应用”选项。

三、获取更多错误信息的方法

  1. 查看App Service身份认证日志:在Azure门户进入App Service的“身份认证”页面,开启日志功能,查看身份认证流程的详细记录,包括令牌验证结果、用户信息识别状态。
  2. 启用ASP.NET Core详细日志:在appsettings.json中添加日志配置,将认证模块日志级别设为Debug或Trace:
    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore.Authentication": "Debug"
        }
      }
    }
    
    部署后通过App Service“日志流”或Kudu控制台的LogFiles目录查看日志。
  3. 查看App Service应用日志:在Azure门户开启“应用日志记录”,捕获应用运行时的详细错误信息,包括授权失败的具体原因。
  4. 本地模拟调试:将App Service身份认证配置导出到本地开发环境,模拟登录流程,通过Visual Studio调试输出查看认证、授权环节的详细日志。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 13:50:58