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 dov1.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.
Abordagem de migração recomendada
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 |
|
|
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.