创建邀请

命名空间:microsoft.graph

使用此 API 为已 兑换其邀请 的来宾用户创建新的邀请或重置兑换状态。 邀请会将外部用户作为 B2B 协作的一部分添加到组织。 员工和外部租户Microsoft Entra 外部 ID都支持 B2B 协作。

创建新邀请时,有几个可用选项:

  1. 创建邀请时,Microsoft Graph 可以自动向受邀用户发送邀请电子邮件,或者你的应用可以使用响应中返回 的 inviteRedeemUrl ,通过所选) 到受邀用户的通信机制来创建自己的邀请 (。 如果决定让 Microsoft Graph 自动发送邀请电子邮件,则可以使用 invitedUserMessageInfo 指定电子邮件的内容和语言。
  2. 邀请用户时,将创建 userTypeGuest) 的用户实体 (,可用于控制对资源的访问。 受邀请的用户必须完成兑换过程才能访问其获得访问邀请的任意资源。

此 API 可用于以下国家级云部署

全局服务 美国政府 L4 美国政府 L5 (DOD) 由世纪互联运营的中国

权限

为此 API 选择标记为最低特权的权限。 只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考

权限类型 最低特权权限 更高特权权限
委派(工作或学校帐户) User.Invite.All Directory.ReadWrite.All、User.ReadWrite.All
委派(个人 Microsoft 帐户) 不支持。 不支持。
应用程序 User.Invite.All Directory.ReadWrite.All、User.ReadWrite.All

重要

在具有工作或学校帐户的委托方案中,必须为登录用户分配受支持的Microsoft Entra角色或具有支持的角色权限的自定义角色。 此操作支持以下最低特权角色:

  • 邀请来宾:
    • 如果租户管理员未限制默认用户权限,则非管理员成员用户和来宾 用户可以邀请来宾
    • 来宾邀请者、目录编写者或用户管理员。
  • 重置兑换状态:支持人员管理员或用户管理员。
  • 如果租户上禁用了 B2B 邀请,或者 B2B 邀请仅限于管理员,则应用程序权限 (仅限应用) 不起作用。
  • 重置来宾用户的兑换状态时, User.ReadWrite.All 权限是操作的最低特权权限。

HTTP 请求

POST /invitations

请求标头

标头
Authorization 持有者 {token}。 必填。 详细了解 身份验证和授权
Content-Type application/json

请求正文

在请求正文中,提供 invitation 对象的 JSON 表示形式。

下表列出了创建邀请时所需的参数。

参数 类型 说明
invitedUserEmailAddress string 要邀请的用户的电子邮件地址。
inviteRedirectUrl string 兑现后用户将被重定向至的 URL。

响应

如果成功,此方法在 201 Created 响应正文中返回响应代码和 邀请 对象。

示例

示例 1:邀请来宾用户

请求

以下示例显示了添加和邀请来宾用户的请求。

POST https://graph.microsoft.com/v1.0/invitations
Content-type: application/json

{
  "invitedUserEmailAddress": "admin@fabrikam.com",
  "inviteRedirectUrl": "https://myapp.contoso.com"
}

响应

以下示例显示了相应的响应。

注意:为了提高可读性,可能缩短了此处显示的响应对象。

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#invitations/$entity",
    "id": "9071bfde-35e0-47d2-a582-d244ab1b4af6",
    "inviteRedeemUrl": "https://login.microsoftonline.com/redeem?rd=https%3a%2f%2finvitations.microsoft.com%2fredeem%...d%26ver%3d2.0",
    "invitedUserDisplayName": null,
    "invitedUserType": "Guest",
    "invitedUserEmailAddress": "admin@fabrikam.com",
    "sendInvitationMessage": false,
    "resetRedemption": false,
    "inviteRedirectUrl": "https://myapp.contoso.com",
    "status": "PendingAcceptance",
    "invitedUserMessageInfo": {
        "messageLanguage": null,
        "customizedMessageBody": null,
        "ccRecipients": [
            {
                "emailAddress": {
                    "name": null,
                    "address": null
                }
            }
        ]
    },
    "invitedUser": {
        "id": "cbb896f9-8306-49d0-b56b-b8e39cd28825"
    }
}

示例 2:重置来宾用户的兑换状态

请求

以下示例显示了重置来宾用户的兑换状态的请求。 请求会更改用户的电子邮件地址,但保留其当前用户 ID。 在运行请求之前,必须将新电子邮件地址添加到现有来宾用户对象的 otherMails 属性。

POST https://graph.microsoft.com/v1.0/invitations
Content-type: application/json

{
    "invitedUserEmailAddress": "AdeleV@fabrikam.com",
    "inviteRedirectUrl": "https://myapp.contoso.com",
    "invitedUser": {
        "id": "264e6d50-eaec-461e-b187-873b1bcf855f"
    },
    "resetRedemption": true
}

响应

以下示例显示了相应的响应。

注意:为了提高可读性,可能缩短了此处显示的响应对象。

HTTP/1.1 201 Created
Content-type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#invitations/$entity",
    "id": "46d72876-dba6-4a05-b9ec-118faf16c4b7",
    "inviteRedeemUrl": "https://login.microsoftonline.com/redeem?rd=https%3a%2f%2finvitations.microsoft.com%2fredeem%2f%3fte...3d2.0",
    "invitedUserDisplayName": null,
    "invitedUserType": "Guest",
    "invitedUserEmailAddress": "AdeleV@fabrikam.com",
    "sendInvitationMessage": false,
    "resetRedemption": true,
    "inviteRedirectUrl": "https://myapp.contoso.com",
    "status": "PendingAcceptance",
    "invitedUserMessageInfo": {
        "messageLanguage": null,
        "customizedMessageBody": null,
        "ccRecipients": [
            {
                "emailAddress": {
                    "name": null,
                    "address": null
                }
            }
        ]
    },
    "invitedUser": {
        "id": "264e6d50-eaec-461e-b187-873b1bcf855f"
    }
}