Crear invitación

Espacio de nombres: microsoft.graph

Use esta API para crear una nueva invitación o restablecer el estado de canje de un usuario invitado que ya haya canjeado su invitación. La invitación agrega el usuario externo a la organización como parte de la colaboración B2B. La colaboración B2B se admite tanto en Id. externa de Microsoft Entra en empleados como en inquilinos externos.

Al crear una nueva invitación, tiene varias opciones disponibles:

  1. Al crear la invitación, Microsoft Graph puede enviar automáticamente un correo electrónico de invitación directamente al usuario invitado, o bien la aplicación puede usar el valor de inviteRedeemUrl devuelto en la respuesta para crear su propia invitación (a través del mecanismo de comunicación que prefiera) al usuario invitado. Si decide que Microsoft Graph envíe automáticamente un correo electrónico de invitación, puede especificar el contenido y el idioma del correo electrónico mediante invitedUserMessageInfo.
  2. Cuando se invita al usuario, se crea una entidad de usuario (de userTypeGuest) y se puede usar para controlar el acceso a los recursos. El usuario invitado tiene que pasar por el proceso de canje para acceder a los recursos a los que se le ha invitado.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) User.Invite.All Directory.ReadWrite.All, User.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación User.Invite.All Directory.ReadWrite.All, User.ReadWrite.All

Importante

En escenarios delegados con cuentas profesionales o educativas, al usuario que ha iniciado sesión se le debe asignar un rol de Microsoft Entra compatible o un rol personalizado con un permiso de rol admitido. Se admiten los siguientes roles con privilegios mínimos para esta operación:

  • Para invitar a invitados:
    • Tanto los usuarios miembros no administradores como los usuarios invitados pueden invitar a invitados si el administrador de inquilinos no ha restringido los permisos de usuario predeterminados.
    • Invitador, escritores de directorios o administrador de usuarios.
  • Para restablecer el estado de canje: Administrador del departamento de soporte técnico o Administrador de usuarios.
  • Los permisos de aplicación (solo aplicación) no funcionan si las invitaciones B2B están deshabilitadas en el inquilino o si las invitaciones B2B están restringidas a los administradores.
  • Al restablecer el estado de canje de un usuario invitado, el permiso User.ReadWrite.All es el permiso con privilegios mínimos para la operación.

Solicitud HTTP

POST /invitations

Encabezados de solicitud

Encabezado Valor
Authorization {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.
Content-Type application/json

Cuerpo de solicitud

En el cuerpo de la solicitud, proporcione una representación JSON de un objeto invitation.

En la tabla siguiente se enumeran los parámetros necesarios al crear una invitación.

Parámetro Tipo Descripción
invitedUserEmailAddress string Dirección de correo electrónico del usuario al que invita.
inviteRedirectUrl string Dirección URL a la que se redirigirá al usuario después del canje.

Respuesta

Si se ejecuta correctamente, este método devuelve 201 Created el código de respuesta y un objeto de invitación en el cuerpo de la respuesta.

Ejemplo

Ejemplo 1: Invitar a un usuario invitado

Solicitud

En el ejemplo siguiente se muestra una solicitud para agregar e invitar a un usuario invitado.

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

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

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"
    }
}

Ejemplo 2: Restablecer el estado de canje de un usuario invitado

Solicitud

En el ejemplo siguiente se muestra una solicitud para restablecer el estado de canje de un usuario invitado. La solicitud cambia la dirección de correo electrónico del usuario, pero mantiene su identificador de usuario actual. Antes de ejecutar la solicitud, debe agregar la nueva dirección de correo electrónico a la propiedad otherMails del objeto de usuario invitado existente.

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
}

Respuesta

En el ejemplo siguiente se muestra la respuesta.

Nota: Se puede acortar el objeto de respuesta que se muestra aquí para mejorar la legibilidad.

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"
    }
}