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.
El consentimiento previo de las aplicaciones de CSP no funciona en algunos inquilinos de cliente
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.
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}
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:
- El destinatario quita el calendario que se ha compartido anteriormente con ellos.
- El propietario del calendario vuelve a compartirlo en Outlook en la web, Outlook en iOS o Outlook en Android.
- El destinatario vuelve a aceptar el calendario compartido con Outlook en la web. (Será posible usar otros clientes de Outlook pronto).
- 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:
/me/contacts?$top=1
obtiene las propiedades de un elemento contact de la carpeta de contactos predeterminada.- 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.
- Enumerar los miembros de la audiencia de implementación y enumerar las exclusiones de la audiencia de implementación devolverá
404 Not Found
. - La actualización de los miembros y exclusiones de la audiencia de implementación o la actualización por Id. devolverá
202 Accepted
pero la audiencia no se actualizará.
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
Los administradores deben dar su consentimiento a los permisos para grupos y Microsoft Teams
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 directiva de acceso condicional requiere consentimiento del permiso
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 directiva de asignación de notificaciones puede requerir el consentimiento de los permisos
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.
No se admite la instalación de aplicaciones que requieran permisos de consentimiento específicos de recursos
Las siguientes llamadas a la API no admiten la instalación de aplicaciones que requieran permisos de consentimiento específicos de recursos.
- Agregar la aplicación al equipo
- Actualizar aplicaciones instaladas en el equipo
- Agregar la aplicación al chat
- Actualizar aplicaciones instaladas en el chat
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
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." } }
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.
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.
- El punto de conexión
$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.
Comentarios
Enviar y ver comentarios de