如何通过Graph API为用户邮箱添加Send As发送权限
实现方案
前置准备
请先确认你的应用已完成如下配置:
- 已在Azure AD应用注册中添加应用权限类型的
Exchange.ManageAsApp权限,且已完成全局管理员同意,不要选择同名称的委托权限 - 已将该应用添加到Azure AD的Exchange 管理员角色中,该角色是调用邮箱权限配置接口的必要条件
- 保持你当前使用的证书认证获取access token的逻辑不变即可
具体API调用步骤
1. 基础接口信息
给目标邮箱分配Send As权限的请求方法为POST,请求地址格式如下:
POST https://graph.microsoft.com/v1.0/users/{目标邮箱用户的ID或用户主体名称UPN}/permissions
提示:如果不知道用户的ID值,可以先调用
GET https://graph.microsoft.com/v1.0/users/{用户的邮箱地址}获取用户详情,返回体中的id字段就是对应的用户ID。
2. 请求头要求
Authorization: Bearer {你用证书获取到的access_token}Content-Type: application/json
3. 请求体参数示例
给指定用户分配Send As权限的请求体示例:
{ "roles": ["sendAs"], "grantedToIdentities": [ { "user": { "id": "被授权的用户的ID", "displayName": "被授权的用户显示名称" } } ] }
说明:如果是要给应用本身分配Send As权限,把
grantedToIdentities里的user结构替换为对应servicePrincipal结构即可。
4. 调用结果说明
调用成功后会返回201 Created状态码,返回体中会包含该权限的ID等信息,此时Send As权限已完成配置。
注意事项
- 权限生效最长可能有15分钟的延迟,如果配置完立刻调用发信接口报错,可以等待几分钟后再测试
- 如果需要移除已配置的Send As权限,调用
DELETE https://graph.microsoft.com/v1.0/users/{目标邮箱UPN}/permissions/{权限ID}即可 - 每次调用只能给一个主体授权,如果需要批量给多个用户授权,多次调用该接口即可
内容的提问来源于stack exchange,提问作者Zoners
相关产品推荐
相关产品推荐

