Problemas conhecidos com o Microsoft Graph
Este artigo descreve os problemas conhecidos com o Microsoft Graph.
Para relatar um problema conhecido, confira a página Suporte Microsoft Graph.
Para saber mais sobre as atualizações mais recentes da API do Microsoft Graph, confira o changelog do Microsoft Graph.
Aplicativos
Algumas limitações se aplicam ao aplicativo e aos recursos servicePrincipal
As alterações para os recursos application e servicePrincipal estão atualmente em desenvolvimento. A seguir, encontra-se um resumo das limitações atuais e os recursos da API em desenvolvimento.
Limitações atuais:
- Algumas propriedades do aplicativo (como appRoles e addIns) não estarão disponíveis até que todas as alterações sejam concluídas.
- Somente aplicativos multilocatários podem ser registrados.
- Atualizar aplicativos é restrito aos aplicativos registrados após a atualização inicial beta.
- Usuários do Azure Active Directory podem registrar aplicativos e adicionar proprietários adicionais.
- Suporte para protocolos OpenID Connect e OAuth.
- Atribuições de política para uma falha de aplicativo.
- Falha em operações em ownedObjects que exigem appId (por exemplo, users/{id|userPrincipalName}/ownedObjects/{id}/...).
Em desenvolvimento:
- Capacidade de registrar aplicativos de um único locatário.
- Atualizações para o servicePrincipal.
- Migração de aplicativos Azure AD existentes para um modelo atualizado.
- Suporte para appRoles, clientes pré-autorizados, reivindicações opcionais, reivindicações de associação de grupo e identidade visual.
- Os usuários de conta Microsoft (MSA) podem registrar aplicativos.
O ponto de extremidade do Azure AD v2.0 não é compatível com aplicativos CSP
Aplicativos de provedor de solução de nuvem (CSP) devem adquirir tokens de pontos de extremidade do Azure AD (v1) para chamar a Microsoft Graph com êxito em seus clientes gerenciados por parceiros. Atualmente, não há suporte para aquisição de um token pelo ponto de extremidade Azure AD v 2.0 mais recente.
A pré-autorização para aplicativos CSP não funciona em alguns locatários do cliente
Sob certas circunstâncias, o pré-consentimento para aplicativos de provedor de soluções na nuvem (CSP) pode não funcionar para alguns de seus locatários de clientes.
- Para aplicativos que usam permissões delegadas, ao usar o aplicativo pela primeira vez com um novo locatário do cliente, você poderá receber esse erro após o logon:
AADSTS50000: There was an error issuing a token. - Para aplicativos que usam permissões de aplicativos, seu aplicativo pode adquirir um token, mas inesperadamente receber uma mensagem de acesso negado ao chamar o Microsoft Graph.
Estamos trabalhando para corrigir esse problema o mais rápido possível, de modo que a pré-autorização funcionará para todos os seus locatários de clientes.
Enquanto isso, para desbloquear o desenvolvimento e os testes, você pode usar a seguinte solução alternativa.
Observação
Esta não é uma solução permanente e destina-se apenas a desbloquear o desenvolvimento. Esta solução não será necessária depois que o problema for corrigido. Esta solução não precisa ser desfeita após a correção.
Abra uma sessão do Azure AD v2 PowerShell e conecte-se ao locatário do parceiro
customerdigitando suas credenciais de administrador na janela de entrada. Você pode baixar e instalar o Azure AD PowerShell V2 aqui.Connect-AzureAd -TenantId {customerTenantIdOrDomainName}Crie o servicePrincipal do Microsoft Graph.
New-AzureADServicePrincipal -AppId 00000003-0000-0000-c000-000000000000
Reservas
Erro ao consultar bookingBusinesses
A obtenção da lista de bookingBusinesses falha com o seguinte código de erro quando a organização tem várias empresas de Reservas e a conta que está fazendo a solicitação não é um administrador:
{
"error": {
"code": "ErrorExceededFindCountLimit",
"message":
"The GetBookingMailboxes request returned too many results. Please specify a query to limit the results.",
}
}
Como alternativa, você pode limitar o conjunto de empresas retornadas pela solicitação, incluindo um parâmetro query, por exemplo:
GET https://graph.microsoft.com/beta/bookingBusinesses?query=Fabrikam
Calendário
Erro ao acessar um calendário compartilhado
Ao tentar acessar eventos em um calendário compartilhado por outro usuário usando a operação a seguir:
GET /users/{id}/calendars/{id}/events
Você pode receber HTTP 500 com o código de erro ErrorInternalServerTransientError. O erro ocorre porque:
- Historicamente, há duas maneiras de compartilhar o calendário, que são chamadas de "antiga" e "nova" abordagens, para fins de diferenciá-las.
- A nova abordagem está disponível atualmente para compartilhamento de calendários, com permissões de exibição ou edição, mas não com permissões de representante.
- Você pode usar a API REST de calendário para exibir ou editar calendários compartilhados somente quando os calendários são compartilhados de acordo com a nova abordagem.
- Não é possível usar a API REST de calendário para exibir ou editar esses calendários ou os respectivos eventos quando eles são compartilhados de acordo com a antiga abordagem.
Se você compartilhar o calendário com permissões de exibição ou edição usando a abordagem antiga, poderá resolver o problema e atualizar manualmente o compartilhamento do calendário para usar a nova abordagem. Com o tempo, o Outlook atualizará automaticamente todos os calendários compartilhados para usar a nova abordagem, incluindo calendários compartilhados com permissões delegadas.
Para atualizar manualmente um calendário compartilhado e usar a nova abordagem, faça os seguintes procedimentos:
- O destinatário remove o calendário previamente compartilhado com ele.
- O proprietário compartilha novamente o calendário no Outlook na Web, no Outlook para iOS ou no Outlook para Android.
- O destinatário aceita novamente o calendário compartilhado usando o Outlook na Web. Em breve você poderá usar outros clientes do Outlook.
- O destinatário verifica se o calendário foi compartilhado novamente com êxito por meio da nova abordagem, com permissão para exibi-lo no Outlook para iOS ou no Outlook para Android.
Um calendário compartilhado com você na nova abordagem é exibido como qualquer outro na sua caixa de correio. Você pode usar a API REST de calendário para visualizar e editar eventos no calendário compartilhado, como se fosse seu próprio calendário. Como exemplo:
GET /me/calendars/{id}/events
Suporte parcial para adicionar e acessar calendários baseados em ICS na caixa de correio do usuário
Atualmente, calendários com base em uma Inscrição em Calendário da Internet (ICS) têm apenas suporte parcial:
- Você pode adicionar um calendário baseado em ICS para uma caixa de correio do usuário por meio da interface do usuário, mas não através da API do Microsoft Graph.
- Listar os calendários do usuário permite que você obtenha as propriedades name, color e id de cada calendar no grupo de calendários padrão do usuário ou em um grupo de calendários especificado, inclusive todos os calendários com base em ICS. Não é possível armazenar ou acessar a URL da ICS no recurso de calendário.
- Você também pode listar os eventos de um calendário baseado em ICS.
Erro ao anexar arquivos grandes a eventos
Um aplicativo com permissões delegadas retorna HTTP 403 Forbidden ao tentar anexar arquivos grandes a uma mensagem ou evento do Outlook que está em uma caixa de correio compartilhada ou delegada. Com as permissões delegadas, createUploadSession só é bem sucedida se a mensagem ou o evento estiver na caixa de correio do usuário conectado.
A propriedade onlineMeetingUrl não é compatível com o Microsoft Teams
Atualmente, a propriedade onlineMeetingUrl de um evento de reunião do Skype indica a URL da reunião online. No entanto, essa propriedade para um evento de reunião do Microsoft Teams está definida como nula.
A versão beta oferece uma solução alternativa, na qual é possível usar a propriedade onlineMeetingProvider de um evento para verificar se o provedor é o Microsoft Teams. Por meio da propriedade onlineMeeting do evento, você pode acessar o joinUrl.
Notificações de alteração
As notificações de atualização ocorrem na criação e exclusão reversível de usuários
As assinaturas de alterações para o usuário com o changeType definido como atualizado também receberão notificações de changeType: atualizado na criação do usuário e exclusão reversível do usuário.
As notificações de atualização ocorrem na criação e exclusão reversível de grupos
As assinaturas de alterações no grupo com o changeType definido como atualizado também receberão notificações changeType: atualizado na criação do grupo e exclusão reversível do grupo.
Comunicações na nuvem
O menu "Exibir detalhes da reunião" não está disponível no cliente Microsoft Teams
O cliente do Microsoft Teams não mostra o menu Exibir detalhes da Reunião para reuniões de canal criadas por meio da API de comunicações na nuvem.
A função de apresentador não pode ser atribuída a participantes que não são do Azure AD
Atribuir a função presenter ou coorganizer a usuários que não estão registrados no Azure Active Directory não tem suporte no momento. Essas solicitações serão aceitas pelo método create onlineMeeting, mas a função não será aplicada quando o participante ingressar na reunião online. O método create onlineMeeting rejeitará a solicitação e retornará um erro 400 Bad Request.
Contatos
A operação GET não retorna a pasta de contatos padrão
Na versão /v1.0, GET /me/contactFolders não inclui a pasta de contatos do usuário padrão.
Uma correção será disponibilizada. Enquanto isso, você pode usar a seguinte consulta list contacts e a propriedade parentFolderId como uma solução alternativa para obter a ID da pasta de contatos padrão:
GET https://graph.microsoft.com/v1.0/me/contacts?$top=1&$select=parentFolderId
Nesta solicitação:
/me/contacts?$top=1obtém as propriedades de um contato na pasta de contatos padrão.- A anexação de
&$select=parentFolderIdretorna apenas a propriedade parentFolderId do contato, que é a ID da pasta de contatos padrão.
Acessar contatos por meio de uma pasta de contatos não funciona na versão beta
Na versão /beta, um problema impede o acesso a um contato especificando sua pasta pai na URL de solicitação REST, conforme mostrado nos dois cenários a seguir.
Acessando um contato a partir de um contactFolder de nível superior de um usuário:
GET /me/contactfolders/{id}/contacts/{id}
GET /users/{id | userPrincipalName}/contactfolders/{id}/contacts/{id}
Acessando um contato contido em uma pasta filha de um contactFolder:
GET /me/contactFolders/{id}/childFolders/{id}/.../contacts/{id}
GET /users/{id | userPrincipalName}/contactFolders/{id}/childFolders/{id}/contacts/{id}
O exemplo anterior mostra um nível de aninhamento, mas um contato pode estar localizado em um filho de um filho e assim por diante.
Como alternativa, você pode simplesmente obter o contato, especificando sua identificação conforme mostrado, porque o GET /contacts na versão /beta se aplica a todos os contatos na caixa de correio do usuário:
GET /me/contacts/{id}
GET /users/{id | userPrincipalName}/contacts/{id}
Consulta delta
O contexto OData é retornado incorretamente
O contexto de OData às vezes é retornado incorretamente ao controlar alterações nas relações.
Extensões de esquema não são retornadas com select
As extensões de esquema (herdadas) não são retornadas com instrução $select, mas são retornadas sem $select.
Os clientes não podem controlar as alterações nas extensões abertas
Os clientes não podem controlar alterações em extensões abertas ou extensões de esquema.
Dispositivos e aplicativos | Atualizações do dispositivo (atualizações do Windows)
Não há suporte para acessar e atualizar audiências de implantação
Acessando e atualizando audiências de implantação em recursos de implantação criados por meio do Intune não são suportados atualmente.
- Listando membros da audiência de implantação e listando exclusões da audiência de implantação retornos
404 Not Found. - Atualizar membros da audiência de implantação e exclusões ou atualizar por ID retorna
202 Accepted, mas a audiência não é atualizada.
Extensões
Não há suporte para o controle de alterações
O controle de alterações (consulta delta) não tem suporte nas propriedades de extensão do esquema ou abrir.
Não é possível criar um recurso e uma extensão aberta ao mesmo tempo
Você não pode especificar uma extensão aberta ao mesmo tempo que cria uma instância de administrativeUnit, device, group, organization ou user. Primeiro você deve criar a instância e, depois, especificar os dados da extensão aberta em uma solicitação POST subsequente nessa instância.
Não é possível criar uma instância de recurso e adicionar dados de extensão de esquema ao mesmo tempo
Não é possível especificar uma extensão de esquema na mesma operação, como criar uma instância de contato, evento, mensagem ou postagem.
Você deve primeiro criar a instância de recurso e, em seguida, fazer um PATCH para essa instância para adicionar uma extensão de esquema e dados personalizados.
Limite de 100 valores de propriedade de extensão de esquema permitido por instância de recursos
Recursos de diretório, como dispositivo, grupo e usuário, atualmente limitam o número total de valores de propriedade de extensão de esquema que podem ser definidas em um recurso até 100.
O proprietário deve ser especificado ao atualizar uma definição de schemaExtension usando o Microsoft Graph Explorer
Ao usar PATCH para atualizar uma schemaExtension usando o Graph Explorer, você deve especificar a propriedade de proprietário e defini-la com seu valor appId atual (que será necessário ser uma appId de um aplicativo que você tenha). Esse também é o caso de qualquer aplicativo de cliente cuja appId não seja a mesma que a do proprietário.
Não há suporte a filtragem em propriedades de extensão de esquema em todos os tipos de entidade
Não há suporte a filtragem em propriedades de extensão de esquema (usando a expressão $filter) para tipos de entidade do Outlook – contato, evento, mensagem ou postagem.
Arquivos (OneDrive)
Acessar a unidade de um usuário antes que o usuário a acesse leva a um erro
O primeiro acesso a uma unidade pessoal de um usuário pelo Microsoft Graph antes que ele acesse o próprio site pessoal por um navegador resulta em uma resposta 401.
Grupos
Os administradores devem consentir com as permissões para grupos e Microsoft Teams
O Microsoft Graph expõe duas permissões (Group.Read.All e Group.ReadWrite.All) para acesso às APIs para grupos e Microsoft Teams. Essas permissões devem ser consentidas por um administrador. No futuro, planejamos adicionar novas permissões para grupos e equipes que os usuários podem consentir.
Algumas APIs de grupo não oferecem suporte para permissões delegadas ou somente de aplicativo
Somente a API para administração de grupo principal e gerenciamento suporta acesso usando permissões delegadas ou somente para aplicativos. Todos os outros recursos da API do grupo dão suporte apenas a permissões delegadas.
Exemplos de recursos de grupo que oferecem suporte a permissões delegadas e somente para aplicativos:
- Criar e excluir grupos
- Obter e atualizar propriedades do grupo pertencentes ao gerenciamento ou administração de grupo
- Definições do diretório, tipo e sincronização do grupo
- Membros e proprietários de grupo
- Como obter conversas de grupo e threads
Exemplos de recursos de grupo que oferecem suporte somente a permissões delegadas:
- Eventos de grupo, foto
- Remetentes externos, remetentes aceitos ou rejeitados e assinatura de grupo
- Favoritos do usuário e contagem de não vistos
O Microsoft Graph ignora as políticas de grupo configuradas por meio do Outlook na Web
Usar o Microsoft Graph para criar e nomear um grupo do Microsoft 365 ignora qualquer política de grupo do Microsoft 365 configurada por meio do Outlook na Web.
A propriedade allowExternalSenders somente pode ser acessada em grupos unificados
Atualmente, há um problema que impede a configuração da propriedade allowExternalSenders de um grupo em uma operação de POST ou PATCH no /v1.0 e no /beta.
A propriedade allowExternalSenders somente pode ser acessada em grupos unificados. Acessar essa propriedade em grupos de segurança, inclusive por meio de operações GET, resultará em um erro.
Remover um proprietário de grupo também remove o usuário como um membro do grupo
Quando DELETE /groups/{id}/owners é chamado para um grupo que está associado a uma equipe, o usuário também é removido da lista /groups/{id}/members. Para contornar isso, remova o usuário tanto dos proprietários quanto dos membros, espere 10 segundos e o adicione de volta aos membros.
Identidade e acesso
A política de acesso condicional requer consentimento para a permissão
Atualmente, a API conditionalAccessPolicy requer o consentimento da permissão Policy.Read.All para chamar os métodos POST e PATCH. No futuro, a permissão Policy.ReadWrite.ConditionalAccess permitirá que você leia as políticas do diretório.
A política de mapeamento de declarações pode exigir consentimento para permissões
A API claimsMappingPolicy pode exigir o consentimento das permissões Policy.Read.All e Policy.ReadWrite.ConditionalAccess para os métodos LIST /policies/claimsMappingPolicies e GET /policies/claimsMappingPolicies/{id}, da seguinte forma:
- Se nenhum objeto claimsMappingPolicy estiver disponível para ser recuperado em uma operação LIST, qualquer permissão será suficiente para chamar esse método.
- Se houver objetos claimsMappingPolicy a serem recuperados, seu aplicativo deverá consentir com ambas as permissões. Caso contrário, um erro
403 Forbiddenserá retornado.
No futuro, qualquer permissão será suficiente para chamar ambos os métodos.
Dispositivos baseados em Linux não podem ser atualizados por um aplicativo com permissões de aplicativo
Quando um aplicativo com permissões de aplicativo tenta atualizar qualquer propriedade do objeto do dispositivo em que a propriedade operationSystem é linux, além da propriedade extensionAttributes, a API de Atualização do Dispositivo retorna um código de erro 400 Bad request com a mensagem de erro "Propriedades diferentes de ExtendedAttribute1..15 podem ser modificadas apenas em dispositivos Windows.". Use as permissões delegadas para atualizar as propriedades dos dispositivos baseados em Linux.
Envio em lote JSON
Não há suporte para lotes aninhados.
Solicitações de lote JSON não devem conter quaisquer solicitações em lotes aninhados.
Todas as solicitações individuais devem ser síncronas
Todas as solicitações contidas em uma solicitação de lote devem ser executadas de forma síncrona. Se estiver presente, a preferência respond-async será ignorada.
Não há suporte para o processamento transacional de solicitações
No momento o Microsoft Graph não oferece suporte a processamento transacional de solicitações individuais. A propriedade atomicityGroup em solicitações individuais será ignorada.
URIs devem ser relativas
Sempre especifique URIs relativas em solicitações de lote. O Microsoft Graph então torna essas URLs absolutas usando o ponto de extremidade de versão incluído na URL de lote.
O tamanho do lote é limitado
No momento, as solicitações de lote JSON estão limitadas a 20 solicitações individuais.
- Dependendo da parte das APIs da solicitação em lote, os serviços subjacentes impõem suas próprias limitações que afetam os aplicativos que usam o Microsoft Graph para acessá-los.
- As solicitações em um lote são avaliadas individualmente em relação às limitações e, se qualquer solicitação exceder os limites, ela falhará com um status de 429.
Para obter mais detalhes, visite Limitação e envio em lote.
As dependências de solicitação são limitadas
Solicitações individuais podem depender de outras solicitações individuais. Atualmente, solicitações só podem depender de uma única outra solicitação e devem seguir um destes três padrões:
- Paralelo - nenhuma solicitação individual indica uma dependência na propriedade dependsOn.
- Serial – todas as solicitações individuais dependem da solicitação individual anterior.
- Mesmo - todas as solicitações individuais que indicam uma dependência na propriedade dependsOn declaram a mesma dependência. Observação: as solicitações feitas usando este padrão serão executadas sequencialmente.
Conforme o processamento em lotes JSON amadurece, essas limitações são removidas.
Email (Outlook)
A anexação de arquivos grandes a mensagens com permissões delegadas pode falhar
Um aplicativo com permissões delegadas retorna HTTP 403 Forbidden ao tentar anexar arquivos grandes a uma mensagem ou evento do Outlook que está em uma caixa de correio compartilhada ou delegada. Com as permissões delegadas, createUploadSession só é bem sucedida se a mensagem ou o evento estiver na caixa de correio do usuário conectado.
O parâmetro de comentário para criar um rascunho não se torna parte do corpo da mensagem
O parâmetro comment para criar uma resposta ou rascunho de encaminhamento (createReply, createReplyAll, createForward) não se torna parte do corpo do rascunho de mensagem resultante.
As mensagens GET retornam chats no Microsoft Teams
Em pontos de extremidade beta e v1.0, a resposta de GET /users/id/messages inclui chats do usuário no Microsoft Teams que ocorreu fora do escopo de uma equipe ou de um canal. Essas mensagens de chat tem "IM" como o assunto.
Relatórios
Erros de verificação de licença para os relatórios de atividades do Microsoft Azure AD
Quando você tiver uma licença válida do Azure AD Premium e chamar directoryAudit, signInou provisionar as APIs de relatórios de atividade do Azure AD, você ainda poderá encontrar uma mensagem de erro semelhante à seguinte:
{
"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"
}
}
}
Esse erro também pode ocorrer ao recuperar a propriedade signInActivity do recurso do usuário; por exemplo, https://graph.microsoft.com/beta/users?$select=signInActivity.
Esse erro ocorre por causa das falhas de verificação de licença intermitentes, que estamos trabalhando para corrigir. Como solução alternativa temporária, adicione a permissão Directory.Read.All. Essa solução alternativa temporária não será necessária quando o problema for resolvido.
Trabalho em equipe (Microsoft Teams)
Não é possível filtrar os membros da equipe por funções
Filtros de consulta de função junto com outros filtros GET /teams/team-id/members?$filter=roles/any(r:r eq 'owner') and displayName eq 'dummy' podem não funcionar. O servidor pode responder com uma.BAD REQUEST
Solicitações para filtrar membros da equipe por função exigem um parâmetro
Todas as solicitações para filtrar membros da equipe por funções esperam um parâmetro skipToken ou um parâmetro top na solicitação, mas não ambos. Se ambos os parâmetros forem passados na solicitação, o parâmetro top será ignorado.
Algumas propriedades para membros do chat podem estar ausentes na resposta a uma solicitação GET
Em certos casos, a tenantId / email / displayName propriedade para os membros individuais de um bate-papo pode não ser preenchida em uma solicitação GET /chats/chat-id/members ou GET /chats/chat-id/members/membership-id.
Faltam propriedades na lista de equipes que um usuário ingressou
A chamada à API para me/joinedTeams retorna apenas as propriedades id, displayName e description de uma equipe. Para obter todas as propriedades, use a operaçãoobter a equipe.
A instalação de aplicativos que exigem permissões de consentimento específicas do recurso não é compatível
As chamadas de API a seguir não suportam a instalação de aplicativos que exigem permissões de consentimento específicas do recurso.
- Adicionar aplicativo à equipe
- Atualizar o aplicativo instalado para a equipe
- Adicionar o aplicativo ao chat
- Atualizar aplicativo instalado no chat
Não é possível acessar um canal compartilhado entre locatários quando a URL de solicitação contém locatários/{cross-tenant-id}
A API chama teams/{team-id}/incomingChannels e teams/{team-id}/allChannels retorna a propriedade @odata.id que você pode usar para acessar o canal e executar outras operações no objeto channel. Se você chamar o URL retornado da propriedade @odata.id, a solicitação falhará com o seguinte erro ao tentar acessar o canal compartilhado entre locatários:
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 resolver esse problema, remova a parte /tenants/{tenant-id} do URL antes de chamar a API para acessar o canal compartilhado entre locatários.
As permissões TeamworkAppSettings não são visíveis no portal do Azure
As permissões TeamworkAppSettings.Read.All e TeamworkAppSettings.ReadWrite.All estão sendo implementadas e podem ainda não estar visíveis no Portal do Azure. Para consentir com estas permissões, use uma solicitação de autorização da seguinte maneira:
GET https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/authorize?client_id={client-app-id}&response_type=code&scope=https://graph.microsoft.com/TeamworkAppSettings.ReadWrite.All
Usuários
Codificar símbolos de número (#) em userPrincipalName
O userPrincipalName de usuários convidados adicionados por meio do Azure AD B2B geralmente contém o caractere de número (#). Usando $filter em um userPrincipalName que contém o símbolo #, por exemplo, GET /users?$filter=userPrincipalName eq 'AdeleV_contoso.com#EXT#@fabrikam.com', retorna uma resposta de erro HTTP 400 Bad request. Para filtrar pelo userPrincipalName, codifique o caractere # usando seu equivalente UTF-8 (%23), por exemplo, GET /users?$filter=userPrincipalName eq 'AdeleV_contoso.com%23EXT%23@fabrikam.com'.
O acesso aos recursos do usuário é aiado após a criação
Os usuários podem ser criados imediatamente por um POST na entidade do usuário. Uma licença do Office 365 deve ser atribuída a um usuário primeiro para que ele possa ter acesso aos serviços do Microsoft 365. Mesmo assim, devido à natureza distribuída do serviço, pode demorar 15 minutos antes que os arquivos, as mensagens e as entidades de eventos fiquem disponíveis para uso por esse usuário na API do Microsoft Graph. Durante esse período, os aplicativos receberão uma resposta de erro HTTP 404 Not Found.
O acesso à foto de perfil de um usuário é limitado
A leitura e a atualização da foto do perfil do usuário só serão possíveis se o usuário tiver uma caixa de correio. Falha ao ler ou atualizar uma foto, nesse caso, resulta no seguinte erro:
{ "error": { "code": "ErrorNonExistentMailbox", "message": "The SMTP address has no mailbox associated with it." } }Todas as fotos que podem ter sido armazenadas anteriormente usando a propriedade thumbnailPhoto (usando a API do Azure AD Graph (obsoleta) ou por meio da sincronização do AD Connect) não podem mais ser acessadas por meio do Microsoft Graph photo do recurso user.
No momento, não há suporte para o gerenciamento de fotos dos usuários por meio do recurso profilePhoto da API do Microsoft Graph em Azure AD B2C locatários.
A revogação de sessões de entrada retorna um código HTTP errado
O usuário: revokeSignInSessions API deve retornar uma resposta 204 No content para ter revogações bem-sucedidas e um código de erro HTTP (4xx ou 5xx) se algo der errado com a solicitação. No entanto, devido a um problema de serviço, essa API retorna um parâmetro 200 OK e um parâmetro booleano que é sempre true. Até que isso seja corrigido, você pode tratar qualquer código de retorno 2xx como bem-sucedido para esta API.
Objetos incompletos são retornados ao usar a solicitação getByIds
A solicitação de objetos usando a opção de Obter objetos de diretório de uma lista de IDs deve retornar objetos completos. No entanto, atualmente, os objetos de usuário no ponto de extremidade v1.0 são retornados com um conjunto limitado de propriedades. Como solução temporária, ao usar a operação em combinação com a opção de consulta $select, objetos de usuário mais completos serão retornados. Esse comportamento não está de acordo com as especificações do OData. Como esse comportamento pode ser atualizado no futuro, use esta solução alternativa apenas quando fornecer $select= com todas as propriedades de seu interesse e somente se futuras alterações nessa solução alternativa forem aceitáveis.
A propriedade showInAddressList está fora de sincronia com o Microsoft Exchange
Ao consultar usuários por meio do Microsoft Graph, a propriedade showInAddressList pode não indicar o mesmo status mostrado no Microsoft Exchange. Recomendamos que você gerencie essa funcionalidade diretamente com o Microsoft Exchange por meio do Centro de administração do Microsoft 365 e não use essa propriedade no Microsoft Graph.
Parâmetros de consulta
Algumas limitações se aplicam aos parâmetros de consulta
As seguintes limitações se aplicam aos parâmetros de consulta:
- Não há suporte para vários namespaces.
- Não há suporte para as solicitações GET no
$refe também para transmissão em usuários, grupos, dispositivos, entidades de serviço e aplicativos. @odata.bindnão é compatível. Isso significa que os você não pode definir corretamente as propriedades de navegação acceptedSenders ou rejectedSenders em um grupo.@odata.idnão está presente na navegação sem confinamento (como mensagens) quando há o uso de metadados mínimos.$expand:- Retorna um máximo de 20 objetos.
- Sem suporte para
@odata.nextLink. - Sem suporte para mais de um nível de expansão.
- Sem suporte com parâmetros extras (
$filter,$select).
$filter:- Não há suporte para filtros no ponto de extremidade
/attachments. Se presente, o parâmetro$filteré ignorado. - Não há suporte para filtragem de carga de trabalho cruzada.
- Não há suporte para filtros no ponto de extremidade
$search:- A pesquisa de texto completo só está disponível para um subconjunto de entidades, como mensagens.
- Não há suporte para pesquisa de carga de trabalho cruzada.
- Não há suporte para pesquisa em Azure AD B2C locatários.
$count:- Não há suporte para locatários Azure AD B2C aplicativos.
- Ao usar a cadeia de consulta
$count=trueao consultar recursos de diretório, a propriedade@odata.countestará presente apenas na primeira página dos dados paginados.
- Os parâmetros de consulta especificados em uma solicitação podem falhar silenciosamente. Isto pode ser verdade tanto para parâmetros de consulta não suportados quanto para combinações não suportadas de parâmetros de consulta..
Funcionalidade disponível somente nas APIs rest do Office 365 ou do Graph do Azure Active Directory (preterida)
Algumas funcionalidades ainda não estão disponíveis no Microsoft Graph. Se você não vir a funcionalidade que está procurando, poderá usar as APIs REST do Office 365 específicas do ponto de extremidade. Para Azure AD Graph, veja Migrar aplicativos de Gráfico do Azure Active Directory (Azure AD) para o Microsoft Graph.
Comentários
Enviar e exibir comentários de