了解 Outlook 加载项权限
Outlook 外接程序在其清单中指定所需的权限级别。 有四个可用级别。
权限级别 规范名称 |
仅外接程序清单名称 | Microsoft 365 名称的统一清单 | 摘要说明 |
---|---|---|---|
限制 | 受限 | MailboxItem.Restricted.User | 允许访问与用户或邮件项目的特定信息无关的属性和方法。 |
读取项 | ReadItem | MailboxItem.Read.User | 除了 受限中允许的内容外,它还允许:
|
读/写项 | ReadWriteItem | MailboxItem.ReadWrite.User | 除了 读取项中允许的内容外,它还允许:
|
读/写邮箱 | ReadWriteMailbox | Mailbox.ReadWrite.User | 除了 在读/写项中允许的内容外,它还允许:
|
权限在清单中声明。 标记因清单类型而异。
- 仅外接程序清单:使用 <Permissions> 元素。
- Microsoft 365 的统一清单:使用“authorization.permissions.resourceSpecific”数组中对象的“name”属性。
注意
- 对于使用“发送时追加”功能的加载项,需要一个补充权限。 对于仅外接程序清单,请在 ExtendedPermissions 元素中指定权限。 有关详细信息,请参阅 在 Outlook 外接程序中实现end-on-send。 使用统一清单,在“authorization.permissions.resourceSpecific”数组的附加对象中指定名为 Mailbox.AppendOnSend.User 的此权限。
- 使用共享文件夹的加载项需要补充权限。 对于仅外接程序清单,通过将 SupportsSharedFolders 元素设置为 来
true
指定权限。 有关详细信息,请参阅 在 Outlook 外接程序中启用共享文件夹和共享邮箱方案。 使用统一清单,在“authorization.permissions.resourceSpecific”数组的附加对象中指定名为 Mailbox.SharedFolder 的此权限。
四个级别的权限具有累积性:读/写邮箱权限包括读/写项权限、读取项权限和受限权限;读/写项权限包括读取项权限和受限权限;读取项权限包括受限权限。
在从 AppSource 安装邮件加载项之前,可以看到它请求的权限。 您还可以在 Exchange 管理员中心中查看已安装外接程序所需的权限。
受限权限
受限权限是最基本的权限级别。 默认情况下,如果加载项在其清单中不请求特定权限,Outlook 会将此权限分配给邮件加载项。
允许事项
访问与用户或项目具体信息无关的任何属性和方法。(请参阅下一部分,了解与用户或项目具体信息相关的属性和方法列表)。
不能执行的操作
访问以下列表中与用户或邮件具体信息相关的属性和方法。 尝试访问此列表中的成员将返回 null,并生成指明 Outlook 要求邮件外接程序具有提升的权限的错误消息。
- item.addFileAttachmentAsync
- item.addItemAttachmentAsync
- item.attachments
- item.bcc
- item.body
- item.cc
- item.from
- item.getRegExMatches
- item.getRegExMatchesByName
- item.optionalAttendees
- item.organizer
- item.removeAttachmentAsync
- item.requiredAttendees
- item.sender
- item.to
- mailbox.getCallbackTokenAsync
- mailbox.getUserIdentityTokenAsync
- mailbox.makeEwsRequestAsync
- mailbox.userProfile
- Body 及其所有子成员
- Location 及其所有子成员
- Recipients 及其所有子成员
- Subject 及其所有子成员
- Time 及其所有子成员
读取项权限
读取项权限是权限模型中的下一级权限。
可以执行的操作
在读取或 撰写窗体中读取当前项目的所有属性,例如阅读窗体中的 item.to 和撰写窗体中的 item.to.getAsync。
获取回调令牌,以使用 Exchange Web 服务 (EWS) 或 Outlook REST API 获取邮件附件或整个邮件。
重要
旧版 Exchange 令牌已弃用。 从 2024 年 10 月开始,Exchange Online租户将开始关闭旧版 Exchange 用户标识和回调令牌。 有关时间线和详细信息,请参阅常见问题解答页面。 这是 Microsoft的“安全未来计划”的一部分,该计划为组织提供了应对当前威胁环境所需的工具。 Exchange 用户标识令牌仍适用于本地 Exchange。 嵌套应用身份验证是今后令牌的建议方法。
在 上下文加载项中使用正则表达式。
禁止事项
mailbox.getCallbackTokenAsync 提供的令牌可用于:
- 使用 Outlook REST API 更新或删除当前邮件,或访问用户邮箱中的其他任何邮件。
- 使用 Outlook REST API 获取当前日历事件项。
使用以下任一 API。
- mailbox.makeEwsRequestAsync
- item.addFileAttachmentAsync
- item.addItemAttachmentAsync
- item.bcc.addAsync
- item.bcc.setAsync
- item.body.prependAsync
- item.body.setAsync
- item.body.setSelectedDataAsync
- item.cc.addAsync
- item.cc.setAsync
- item.end.setAsync
- item.location.setAsync
- item.optionalAttendees.addAsync
- item.optionalAttendees.setAsync
- item.removeAttachmentAsync
- item.requiredAttendees.addAsync
- item.requiredAttendees.setAsync
- item.start.setAsync
- item.subject.setAsync
- item.to.addAsync
- item.to.setAsync
读/写项权限
在清单中指定可请求此权限的 读/写项 权限。 在使用撰写方法(例如,Message.to.addAsync 或 Message.to.setAsync)的撰写窗体中激活的邮件加载项必须使用至少这个等级的权限。
允许事项
使用适用于邮件加载项的 Office JavaScript API 的所有其他成员, Mailbox.makeEWSRequestAsync 除外。
禁止事项
mailbox.getCallbackTokenAsync 提供的令牌可用于:
- 使用 Outlook REST API 更新或删除当前邮件,或访问用户邮箱中的其他任何邮件。
- 使用 Outlook REST API 获取当前日历事件项。
使用 mailbox.makeEWSRequestAsync。
读/写邮箱权限
读/写邮箱权限是最高级别的权限。
除了 读取/写入项目 权限支持的内容外, mailbox.getCallbackTokenAsync 提供的令牌还允许使用 Exchange Web Services (EWS) 操作或 Outlook REST API 执行以下操作:
- 读取和写入用户邮箱中任何邮件的所有属性。
- 创建、读取和写入该邮箱中的任何文件夹或项目。
- 从用户邮箱发送邮件
通过 mailbox.makeEWSRequestAsync,可以访问以下 EWS 操作。
- CopyItem
- CreateFolder
- CreateItem
- FindConversation
- FindFolder
- FindItem
- GetConversationItems
- GetFolder
- GetItem
- MarkAsJunk
- MoveItem
- SendItem
- UpdateFolder
- UpdateItem
尝试执行不受支持的操作会导致错误响应发生。
重要
旧版 Exchange 令牌已弃用。 从 2024 年 10 月开始,Exchange Online租户将开始关闭旧版 Exchange 用户标识和回调令牌。 有关时间线和详细信息,请参阅常见问题解答页面。 这是 Microsoft的“安全未来计划”的一部分,该计划为组织提供了应对当前威胁环境所需的工具。 Exchange 用户标识令牌仍适用于本地 Exchange。 嵌套应用身份验证是今后令牌的建议方法。