Problemas conocidos de Microsoft Graph

En este artículo, se describen los problemas conocidos de Microsoft Graph.

Para informar de un problema conocido, consulte la página Soporte técnico de Microsoft Graph.

Para obtener información sobre las actualizaciones más recientes a la API de Microsoft Graph, consulte el Registro de cambios de Microsoft Graph.

Aplicaciones

Se aplican algunas limitaciones a los recursos application y servicePrincipal

Los cambios en los recursos application y servicePrincipalestán actualmente en desarrollo. A continuación, se muestra un resumen de las limitaciones actuales y las características de la API en desarrollo.

Limitaciones actuales:

  • Algunas propiedades de aplicaciones (como appRoles y addIns) no estarán disponibles hasta que se completen todos los cambios.
  • Solo pueden registrarse las aplicaciones multiinquilino.
  • La actualización de aplicaciones está restringida a las aplicaciones que se han registrado después de la actualización de la versión beta inicial.
  • Los usuarios de Azure Active Directory pueden registrar aplicaciones y agregar propietarios adicionales.
  • Compatibilidad con los protocolos OpenID Connect y OAuth.
  • Error en las asignaciones de directivas en una aplicación.
  • Las operaciones de ownedObjects que necesiten appId producirán un error (Por ejemplo, users/{id|userPrincipalName}/ownedObjects/{id}/...).

En desarrollo:

  • Capacidad de registrar aplicaciones de inquilino único.
  • Actualizaciones de servicePrincipal.
  • Migración de aplicaciones de Azure AD existentes en un modelo actualizado.
  • Compatibilidad para appRoles, clientes autorizados previamente, notificaciones opcionales, notificaciones de pertenencia a grupos y personalización de marca.
  • Los usuarios de cuentas de Microsoft (MSA) pueden registrar aplicaciones.

El punto de conexión de Azure AD v2.0 no es compatible con aplicaciones del Proveedor de soluciones en la nube (CSP)

Las aplicaciones del Proveedor soluciones en la nube (CSP) deben adquirir tokens de los puntos de conexión de Azure AD (v1) para llamar correctamente a Microsoft Graph en sus clientes gestionados por el asociado. Actualmente, no se admite adquirir un token a través del punto de conexión más reciente de Azure AD v2.0.

En determinadas circunstancias, es posible que el consentimiento previo para las aplicaciones del proveedor de soluciones en la nube (CSP) no funcione para algunos de los inquilinos del cliente.

  • Para las aplicaciones que usan permisos delegados, al usar la aplicación por primera vez con un nuevo inquilino de cliente puede recibir este error después del inicio de sesión: AADSTS50000: There was an error issuing a token.
  • Para las aplicaciones que usan permisos de aplicación, su aplicación puede adquirir un token, pero obtiene inesperadamente un mensaje de acceso denegado al llamar a Microsoft Graph.

Estamos trabajando en solucionar este problema tan pronto como sea posible para que el consentimiento previo funcione en todos los inquilinos de cliente.

Mientras tanto, para desbloquear el desarrollo y las pruebas, puede usar la siguiente solución alternativa.

Nota

Esta no es una solución permanente y solo está prevista para desbloquear el desarrollo. Esta solución alternativa no será necesaria una vez se haya corregido el problema. No es necesario deshacer la solución una vez que se tenga la corrección.

  1. Abra una sesión de PowerShell de Azure AD v2 y conéctese al inquilino customer. Para ello, escriba sus credenciales de administrador en la ventana de inicio de sesión. Puede descargar e instalar PowerShell V2 para Azure AD desde aquí.

    Connect-AzureAd -TenantId {customerTenantIdOrDomainName}
    
  2. Cree la entidad de servicio de Microsoft Graph.

    New-AzureADServicePrincipal -AppId 00000003-0000-0000-c000-000000000000
    

Bookings

Error al consultar bookingBusinesses

La obtención de la lista de bookingBusinesses genera el siguiente código de error si una organización tiene varias empresas de Bookings y la cuenta que realiza la solicitud no es de administrador:

{
  "error": {
    "code": "ErrorExceededFindCountLimit",
    "message":
      "The GetBookingMailboxes request returned too many results. Please specify a query to limit the results.",
  }
}

Como solución alternativa, puede limitar el conjunto de empresas devuelto por la solicitud mediante la inclusión de un parámetro query, por ejemplo:

