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

使用管理员账号为其他用户创建ToDo-Tasks失败咨询

能否使用单个管理员账号为其他用户创建ToDo任务?

背景信息

  • 已注册Azure AD应用,配置API权限:Tasks.Read、Tasks.ReadWrite、User.Read.All
  • 持有管理员账号与测试用户账号,已获取管理员账号的access_token
  • 已完成的测试:
    • 用管理员access_token可成功读取测试用户个人信息,请求地址:https://graph.microsoft.com/v1.0/users/testuser@mycompany.onmicrosoft.com
    • 用测试用户access_token可成功为自身创建ToDo任务
    • 用管理员access_token可成功为自身创建ToDo任务
    • 尝试用管理员access_token为测试用户创建任务(使用测试用户的{{ListID}})时,收到错误

遇到的错误

{
    "error": {
        "code": "invalidRequest",
        "message": "无效请求",
        "innerError": {
            "code": "ErrorIncorrectRoutingHint",
            "date": "2022-07-28T07:49:25",
            "request-id": "#######-####-####-####-############",
            "client-request-id": "########-####-####-####-############"
        }
    }
}

问题解答

可以实现跨用户创建ToDo任务,但你的操作存在两处关键问题:

1. 权限类型错误

你当前配置的Tasks.ReadWrite大概率是委托权限,委托权限仅允许代表当前登录的管理员账号操作,无法跨用户执行创建任务的动作。需要将Tasks.ReadWrite权限改为应用权限,并完成管理员同意流程。

2. 请求路径与认证流错误

  • 跨用户创建任务时,必须明确指定目标用户的ID或用户主体名称(UPN),正确的请求路径应为:
    POST https://graph.microsoft.com/v1.0/users/{测试用户ID/UPN}/todo/lists/{ListID}/tasks
    
  • 需使用**客户端凭证流(Client Credentials Flow)**获取access_token,而非授权码流。客户端凭证流以应用身份发起请求,支持跨用户访问操作。

补充说明

若坚持使用委托权限,管理员需拥有全局管理员或Exchange管理员角色,且必须使用指定目标用户的请求路径,但委托权限下跨用户操作的权限范围受限,稳定性不如应用权限方案。

内容的提问来源于stack exchange,提问作者Sven Färber

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 09:54:20