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

使用托管身份连接Exchange Online时遇System.UnauthorizedAccessException异常

问题描述

尝试创建使用系统分配托管身份连接Exchange Online的Azure PowerShell函数,已使用EXO v3模块,执行命令:

Connect-ExchangeOnline -ManagedIdentity -Organization <tenantname>

运行函数时抛出未授权异常:

Exception             : 
Type       : System.UnauthorizedAccessException
TargetSite : 
Name          : CheckResponseHeadersAndGetNewTokenIfNeeded
DeclaringType : Microsoft.Exchange.Management.ExoPowershellSnapin.NewEXOModule
MemberType    : Method
Module        : Microsoft.Exchange.Management.ExoPowershellGalleryModule.dll
Message    : UnAuthorized
Source     : Microsoft.Exchange.Management.ExoPowershellGalleryModule
HResult    : -2147024891
StackTrace : 
at Microsoft.Exchange.Management.ExoPowershellSnapin.NewEXOModule.CheckResponseHeadersAndGetNewTokenIfNeeded(ITokenProvider tokenProvider, HttpResponseHeaders responseHeaders, String errorMessage, String cmdletId, TokenInformation& authHeader, Boolean& isRetryHappening)
at Microsoft.Exchange.Management.ExoPowershellSnapin.NewEXOModule.ProcessRecord()
at System.Management.Automation.Cmdlet.DoProcessRecord()
at System.Management.Automation.CommandProcessor.ProcessRecord()

推测是系统分配的托管身份缺少Exchange Online访问权限,需补充权限配置。

解决步骤
  1. 获取托管身份的Object ID
    在Azure门户进入目标函数应用→身份→系统分配页面,复制显示的Object ID。

  2. 以全局管理员身份连接Exchange Online
    打开PowerShell执行:

    Connect-ExchangeOnline
    

    按提示完成身份验证。

  3. 给托管身份分配Exchange角色
    根据实际业务需求选择对应角色(例如Mail Recipients用于收件人管理、View-Only Recipients用于只读访问),执行命令:

    New-ManagementRoleAssignment -Role "<目标角色名称>" -ApplicationAccount "<托管身份Object ID>"
    
  4. 验证权限分配
    执行以下命令确认角色已成功分配:

    Get-ManagementRoleAssignment -ApplicationAccount "<托管身份Object ID>"
    

完成以上步骤后,重新运行Azure PowerShell函数,即可正常通过托管身份连接Exchange Online。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 15:50:21