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

.NET 6 Web API+Azure AD认证:Postman无法触发用户同意界面

问题分析与解决方案

一、检查Azure AD应用注册的权限同意设置

  • 进入Azure Portal的应用注册,找到你的API应用,进入「API权限」页面
  • 确认已添加的「User.Read」委托权限旁,若勾选了「需要管理员同意」,普通用户无法自行授权,需管理员先完成租户级同意;若为用户可自行同意的权限,需确保应用「身份验证」设置开启用户同意:
    • 进入「身份验证」→「高级设置」,将「允许用户同意应用访问其数据」设为「是」
    • 按需开启「允许管理员代表用户同意」(用于批量授权场景)

二、Postman请求时强制触发权限同意

获取令牌的请求需添加prompt=consent参数,强制Azure AD弹出同意界面:

  • 在Postman的OAuth2.0配置中,进入「Advanced Settings」,在「Additional Authorization Parameters」中添加prompt=consent
  • 或直接在授权URL末尾拼接参数:https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/authorize?prompt=consent&...

三、修复Swagger的OAuth配置

在.NET 6 Web API的Swagger配置中,强制OAuth流程携带prompt=consent参数:

  • 修改Program.cs中Swagger UI的配置,添加额外查询参数:
app.UseSwaggerUI(c =>
{
    c.OAuthAdditionalQueryStringParams(new Dictionary<string, string> { { "prompt", "consent" } });
    c.OAuthClientId("{你的客户端ID}");
    c.OAuthScopes("api://{你的客户端ID}/access_as_user", "User.Read");
});

四、确认权限类型与重定向URI

  • 确保「User.Read」是委托权限(而非应用权限),只有委托权限需要用户授权
  • 检查Postman和Swagger的重定向URI已注册到应用的「身份验证」→「重定向URI」列表:
    • Postman的重定向URI通常为https://oauth.pstmn.io/v1/callback
    • Swagger的重定向URI为https://localhost:{你的端口}/swagger/oauth2-redirect.html

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 15:05:35