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

认证完成后无法访问Office 365共享邮箱:已认证但未连接

问题

开发读取共享邮箱的Daemon应用,已在Azure完成注册,能成功获取Access Token,但访问收件箱时触发错误。错误日志:

26:14.88 < b'CKLI1 OK AUTHENTICATE completed.'
26:14.88 > b'CKLI2 SELECT inbox'
26:14.88 < b'CKLI2 BAD User is authenticated but not connected.'

已验证应用权限:执行Test-ApplicationAccessPolicy -Identity sharedMailboxAddress -AppId myappnum后,AccessCheckResult返回Granted。

相关代码
conf = json.load(open(sys.argv[1]))

def generate_auth_string(user, token):
    return f"user={user}\x01auth=Bearer {token}\x01\x01"    

# 获取Token流程
result = None

# 先从缓存查找Token(Daemon模式无需用户账户,account设为None)
app = msal.ConfidentialClientApplication(conf['client_id'], authority=conf['authority'], client_credential=conf['secret'])

result = app.acquire_token_silent(conf['scope'], account=None)

if not result:
    print("缓存中无可用Token,获取新Token。")
    result = app.acquire_token_for_client(scopes=conf['scope'])
    
if "access_token" in result:
    print(result['token_type'])
    pprint.pprint(result)
else:
    print(result.get("error"))
    print(result.get("error_description"))
    print(result.get("correlation_id"))
        
# IMAP认证与收件箱访问
imap = imaplib.IMAP4_SSL('outlook.office365.com', 993)
imap.debug = 4
imap.authenticate("XOAUTH2", lambda x:generate_auth_string('sharedMailboxAddress',result['access_token']))
imap.select('Inbox')
解决方案

这个错误通常是Token权限或配置不符合Daemon模式访问共享邮箱的要求,可按以下步骤排查修复:

  • 确认Scope配置正确
    Daemon应用必须使用https://outlook.office365.com/.default作为scope,不能使用委派类型的scope。检查conf['scope']是否设置为["https://outlook.office365.com/.default"]。

  • 验证Token权限
    用JWT解码工具解码获取到的Access Token,确认:

    • aud字段值为https://outlook.office365.com
    • roles字段包含IMAP.AccessAsApp权限
  • 检查Azure应用权限配置
    确保Azure AD应用已添加应用权限IMAP.AccessAsApp,且已完成全局管理员同意。委派权限无法用于Daemon模式访问共享邮箱。

  • 确认共享邮箱地址正确性
    generate_auth_string中的user参数必须是共享邮箱的完整SMTP地址,确保拼写无误,与Test-ApplicationAccessPolicy中使用的地址一致。

完成以上检查后重新测试,即可解决认证后无法访问收件箱的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 16:05:34