GET https://graph.microsoft.com/beta/bookingBusinesses?query=Fabrikam

Calendar

Error al obtener acceso a un calendario compartido

Al intentar tener acceso a los eventos de un calendario que se ha compartido por otro usuario mediante la siguiente operación:

GET /users/{id}/calendars/{id}/events

Puede obtener HTTP 500 con el código de error ErrorInternalServerTransientError. El error se produce porque:

  • Tradicionalmente existen dos maneras de implementar el uso compartido del calendario, que, con fines de diferenciación, se les hace referencia como el enfoque "antiguo" y el enfoque "nuevo".
  • El enfoque nuevo está disponible en estos momentos para los calendarios de uso compartido con permisos de vista o edición, pero no con permisos delegados.
  • Puede usar la API de REST de calendario para ver o editar los calendarios compartidos, solo si los calendarios se han compartido según el enfoque nuevo.
  • No puede usar la API de REST de calendario para ver o editar dichos calendarios (o sus eventos) si los calendarios se han compartido según el enfoque antiguo.

Si un calendario se ha compartido con permisos de vista o edición pero con el enfoque antiguo, ahora puede trabajar en el error y actualizar manualmente el calendario de uso compartido para que use el enfoque nuevo. Con el tiempo, Outlook actualizará automáticamente todos los calendarios compartidos para que usen el nuevo enfoque, incluidos los calendarios compartidos con permisos de delegado.

Para actualizar manualmente un calendario compartido para que use el enfoque nuevo, siga estos pasos:

  1. El destinatario quita el calendario que se ha compartido anteriormente con ellos.
  2. El propietario del calendario vuelve a compartirlo en Outlook en la web, Outlook en iOS o Outlook en Android.
  3. El destinatario vuelve a aceptar el calendario compartido con Outlook en la web. (Será posible usar otros clientes de Outlook pronto).
  4. El destinatario comprueba que el calendario se ha vuelto a compartir correctamente con el nuevo enfoque al ver el calendario compartido en Outlook en iOS o en Outlook en Android.

Un calendario compartido con usted mediante el nuevo enfoque aparece como cualquier otro calendario de su buzón. Puede usar la API de REST de calendario para ver o editar eventos en el calendario compartido, como si fuera su propio calendario. Por ejemplo:

GET /me/calendars/{id}/events

Compatibilidad parcial para agregar y acceder a calendarios basados en ICS en el buzón del usuario

Actualmente, los calendarios basados en una suscripción de calendario de Internet (ICS) solo se admiten parcialmente:

  • Puede agregar un calendario basado en ICS a un buzón de usuario a través de la interfaz de usuario, pero no a través de la API de Microsoft Graph.
  • Enumerar los calendarios del usuario le permite obtener las propiedades name, color e id de cada calendario en el grupo de calendarios predeterminado del usuario, o en un grupo de calendarios especificado, incluidos los calendarios basados en ICS. No puede almacenar ni acceder a la dirección URL de una ICS en el recurso del calendario.
  • También puede enumerar los eventos de un calendario basado en ICS.

Error al adjuntar archivos grandes a eventos

Una aplicación con permisos delegados devuelve HTTP 403 Forbidden al intentar adjuntar archivos de gran tamaño a un mensaje o evento de Outlook que se encuentra en un buzón compartido o delegado. Con los permisos delegados, createUploadSession solo funcionará si el mensaje o evento está en el buzón del usuario que ha iniciado sesión.

La propiedad onlineMeetingUrl no es compatible con Microsoft Teams

Actualmente, la propiedad onlineMeetingUrl de un evento de una reunión de Skype indicaría la dirección URL de la reunión en línea. Pero esa propiedad para un evento de reunión de Microsoft Teams se establece a null.

La versión beta ofrece una solución alternativa, donde puede usar la propiedad onlineMeetingProvider de un evento para comprobar que el proveedor es Microsoft Teams. A través de la propiedad onlineMeeting del event, puede obtener acceso a joinUrl.

Notificaciones de cambios

Las notificaciones de actualización se producen en la creación y eliminación temporal de usuarios

Las suscripciones a los cambios de user con changeType establecido en updated también recibirán las notificaciones de changeType: updated en la creación y eliminación de usuarios.

Las notificaciones de actualización se producen en la creación y eliminación temporal de grupos

Las suscripciones a los cambios para group con changeType establecido en updated también recibirán las notificaciones de changeType: updated en la creación y eliminación de grupos.

