升级Microsoft.Identity.Client至4.61.1后重定向URI报错求助
解决MSAL 4.61.1升级后的重定向URI报错问题
问题原因分析
MSAL 4.61.1版本对公共客户端(Public Client)的重定向URI做了更严格的安全限制,不再支持任意自定义的app://类URI;而使用http://localhost时,MSAL会自动随机分配端口,导致实际请求的URI与Azure门户中配置的不匹配,触发AADSTS50011错误。
解决方案步骤
1. 更新Azure AD应用注册的重定向URI
登录Azure门户,找到对应ClientID的应用注册,进入身份验证页面:
- 在移动和桌面应用分类下,添加以下任意一种符合要求的回环URI:
- 选项A:
msal<你的ClientID>://auth(替换<你的ClientID>为实际的应用ID,比如msalgfdhghg-fa19-5t76hg-ghgh-5646767://auth) - 选项B:
http://localhost(AAD允许localhost的任意端口自动匹配)
- 选项A:
2. 调整代码中的重定向URI配置
根据你选择的URI类型修改代码:
- 如果选选项A:
var authBuilder = PublicClientApplicationBuilder.Create(clientId) .WithAuthority(AzureCloudInstance.AzurePublic, tenantId) .WithRedirectUri("msalgfdhghg-fa19-5t76hg-ghgh-5646767://auth"); - 如果选选项B,或者让MSAL自动处理(推荐):
可以直接省略WithRedirectUri配置,MSAL会自动使用默认回环URI,代码更简洁:var authBuilder = PublicClientApplicationBuilder.Create(clientId) .WithAuthority(AzureCloudInstance.AzurePublic, tenantId);
3. 验证配置
确保应用注册中的重定向URI类型是移动和桌面应用,而非Web类,公共客户端应用的回环URI必须配置在正确分类下才能生效。
内容的提问来源于stack exchange,提问作者BSSW
相关产品推荐
相关产品推荐

