Partilhar via


Códigos de erro e processamento de erros | Conceitos da Graph API

Aplica-se a: Graph API | Azure Active Directory (AD)

Aplicações de cliente que utilizam a Graph API do Azure Active Directory (AD) devem implementar a lógica para reagir como transições quanto possível para condições diferentes e fornecer a melhor experiência possível aos seus clientes de processamento de erros. O tópico aborda os tipos de erros que o Azure AD Graph API devolve e fornece orientações gerais sobre como lidar com os mesmos.

Importante

Recomendamos vivamente que utilize Microsoft Graph em vez do AD Graph API do Azure para aceder aos recursos do Azure Active Directory. A nossa esforços de desenvolvimento são agora concentrated no Microsoft Graph e estão a ser planeados sem melhoramentos adicionais para AD Graph API do Azure. Existem um número muito limitado de cenários para o qual AD Graph API do Azure ainda poderá ser apropriado; Para obter mais informações, consulte o Microsoft Graph ou o Azure AD Graph blogue no Dev Center do Office.

Processamento de erros da Graph API

Tipos de erros

Graph API erros ocorrerem nas seguintes categorias.

  • Erros de cliente. Erros de cliente são representados por códigos de estado HTTP 400-série. Incluem os objetos com valores inválidos, objetos que estão em falta necessário propriedades ou valores de propriedade, tentar aceder a um recurso de inexistente, tentar atualizar uma propriedade só de leitura e omitindo o token de autorização necessário. Para resolver estes erros, corrija o problema subjacente antes de repetir o pedido.
  • Erros de servidor. Erros de servidor são representados por códigos de estado HTTP 500-série, tais como uma falha transitória diretório. A maioria destes erros é transitória e pode ser resolvida por repetir o pedido.
  • Erros de rede/protocolo. Uma variedade de erros relacionados com a rede pode ocorrer ao enviar um pedido ou receber uma resposta, como erros de resolução do nome de anfitrião, ligações fechadas prematuramente e erros de negociação de SSL. Não é possível resolver a maioria destes erros repetindo; o problema subjacente tem de ser corrigidos. No entanto, alguns erros, tais como falhas de resolução de nome de anfitrião ou tempos limite, poderão ser resolvidos pelo repetir o pedido.

Estrutura de mensagem de erro

Erros de API do gráfico tem um corpo formatado, que é composta por um código de estado HTTP, uma mensagem e valores. Utilize as propriedades do corpo de erro da sua lógica de processamento de erros.

Tenha em atenção: respostas de HTTP algumas não podem incluir o corpo da resposta de mensagem/código/valores porque o pedido é encaminhado através dos serviços de proxy e de gateway. Não se esqueça de incluir lógica predefinida que pode processar erros com base no código de estado HTTP individualmente.

Segue-se um exemplo de um erro de HTTP 400 Request_BadRequest.

 HTTP/1.1 400 Bad Request
 Content-Type: application/json;odata=minimalmetadata;charset=utf-8
 request-id: ddca4a7e-02b1-4899-ace1-19860901f2fc
 Date: Tue, 02 Jul 2013 01:48:19 GMT
 …
 
 {
     "odata.error" : {
         "code" : "Request_BadRequest",
         "message" : {
             "lang" : "en",
             "value" : "A value is required for property 'mailNickname' of resource 'Group'."
         },
     "values" : null
    }
 }

Cada corpo da mensagem tem código, mensagem e propriedades de valores.

  • Código: a lógica de processamento de erros para a qual ramificar com base no código de Design.

    "code" : "Request_BadRequest"
    
  • Mensagem: uma cadeia de identificação de idioma/valor que representa uma mensagem de erro legível por humanos. O conteúdo estiver no campo valor. No exemplo seguinte, o pedido falha porque o valor da mailNickname propriedade está em falta.

    "message" : {
         "lang" : "en",
         "value" : "A value is required for property 'mailNickname' of resource 'Group'."
    }
    
  • Valores: uma coleção de pares nome/valor que fornecem mais informações sobre a natureza da falha. No exemplo seguinte sem valores estão incluídos.

    "values" : null
    