Comunicaciones en la nube

El menú Ver detalles de la reunión no está disponible en el cliente de Microsoft Teams

El cliente de Microsoft Teams no muestra el menú Ver detalles de la reunión para las reuniones del canal creadas mediante la API de comunicaciones en la nube.

No se puede asignar un rol de moderador a participantes que no sean de Azure AD

Actualmente no se admite la asignación del rol presenter o coorganizer a los usuarios que no están registrados en Azure Active Directory. El método create onlineMeeting aceptará estas solicitudes, pero el rol no se aplicará cuando el participante se una a la reunión en línea. El método create onlineMeeting rechazará la solicitud y devolverá un error 400 Bad Request.

Contactos

La operación GET no devuelve la carpeta de contactos predeterminada

En la versión /v1.0, GET /me/contactFolders no incluye la carpeta de contactos predeterminada del usuario.

Estará disponible una corrección. Mientras tanto, puede usar la siguiente consulta enumerar contactos y la propiedad parentFolderId como una solución alternativa para obtener el identificador de la carpeta de contactos predeterminada:

GET https://graph.microsoft.com/v1.0/me/contacts?$top=1&$select=parentFolderId

En esta solicitud:

  1. /me/contacts?$top=1 obtiene las propiedades de un elemento contact de la carpeta de contactos predeterminada.
  2. Al anexar &$select=parentFolderId se devuelve solo la propiedad parentFolderId del contacto, que es el identificador de la carpeta de contactos predeterminada.

El acceso a los contactos a través de una carpeta de contactos no funciona en la versión beta

En la versión /beta, un problema impide actualmente acceder a un contacto especificando su carpeta primaria en la dirección de solicitud REST, tal y como se muestra en los dos escenarios siguientes.

Acceso a un contacto desde la contactFolder de nivel superior de un usuario:

GET /me/contactfolders/{id}/contacts/{id}
GET /users/{id | userPrincipalName}/contactfolders/{id}/contacts/{id}

Acceso a un contacto contenido en una carpeta secundaria de una contactFolder:

GET /me/contactFolders/{id}/childFolders/{id}/.../contacts/{id}
GET /users/{id | userPrincipalName}/contactFolders/{id}/childFolders/{id}/contacts/{id}

En el ejemplo anterior se muestra un nivel de anidamiento, pero un contacto puede estar ubicado en un elemento secundario de un elemento secundario y así sucesivamente.

Como alternativa, puede simplemente obtener el contacto especificando su identificador, tal y como se muestra, ya que GET /contacts en la versión /beta se aplica a todos los contactos del buzón de correo del usuario:

GET /me/contacts/{id}
GET /users/{id | userPrincipalName}/contacts/{id}

Consulta delta

El contexto de OData se devolvió incorrectamente

El contexto OData a veces se devuelve de forma incorrecta cuando se realiza el seguimiento de cambios en las relaciones.

Las extensiones de esquema no se devuelven con select

Las extensiones de esquema (heredadas) no se devuelven con $select instrucción, pero se devuelven sin $select.

Los clientes no pueden realizar un seguimiento de los cambios para abrir las extensiones

Los clientes no pueden controlar los cambios para abrir las extensiones o las extensiones de esquema registradas.

Dispositivos y aplicaciones | Actualizaciones de dispositivo (actualizaciones de Windows)

No se admite el acceso y la actualización de audiencias de implementación

Actualmente no se admite el acceso y la actualización de audiencias de implementación en los recursos de implementación creados a través de Intune.

Extensiones

No se admite el seguimiento de cambios

El seguimiento de cambios (consulta delta) aún no se admite para las propiedades de extensiones abiertas o de esquema.

No se puede crear un recurso y abrir la extensión al mismo tiempo

No se puede especificar una extensión abierta a la vez que se crea una instancia de administrativeUnit, device, group, organization o user. Debe crear primero la instancia y después especificar los datos de extensión abierta en una solicitud POST posterior en esa instancia.

No se puede crear una instancia de recurso y agregar datos de extensión de esquema al mismo tiempo

No se puede especificar una extensión de esquema en la misma operación de creación de una instancia de contacto, evento, mensaje o publicación. Debe crear primero la instancia de recurso y, a continuación, aplicar una revisión PATCH a esa instancia para agregar una extensión de esquema y datos personalizados.

