Diferenças de recursos entre Azure AD Graph e Microsoft Graph

Este artigo faz parte da etapa 1: examine as diferenças de API do processo para migrar aplicativos.

Muitos recursos no Microsoft Graph funcionam de forma semelhante aos equivalentes do Graph do Azure Active Directory (Azure AD). No entanto, alguns mudaram ou melhoraram. Neste artigo, você aprenderá a adaptar seus aplicativos para aproveitar essas diferenças.

Este artigo explora como o Microsoft Graph lida com:

  • Extensões de esquema de diretório
  • Consultas diferenciais
  • Envio em lote

Extensões de diretório

Se o aplicativo usar Azure AD extensões de diretório do Graph, você poderá continuar a usar as mesmas APIs básicas (com URLs de solicitação do Microsoft Graph) para:

  • Gerenciar definições de extensão de diretório usando o recurso extensionProperty e os métodos associados.
  • Obtenha propriedades de extensão disponíveis usando a ação getAvailableExtensionProperties .
  • Ler valores de extensão usando GET e para usuários, somente com uma $select consulta por meio do v1.0 ponto de extremidade
  • Pesquisa em valores de extensão usando GET e$filter
  • Atualizar valores de extensão usando PATCH
  • Remover valores de extensão usando PATCH (definido como nulo)

O Microsoft Graph fornece uma experiência avançada de desenvolvedor de extensões de esquema, que hoje não é compatível com Azure AD extensões de diretório do Graph. Para saber mais, confira Escolher um tipo de extensão para seu aplicativo.

Se o aplicativo Azure AD Graph usar extensões de diretório, faça uma abordagem incremental para migrar o aplicativo para o Microsoft Graph.

Primeiro, alterne seu aplicativo para usar chamadas do Microsoft API do Graph, mas deixe que o aplicativo continue a usar Azure AD extensões de diretório do Graph.

Em seguida, você pode mudar para o uso de extensões de esquema do Microsoft Graph. Em alguns casos, a troca não é apropriada. Não alterne se:

  • Seu aplicativo usa extensões de diretório criadas por meio do AD Connect
  • Seu aplicativo define valores de extensão de diretório que são usados em declarações de token por outros aplicativos
  • Seu aplicativo define valores de extensão de diretório que são usados em regras dinâmicas de associação

OBSERVAÇÃO: Ainda não há suporte para usar propriedades de extensão de esquema do Microsoft Graph como declarações em um token usando declarações opcionais ou em uma regra de associação dinâmica.

Para alternar para o modelo de extensão de esquema mais recente do Microsoft Graph, você precisa:

  • Defina novas definições de extensão de esquema usando o Microsoft Graph.
  • Atualize o aplicativo para dar suporte às novas definições de extensão de esquema.
  • Migre os dados das propriedades de extensão do diretório Azure AD Graph para as propriedades de extensão de esquema do Microsoft Graph. Não há suporte para a migração automática de dados.

Consultas diferenciais

Azure AD Graph e Microsoft Graph permitem acompanhar as alterações usando consultas. A abordagem de alto nível é semelhante entre as duas APIs, mas a sintaxe é diferente.

Azure AD Graph chama essas consultas diferenciais, enquanto o Microsoft Graph as chama de consultas delta.

A tabela a seguir destaca as principais semelhanças e diferenças:

Solicitação Delta Azure AD Graph. Microsoft Graph
Solicitação inicial de dados Usa um parâmetro de consulta:
GET /groups?deltaLink=
Usa uma função:
GET /groups/delta
Obter novas alterações GET /groups?deltaLink={deltaToken} GET /groups/delta?$deltaToken={deltaToken}
Sincronizar a partir de agora Usa um cabeçalho HTTP personalizado:
ocp-aad-dq-include-only-delta-token: true
Usa um parâmetro de consulta:
GET /groups/delta?$deltaToken=latest
Acompanhar alterações para objetos de diretório Obtém alterações para vários recursos (usuário e grupo) na mesma operação:
GET /directoryObject?$filter=isof('User') or isof('Group')&deltaLink=
Usa consultas separadas com o Microsoft Graph, uma para cada recurso.
Obter alterações de recurso e relacionamento Todas as solicitações retornam alterações de recurso e relacionamento, se o recurso tiver relações. GET /groups/delta?$expand=members
Resposta que indica itens novos e alterados
  • Representa instâncias recém-criadas usando sua representação padrão.

  • As instâncias atualizadas são representadas por sua ID com pelo menos as propriedades que foram atualizadas. Outras propriedades podem ser incluídas.

  • As relações são representadas como o directoryLinkChange tipo.

  • Representa instâncias recém-criadas usando sua representação padrão.

  • As instâncias atualizadas são representadas por sua ID com pelo menos as propriedades que foram atualizadas. Outras propriedades podem ser incluídas.

  • As relações são representadas como anotações na representação de recurso padrão. Essas anotações usam o formato propertyName@delta, por exemplo members@delta , para alterações de associação de um grupo.

Resposta que indica itens excluídos Indica um item excluído com uma propriedade adicional de aad.isDeleted definida como true. Indica um item excluído com a @removed anotação. Ele também pode conter um código de razão, que indica se o item foi excluído, mas pode ser restaurado ou será excluído permanentemente.

Se seu aplicativo já estiver armazenando dados de estado, considere usar a funcionalidade "sincronizar a partir de agora" para ajudar a gerenciar a transição para consultas delta.

Envio em lote

Azure AD Graph usou um sistema chamado mensagens MIME de várias partes para gerenciar o lote. O Microsoft Graph usa o lote JSON para permitir até 20 solicitações em uma única operação em lote. O mecanismo de lote JSON é mais simples de usar, especialmente junto com bibliotecas de análise JSON. Ele também permite o sequenciamento de operações em lote. No entanto, ele não é compatível com o inverso com a abordagem de lote do Azure AD Graph.

Próxima etapa