添加Delegated Mail.Send权限后状态空白,求排查方案
排查Delegated类型Mail权限状态空白问题的步骤
1. 确认权限添加流程正确性
- 严格走应用注册 > API权限 > 添加权限 > Microsoft Graph > 委托权限路径添加
Mail.Send/Mail.ReadWrite,避免误选应用权限类型。 - 确认点击「添加权限」按钮完成操作,不要中途退出页面。
2. 排查浏览器会话与缓存问题
- 登出Azure Portal所有账号,清除浏览器缓存(Cookie、本地存储)后重新登录,查看权限状态。
- 使用浏览器隐私/无痕模式打开Azure Portal,进入应用注册页面检查,排除会话冲突或缓存异常。
3. 验证应用注册基础配置
- 确认应用的支持账户类型匹配当前用户:单租户应用需确保用户属于该租户;多租户应用需确认用户已被授权访问。
- 检查应用清单配置:进入应用注册 > 概述 > 管理 > 清单,查看
requiredResourceAccess字段,确认已正确包含目标权限的ID与类型:Mail.Send权限ID:e1fe6dd8-ba31-4d61-89e7-88639da4683dMail.ReadWrite权限ID:0e263e50-5827-48a4-b97c-d940288653c7
正确格式示例:
{ "resourceAppId": "00000003-0000-0000-c000-000000000000", "resourceAccess": [ { "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d", "type": "Scope" } ] }
4. 直接测试权限可用性
不要依赖Portal显示,通过代码验证权限是否实际生效,比如用Microsoft Graph SDK发送邮件:
var graphClient = new GraphServiceClient(authProvider); var message = new Message { Subject = "测试邮件", Body = new ItemBody { ContentType = BodyType.Text, Content = "测试内容" }, ToRecipients = new List<Recipient> { new Recipient { EmailAddress = new EmailAddress { Address = "收件人邮箱@example.com" } } } }; await graphClient.Me.SendMail(message, true).Request().PostAsync();
- 若代码执行成功,说明权限已生效,仅Portal显示异常;
- 若报错(如
insufficient privileges),说明权限未正确添加,需重新走添加流程。
5. 通过CLI/PowerShell确认权限配置
使用工具查询应用权限,排除Portal前端显示问题:
- Azure CLI命令:
az ad app show --id <应用ID> --query "requiredResourceAccess"
- PowerShell命令:
Get-AzADApplication -ApplicationId <应用ID> | Select-Object -ExpandProperty RequiredResourceAccess
如果工具能返回正确的权限信息,说明是Portal缓存问题,无需额外操作,等待后台同步即可。
6. 提交Azure支持工单(最终方案)
若以上步骤均无效,权限仍显示空白且无法使用,可通过Azure Portal提交支持工单,提供应用ID、租户ID、权限添加时间等信息,请求微软技术团队排查后台配置异常。
内容的提问来源于stack exchange,提问作者Jo G
相关产品推荐
相关产品推荐