Límite de 100 valores de propiedad de extensión de esquema permitido por cada instancia del recurso

En la actualidad, los recursos de directorio, como dispositivos, grupos y usuarios, limitan a 100 el número total de valores de propiedad de extensión de esquema que pueden establecerse en un recurso.

Debe especificarse el propietario al actualizar una definición schemaExtension con el Microsoft Graph Explorer.

Al usar PATCH para actualizar un schemaExtension con el Explorador de Graph, debe especificar la propiedad propietario y establecerla en su valor appId actual (que tendrá que ser un appId de una aplicación de la que sea propietario). Este también es el caso de cualquier aplicación cliente cuyo appId no es el mismo que el propietario.

No todos los tipos de entidad admiten el filtrado por propiedades de extensión de esquema

Los tipos de entidad de Outlook no admiten el filtrado por propiedades de extensión de esquema (con la expresión $filter): contacto, evento, mensaje o publicación.

Archivos (OneDrive)

El acceso a la unidad de un usuario antes de que el usuario acceda a ella genera un error

La primera vez que accede a una unidad personal del usuario a través de Microsoft Graph antes de que el usuario acceda a su sitio personal a través del explorador, se produce una respuesta 401.

Grupos

Microsoft Graph expone dos permisos (Group.Read.All y Group.ReadWrite.All) para obtener acceso a las API de grupos y Microsoft Teams. Un administrador debe aceptar estos permisos. Tenemos pensado agregar en el futuro nuevos permisos para los grupos y equipos a los que los usuarios pueden dar su consentimiento.

Algunas API de grupo no admiten permisos delegados o solo de aplicación

Solo la API para la administración y gestión del grupo principal admite el acceso con permisos delegados o solo de aplicación. El resto de características de la API de grupo solo admiten permisos delegados.

Ejemplos de funciones de grupo que admiten permisos delegados y de aplicación:

  • Crear y eliminar grupos
  • Obtener y actualizar las propiedades de grupos relativas a la administración de grupos.
  • Grupo configuración del directorio, tipo y sincronización
  • Propietarios de grupo y pertenencia
  • Obtener las conversaciones de grupo y los hilos

Ejemplos de funciones de grupo que solo admiten permisos delegados:

  • Eventos del grupo, foto
  • Remitentes externos, remitentes aceptados o rechazados, suscripciones a grupos
  • Favoritos del usuario y conteo no visto

Microsoft Graph omite las directivas de grupo configuradas a través de Outlook en la Web

Use Microsoft Graph para crear y nombrar un grupo de Microsoft 365 omite cualquier directiva de grupo de Microsoft 365 que esté configurada a través de Outlook en la Web.

Solo se puede tener acceso a la propiedad allowExternalSenders en grupos unificados

Existe en la actualidad un problema que evita el establecimiento de la propiedad allowExternalSenders de un grupo en operaciones POST o PATCH, en /v1.0 y /beta.

Solo se puede tener acceso a la propiedad allowExternalSenders en grupos unificados. El acceso a esta propiedad en grupos de seguridad, incluidas las operaciones GET, producirá un error.

Al quitar el propietario de un grupo, también se quita el usuario como miembro del grupo.

Al llamar a DELETE /groups/{id}/owners para un grupo asociado a un equipo, el usuario también se quita de la lista /groups/{id}/members. Para solucionar este problema, quite el usuario de los propietarios y miembros, espere 10 segundos y vuelva a agregarlo a los miembros.

Identidad y acceso

La API conditionalAccessPolicy requiere actualmente el consentimiento del permiso Policy.Read.All para llamar a los métodos POST y PATCH. En el futuro, el permiso Policy.ReadWrite.ConditionalAccess le permitirá leer las directivas del directorio.

La API claimsMappingPolicy puede requerir el consentimiento de los permisos Policy.Read.All y Policy.ReadWrite.ConditionalAccess para los métodos LIST /policies/claimsMappingPolicies y GET /policies/claimsMappingPolicies/{id} como a continuación:

  • Si no hay objetos claimsMappingPolicy disponibles para recuperar en una operación LIST, cualquier permiso es suficiente para llamar a este método.
  • Si hay objetos claimsMappingPolicy para recuperar, su aplicación debe conceder ambos permisos. Si no es así, se devuelve un error 403 Forbidden.

En el futuro, cualquiera de los dos permisos será suficiente para llamar a ambos métodos.