Referência de código de erro

Códigos de erro HTTP

A tabela seguinte lista Graph API códigos de erro, mensagens de erro e ações a considerar ao corrigir os erros.

Em geral, os erros de HTTP 500-série respondem a tentativas, preferencialmente, distribuídas através de cada vez mais longos intervalos de tempo ("repetição com um intervalo de término") e com um fator de distribuição aleatório. erros de série de 400 indicarem um problema que têm de ser corrigido antes de tentar novamente.

Código de estado de HTTP Código de erro Mensagem de erro Detalhes
400 Directory_ExpiredPageToken O valor de token de página especificada expirou e já não pode ser incluído no seu pedido.
400 Directory_ResultSizeLimitExceeded Foi excedido o limite de tamanho de resultado Não é possível efetuar o pedido porque está associada com demasiados resultados. Este erro ocorre raramente.
400 DomainVerificationCodeNotFound Verificação de domínio falha porque o processo de verificação não é possível localizar o registo TXT com o código de verificação correspondente.
400 ObjectConflict Já existe o nome de domínio num domínio não verificado nesta empresa.
400 ObjectConflict O nome de domínio já existe um domínio verificado nesta empresa.
400 ObjectInUse Não é possível eliminar o domínio atualmente referenciado por um utilizador, grupo ou aplicação multi-inquilino
400 ObjectPendingDeletion Não é possível verificar um domínio existente que está a aguardar a eliminação.
400 ObjectPendingTakeover Não é possível eliminar um domínio no processo de aquisições um inquilino
400 Request_BadRequest Pedido incorreto. Corrija o pedido antes de repetir a operação. Indica um erro no pedido, tal como um valor de propriedade inválido ou um argumento de consulta não suportado. Corrija o pedido antes de tentar novamente.
400 Request_DataContractVersionMissing Parâmetro de versão de contrato de dados está em falta. Inclua api-version como um parâmetro de consulta com todos os seus pedidos.
400 Request_InvalidDataContractVersion A api-version especificada é inválida. O valor tem de corresponder exatamente uma versão suportada.
400 Request_InvalidRequestUrl Url do pedido era inválido. O pedido deve ser como /tenantdomainname/Entity ou /$metadata. Nome de domínio de inquilino pode ser qualquer um dos nomes de domínio verificado, não verificado ou id de contexto.
400 Request_UnsupportedQuery O pedido GET não é suportado. Corrija os parâmetros do pedido e tente novamente.
401 Authentication_ExpiredToken O token de acesso tiver expirado. Renove-o antes de submeter o pedido. Token de acesso tiver expirado. Renove o token e, em seguida, volte a submeter.
401 Authentication_MissingOrMalformed Token de acesso em falta ou com formato incorreto. O valor de access_token no cabeçalho de autorização está em falta ou com formato incorreto. Este valor é necessário. Utilize o valor no token de autenticação.
401 Authorization_IdentityDisabled O principal da aplicação chamada está desativado. O principal especificado no token de acesso está no diretório, mas está desativada. Reativar a conta no diretório e tente novamente.
401 Authorization_IdentityNotFound Não foi possível estabelecer a identidade da aplicação de chamada. O principal especificado no token de acesso não foi encontrado no diretório. Esta situação pode ocorrer porque o token é obsoleto, o principal foi eliminado do diretório ou a sincronização de diretórios está atrasada.
403 Authentication_Unauthorized Não autorizado pedido. O token contém afirmações inválidas ou não é suportadas. Obter o pedido de token novamente e, em seguida, repita o pedido.
403 Authorization_RequestDenied As credenciais especificadas não tem privilégios suficientes para efetuar este pedido. O pedido é negado devido a privilégios insuficientes. Por exemplo, um principal não administrativos não tem permissão para eliminar um recurso.
403 Directory_QuotaExceeded O limite de quota do objeto de diretório para o {tenantName} foi excedido. . Peça ao seu administrador para aumentar o limite de quota ou eliminar objetos para reduzir a quota utilizada. Foi excedida uma quota de diretório. O inquilino poderá ter demasiados objetos ou os objetos, poderão ter demasiados valores. Isto ocorre também quando demasiados objetos são criados para o principal. Aumentar o número máximo de objetos permitidos para o inquilino ou principal, ou reduza o número de valores incluídas no pedido de criação/atualização.
404 Directory_ObjectNotFound Não é possível ler as informações da empresa a partir do diretório.
404 Request_ResourceNotFound Recurso {resource} não existe ou um dos respetivos objetos consultado de propriedade de referência não estiverem presentes. O recurso identificado pelo URI não existe. O valor de rever e repita o pedido.
409 Request_MultipleObjectsWithSameKeyValue Era esperado um único recurso para o resultado, mas foram localizados múltiplos recursos. Atualize os objetos para resolver o conflito. Este erro pode ocorrer quando existem duas ou mais objetos que têm o mesmo valor de chave, por exemplo, quando dois utilizadores têm o mesmo UserPrincipalName.
429 Demasiados pedidos. Este erro ocorre quando pedidos estão a ser limitadas. É devolvido um tempo de espera sugeridos no valor de repetição após do cabeçalho de resposta. Repita o pedido após uma espera o número recomendado de segundos.
500 Service_InternalServerError Encontrou um erro de servidor interno. Erro de servidor interno ao processar o pedido.
502 [All] “... Serviço indisponível..." Um servidor a funcionar como gateway ou proxy encontrou um erro do outro servidor ao processar o pedido. Aguarde alguns minutos e, em seguida, repita o pedido.
503 Directory_ConcurrencyViolation Erro devido a pedidos simultâneos que está a ser efetuada ao inquilino. Aguarde por breves instantes e tente novamente.
503 Ocorreu um erro durante a verificação de DNS (Nota: pode ser causado por várias razões, tais como o DNS se encontra atualmente baixo).
Authentication_Unknown Erro de servidor interno. Este código de erro é utilizado quando não se aplica a outros códigos de erro.
Authentication_UnsupportedTokenType O tipo de token apresentado não é processado. Os tokens de portador apenas são suportados. O tipo de token não é suportado. O tipo de token de rever antes de tentar novamente o pedido.
Directory_BindingRedirection Informações de inquilino não estão disponíveis localmente. Utilize os seguintes Urls para obter as informações. Quando a partição de inquilino não está disponível no Centro de dados, os clientes têm de ligar para o URl devolvido na resposta.
Directory_BindingRedirectionInternalServerError Informações de inquilino não estão disponíveis localmente. O servidor encontrou um erro interno ao tentar preencher os pontos finais de centro de dados mais próximo. Quando ocorre uma exceção de redirecionamento de enlace, a lista de pontos finais de centro de dados mais próximo para o serviço está preenchida. Este erro indica uma exceção ao preencher a lista. Tente novamente a consulta.
Directory_CompanyNotFound Não é possível ler as informações da empresa a partir do diretório. Ocorreu um erro ao carregar as informações da empresa a partir do serviço de diretório.
Directory_ReplicaUnavailable A réplica preferencial não está disponível. Tente novamente sem qualquer cabeçalho de chave de sessão de réplica. Omitir o cabeçalho x-ms-réplica--chave de sessão e tente novamente.
Headers_DataContractVersionMissing O cabeçalho de versão de contrato de dados está em falta. Inclua x-ms-dirapi-data-contract-version do seu pedido. A versão de contrato de cliente está em falta no pedido.
Headers_HeaderNotSupported {0} de cabeçalho não é atualmente suportada. O pedido contém um cabeçalho de HTTP não suportado. Altere o cabeçalho e tente efetuar novamente o pedido.
Request_InvalidReplicaSessionKey A chave de sessão de réplica fornecida não é válida. Corrija a chave de sessão de réplica e tente efetuar novamente o pedido.
Request_ThrottledPermanently O pedido está limitado permanentemente. Contacte o suporte para o endereço o problema. O inquilino repetidamente e de forma permanente excedeu o limite de taxa de pedido de token. Até que o serviço é renegotiated os pedidos do inquilino são rejeitados. Para obter ajuda, contacte Support da Microsoft.

Recursos adicionais