Una aplicación con permisos de aplicación no puede actualizar los dispositivos basados en Linux

Cuando una aplicación con permisos de aplicación intenta actualizar las propiedades del objeto de dispositivo donde la propiedad operationSystem es linux, aparte de la propiedad extensionAttributes, la API Update device devuelve un código de error 400 Bad request con el mensaje de error "Las propiedades distintas de ExtendedAttribute1..15 solo se pueden modificar en dispositivos Windows". Use permisos delegados para actualizar las propiedades de los dispositivos basados en Linux.

Procesamiento por lotes JSON

No se admiten lotes anidados

Las solicitudes por lotes JSON no deben contener ninguna solicitud de proceso por lotes anidados.

Todas las solicitudes individuales deben ser sincrónicas

Todas las solicitudes de contenido en una solicitud por lotes se deben ejecutar de forma sincrónica. Si está presente, se omitirá la preferencia respond-async.

No se admite el procesamiento transaccional de solicitudes

Microsoft Graph no admite actualmente el procesamiento transaccional de solicitudes individuales. Se omitirá la propiedad atomicityGroup en solicitudes individuales.

Los URI deben ser relativos

Especifique siempre los identificadores URI relativos en solicitudes por lotes. Microsoft Graph crea estas direcciones URL absolutas mediante el punto de conexión de la versión que está incluido en la URL por lotes.

El tamaño del lote es limitado

Las solicitudes por lotes JSON están limitadas actualmente a veinte solicitudes individuales.

  • Según la parte de API de la solicitud por lotes, los servicios subyacentes imponen su propia limitación, que afecta a las aplicaciones que usa Microsoft Graph para acceder a ellas.
  • Las solicitudes de un lote se evalúan individualmente en función de la limitación y, si alguna solicitud la supera, se produce un error con un estado de 429.

Para obtener más información, visite Limitación y procesamiento por lotes.

Las dependencias de solicitud son limitadas

Las solicitudes individuales pueden depender de otras solicitudes individuales. Actualmente, las solicitudes solo pueden depender de una sola solicitud y deben seguir uno de estos tres modelos:

  • En paralelo: ninguna solicitud individual indica una dependencia en el dependsOn de la propiedad.
  • En serie: todas las solicitudes individuales dependen de la anterior solicitud individual.
  • Igual: todas las solicitudes individuales que indican una dependencia en el dependsOn de la propiedad, indican la misma dependencia. Nota: las solicitudes realizadas con este patrón se ejecutarán secuencialmente.

A medida que madure el procesamiento por lotes JSON, se irán quitando estas limitaciones.

Correo (Outlook)

Puede producirse un error al adjuntar archivos grandes a mensajes con permisos delegados

Una aplicación con permisos delegados devuelve HTTP 403 Forbidden al intentar adjuntar archivos de gran tamaño a un mensaje o evento de Outlook que se encuentra en un buzón compartido o delegado. Con los permisos delegados, createUploadSession solo funcionará si el mensaje o evento está en el buzón del usuario que ha iniciado sesión.

El parámetro de comentario para crear un borrador no forma parte del cuerpo del mensaje

El parámetro comentario para crear una respuesta o enviar un borrador (createReply, createReplyAll, createForward) no se convierte en parte del cuerpo del borrador del mensaje resultante.

Los mensajes de GET devuelven chats en Microsoft Teams

En los puntos de conexión v1.0 y beta, la respuesta a GET /users/id/messages incluye los chats de Microsoft Teams del usuario efectuados fuera del ámbito de un equipo o un canal. Estos mensajes de chat tienen "Mensajería instantánea" como el asunto.

Informes

Errores de comprobación de licencia en los informes de actividad de Azure AD

Cuando tenga una licencia válida de Azure AD Premium y llame a las API de directoryAudit, inicio de sesión o de aprovisionamiento de informes de actividad de Azure AD, es posible que se encuentre con un mensaje de error similar al siguiente:

{
    "error": {
        "code": "Authentication_RequestFromNonPremiumTenantOrB2CTenant",
        "message": "Neither tenant is B2C or tenant doesn't have premium license",
        "innerError": {
            "date": "2021-09-02T17:15:30",
            "request-id": "73badd94-c0ca-4b09-a3e6-20c1f5f9a307",
            "client-request-id": "73badd94-c0ca-4b09-a3e6-20c1f5f9a307"
        }
    }
}

Este error también puede producirse al recuperar la propiedad signInActivity del recurso de usuario; por ejemplo, https://graph.microsoft.com/beta/users?$select=signInActivity.

Este error se debe a fallas intermitentes en la comprobación de licencias, que estamos trabajando para corregirlas. Como solución temporal, agregue el permiso Directory.Read.All. Esta solución temporal no será necesaria cuando se resuelva el problema.

Trabajo en equipo (Microsoft Teams)

No se pueden filtrar los miembros del equipo por roles

Es posible que los filtros de consulta de roles junto con otros filtros GET /teams/team-id/members?$filter=roles/any(r:r eq 'owner') and displayName eq 'dummy' no funcionen. Es posible que el servidor responda con BAD REQUEST.

Las solicitudes para filtrar a los miembros del equipo por rol requieren un parámetro

Todas las solicitudes para filtrar a los miembros del equipo por roles esperan un parámetro skipToken o un paramater superior en la solicitud, pero no ambos. Si ambos parámetros se aprueban en la solicitud, se omitirá el parámetro superior.

Es posible que falten algunas propiedades para los miembros del chat en la respuesta a una solicitud GET

En determinados casos, la propiedad tenantId / email / displayName para los miembros individuales de un chat puede no rellenarse en una solicitud de GET /chats/chat-id/members o GET /chats/chat-id/members/membership-id.

Faltan propiedades en la lista de equipos a los que se ha unido un usuario

La llamada API para me/joinedTeams devuelve solo las propiedades id, displayName y descripción de un equipo. Para obtener todas las propiedades, use la operación Obtener equipo.

Las siguientes llamadas a la API no admiten la instalación de aplicaciones que requieran permisos de consentimiento específicos de recursos.

No se puede acceder a un canal compartido entre inquilinos cuando la dirección URL de la solicitud contiene inquilinos/{cross-tenant-id}

Las llamadas a la API para teams/{team-id}/incomingChannels y teams/{team-id}/allChannels devuelven la propiedad @odata.id que puede utilizar para acceder al canal y ejecutar otras operaciones en el objeto del canal. Si llama a la dirección URL devuelta por la propiedad @odata.id, la solicitud producirá el siguiente error cuando intente acceder al canal compartido entre inquilinos:

GET /tenants/{tenant-id}/teams/{team-id}/channels/{channel-id}
{
    "error": {
        "code": "BadRequest",
        "message": "TenantId in the optional tenants/{tenantId} segment should match the tenantId(tid) in the token used to call Graph.",
        "innerError": {
            "date": "2022-03-08T07:33:50",
            "request-id": "dff19596-b5b2-421d-97d3-8d4b023263f3",
            "client-request-id": "32ee2cbd-27f8-2441-e3be-477dbe0cedfa"
        }
    }
}

Para solucionar este problema, quite el elemento /tenants/{tenant-id} de la dirección URL antes de llamar a la API para acceder al canal compartido entre inquilinos.

Usuarios

Codificar símbolos de número (#) en userPrincipalName

El userPrincipalName de los usuarios invitados agregados a través de Azure AD B2B a menudo contiene el carácter de número (#). Si se usa $filter en un userPrincipalName que contiene el símbolo #, por ejemplo, GET /users?$filter=userPrincipalName eq 'AdeleV_contoso.com#EXT#@fabrikam.com', se devuelve una respuesta de error HTTP 400 Bad request. Para filtrar por userPrincipalName, codifique el carácter # en su equivalente UTF-8 (%23), por ejemplo, GET /users?$filter=userPrincipalName eq 'AdeleV_contoso.com%23EXT%23@fabrikam.com'.

El acceso a los recursos de usuario se retrasa después de la creación

Los usuarios pueden crearse inmediatamente a través de un POST en la entidad del usuario. Una licencia de Microsoft 365 primero se debe asignar a un usuario, con el fin de obtener acceso a los servicios de Microsoft 365. Incluso entonces, debido a la naturaleza distribuida del servicio, puede llevar 15 minutos que los archivos, mensajes y entidades de eventos estén disponibles para su uso para este usuario, a través de la API de Microsoft Graph. Durante este tiempo, las aplicaciones recibirán una respuesta de error HTTP 404 Not Found.

El acceso a la foto de perfil de un usuario es limitado

  1. Leer y actualizar la foto de perfil de un usuario solo es posible si el usuario tiene un buzón. Si no se lee o actualiza una foto, en este caso, se produce el siguiente error:

    {
      "error": {
        "code": "ErrorNonExistentMailbox",
        "message": "The SMTP address has no mailbox associated with it."
      }
    }
    
  2. Las fotos que se pueden haber almacenado previamente con la propiedad thumbnailPhoto, mediante Azure AD Graph API (en desuso) o a través de la sincronización de AD Connect, ya no son accesibles a través de la propiedad de foto de Microsoft Graph del recurso de usuario.

  3. La administración de fotos de los usuarios a través del recurso profilePhoto de la API de Microsoft Graph no se admite actualmente en los inquilinos de Azure AD B2C.

Revocar sesiones de inicio de sesión devuelve un código HTTP incorrecto

El usuario: revokeSignInSessions API debe devolver una 204 No content respuesta para las revocaciones correctas y un código de error http (4xx u 5xx) si se produce algún error con la solicitud. Sin embargo, debido a un problema en el servicio, esta API devuelve un 200 OK y un parámetro booleano que siempre es true. Hasta que esto se solucione, puede considerar el código de retorno 2xx como un éxito para esta API.

Se devuelven objetos incompletos al usar la solicitud getByIds

Pedir objetos con Obtener objetos de directorio de una lista de identificadores debería devolver objetos completos. Pero los objetos user que se encuentran actualmente en el punto de conexión v1.0 se devuelven con un conjunto limitado de propiedades. Como solución alternativa temporal, al usar la operación en combinación con la opción de consulta $select, se devolverán objetos user más completos. Este comportamiento no coincide con las especificaciones de OData. Ya que es posible que este comportamiento se actualice en el futuro, utilice esta solución alternativa solo cuando proporcione $select= con todas las propiedades que le interesen y solo si se aceptan futuros cambios importantes en esta solución alternativa.

La propiedad showInAddressList no está sincronizada con Microsoft Exchange

Al consultar a los usuarios a través de Microsoft Graph, es posible que la propiedad showInAddressList no indique el mismo estado que se muestra en Microsoft Exchange. Se recomienda administrar esta funcionalidad directamente con Microsoft Exchange a través del Centro de administración de Microsoft 365 y no usar esta propiedad en Microsoft Graph.

Parámetros de consulta

Se aplican algunas limitaciones a los parámetros de consulta

Se aplican las siguientes limitaciones a los parámetros de consulta:

  • No se admiten varios espacios de nombres.
  • Las solicitudes GET en $ref y la conversión no se admiten en usuarios, grupos, dispositivos, entidades de seguridad y aplicaciones.
  • @odata.bind no es compatible. Esto significa que no se puede configurar correctamente la propiedad de navegación acceptedSenders o rejectedSenders en un grupo.
  • @odata.id no está presente en las navegaciones de no contención (como los mensajes) cuando se usan metadatos mínimos
  • $expand:
    • Devuelve un máximo de 20 objetos.
    • No es compatible con @odata.nextLink
    • No es compatible más de un nivel de expansión.
    • No es compatible con parámetros adicionales ($filter, $select)
  • $filter:
    • El punto de conexión /attachments no admite filtros. Si están presentes, se ignora el parámetro $filter.
    • No se admite el filtrado de cargas de trabajo cruzadas.
  • $search:
    • La búsqueda de texto completo solo está disponible para un subconjunto de entidades tales como mensajes.
    • No se admite la búsqueda de cargas de trabajo cruzadas.
    • No se admite la búsqueda en espacios empresariales Azure AD B2C.
  • $count:
    • No se admite en espacios empresariales de Azure AD B2C.
    • Cuando se usa la cadena de consulta $count=true al realizar consultas en recursos de directorio, la propiedad @odata.count solo estará presente en la primera página de los datos paginados.
  • Los parámetros de consulta especificados en una solicitud pueden producir un error en modo silencioso. Esto puede suceder con parámetros de consulta no admitidos, así como con combinaciones no compatibles de parámetros de consulta.

Esta función solo está disponible en las API de REST de Office 365 o las API de Graph de Azure AD (en desuso)

Algunas funciones todavía no están disponibles en Microsoft Graph. Si no ve la funcionalidad que busca, puede usar las API de REST de Office 365 específicas del punto de conexión. Para obtener Azure AD Graph, consulte Migrar aplicaciones de Azure Active Directory (Azure AD) Graph a Microsoft Graph.