Microsoft Entra Connect Sync: Compreender o Aprovisionamento Declarativo

Este tópico explica o modelo de configuração no Microsoft Entra Connect. O modelo é chamado de Provisionamento Declarativo e permite que você faça uma alteração de configuração com facilidade. Muitas coisas descritas neste tópico são avançadas e não são necessárias para a maioria dos cenários de clientes.

Descrição geral

O provisionamento declarativo processa objetos provenientes de um diretório conectado de origem e determina como o objeto e os atributos devem ser transformados de uma origem para um destino. Um objeto é processado em um pipeline de sincronização e o pipeline é o mesmo para regras de entrada e saída. Uma regra de entrada é de um espaço de conector para o metaverso e uma regra de saída é do metaverso para um espaço de conector.

Diagram that shows a sync pipeline example.

O pipeline tem vários módulos diferentes. Cada um é responsável por um conceito na sincronização de objetos.

Diagram that shows the modules in the pipeline.

  • Source, O objeto de origem
  • Escopo, Localiza todas as regras de sincronização que estão no escopo
  • Join, Determina a relação entre o espaço do conector e o metaverso
  • Transformar, Calcula como os atributos devem ser transformados e fluir
  • Precedência, Resolve contribuições de atributos conflitantes
  • Target, O objeto de destino

Âmbito

O módulo de escopo está avaliando um objeto e determina as regras que estão no escopo e devem ser incluídas no processamento. Dependendo dos valores de atributos no objeto, diferentes regras de sincronização são avaliadas para estarem no escopo. Por exemplo, um usuário desabilitado sem caixa de correio do Exchange tem regras diferentes de um usuário habilitado com uma caixa de correio.
Diagram that shows the scope module for an object.

O âmbito é definido como grupos e cláusulas. As cláusulas estão dentro de um grupo. Um E lógico é usado entre todas as cláusulas de um grupo. Por exemplo, (departamento = TI E país = Dinamarca). Um OR lógico é usado entre grupos.

Scope
O âmbito desta imagem deve ser lido como (departamento = TI E país = Dinamarca) OU (país = Suécia). Se o grupo 1 ou o grupo 2 for avaliado como verdadeiro, a regra estará no escopo.

O módulo de escopo suporta as seguintes operações.

Operation Description
IGUAL, NOTA Uma comparação de cadeia de caracteres que avalia se o valor é igual ao valor no atributo. Para atributos de vários valores, consulte ISIN e ISNOTIN.
MENOS, LESSTHAN_OR_EQUAL Uma comparação de cadeia de caracteres que avalia se o valor é menor do que o valor no atributo.
CONTÉM, NÃO CONTÉM Uma comparação de cadeia de caracteres que avalia se o valor pode ser encontrado em algum lugar dentro do valor no atributo.
STARTSWITH, NOTSTARTSCOM Uma comparação de cadeia de caracteres que avalia se o valor está no início do valor no atributo.
TERMINA, NOTANDSWITH Uma comparação de cadeia de caracteres que avalia se o valor está no final do valor no atributo.
MAIOR, GREATERTHAN_OR_EQUAL Uma comparação de cadeia de caracteres que avalia se o valor é maior do que o valor no atributo.
ISNULL, ISNOTNULL Avalia se o atributo está ausente do objeto. Se o atributo não estiver presente e, portanto, nulo, a regra estará no escopo.
ISIN, ISNOTIN Avalia se o valor está presente no atributo definido. Esta operação é a variação multivalorada de EQUAL e NOTEQUAL. O atributo deve ser um atributo de vários valores e, se o valor puder ser encontrado em qualquer um dos valores de atributo, a regra estará no escopo.
ISBITSET, ISNOTBITSET Avalia se um bit específico está definido. Por exemplo, pode ser usado para avaliar os bits em userAccountControl para ver se um usuário está habilitado ou desabilitado.
ISMEMBEROF, ISNOTMEMBEROF O valor deve conter um DN para um grupo no espaço do conector. Se o objeto for um membro do grupo especificado, a regra estará no escopo.

Participar

O módulo de junção no pipeline de sincronização é responsável por localizar a relação entre o objeto na origem e um objeto no destino. Em uma regra de entrada, essa relação seria um objeto em um espaço de conector encontrando uma relação com um objeto no metaverso.
Join between cs and mv
O objetivo é ver se já existe um objeto no metaverso, criado por outro Connector, ao qual ele deve estar associado. Por exemplo, em uma floresta de recursos de conta, o usuário da floresta de conta deve ser associado ao usuário da floresta de recursos.

As junções são usadas principalmente em regras de entrada para unir objetos de espaço de conector ao mesmo objeto do metaverso.

As junções são definidas como um ou mais grupos. Dentro de um grupo, você tem cláusulas. Um E lógico é usado entre todas as cláusulas de um grupo. Um OR lógico é usado entre grupos. Os grupos são processados em ordem de cima para baixo. Quando um grupo encontra exatamente uma correspondência com um objeto no destino, nenhuma outra regra de junção é avaliada. Se zero ou mais de um objeto for encontrado, o processamento continuará para o próximo grupo de regras. Por esta razão, as regras devem ser criadas na ordem mais explícita primeiro e mais difusa no final.
Join definition
As junções nesta imagem são processadas de cima para baixo. Primeiro, o pipeline de sincronização vê se há uma correspondência no employeeID. Caso contrário, a segunda regra verifica se o nome da conta pode ser usado para unir os objetos. Se isso também não for uma correspondência, a terceira e última regra é uma correspondência mais difusa usando o nome do usuário.

Se todas as regras de associação tiverem sido avaliadas e não houver exatamente uma correspondência, o Tipo de link na página Descrição será usado. Se essa opção estiver definida como Provisão, um novo objeto no destino será criado.
Screenshot that shows the

Um objeto deve ter apenas uma única regra de sincronização com regras de junção no escopo. Se houver várias regras de sincronização onde a junção é definida, ocorrerá um erro. A precedência não é usada para resolver conflitos de junção. Um objeto deve ter uma regra de junção no escopo para que os atributos fluam com a mesma direção de entrada/saída. Se você precisar fluir atributos de entrada e saída para o mesmo objeto, deverá ter uma regra de sincronização de entrada e saída com junção.

A associação de saída tem um comportamento especial quando tenta provisionar um objeto para um espaço de conector de destino. O atributo DN é usado para primeiro tentar uma junção reversa. Se já houver um objeto no espaço do conector de destino com o mesmo DN, os objetos serão unidos.

O módulo de junção só é avaliado uma vez quando uma nova regra de sincronização entra no escopo. Quando um objeto se junta, ele não é separado, mesmo que os critérios de junção não sejam mais satisfeitos. Se você quiser desassociar um objeto, a regra de sincronização que ingressou os objetos deve sair do escopo.

Exclusão do metaverso

Um objeto de metaverso permanece enquanto houver uma regra de sincronização no escopo com Link Type definido como Provision ou StickyJoin. Um StickyJoin é usado quando um Connector não tem permissão para provisionar um novo objeto para o metaverso, mas quando ele se juntou, ele deve ser excluído na fonte antes que o objeto do metaverso seja excluído.

Quando um objeto de metaverso é excluído, todos os objetos associados a uma regra de sincronização de saída marcada para provisão são marcados para exclusão.

Transformações

As transformações são usadas para definir como os atributos devem fluir da origem para o destino. Os fluxos podem ter um dos seguintes tipos de fluxo: Direto, Constante ou Expressão. Um fluxo direto, flui um valor de atributo como está, sem transformações adicionais. Um valor constante define o valor especificado. Uma expressão usa a linguagem de expressão de provisionamento declarativo para expressar como a transformação deve ser. Os detalhes da linguagem de expressão podem ser encontrados no tópico Entendendo a linguagem de expressão de provisionamento declarativo.

Provision or join

A caixa de seleção Aplicar uma vez define que o atributo só deve ser definido quando o objeto é criado inicialmente. Por exemplo, essa configuração pode ser usada para definir uma senha inicial para um novo objeto de usuário.

Mesclando valores de atributos

Nos fluxos de atributos, há uma configuração para determinar se atributos de valores múltiplos devem ser mesclados de vários conectores diferentes. O valor padrão é Update, que indica que a regra de sincronização com maior precedência deve vencer.

Screenshot that shows the

Há também Merge e MergeCaseInsensitive. Essas opções permitem mesclar valores de diferentes fontes. Por exemplo, ele pode ser usado para mesclar o atributo proxyAddresses de várias florestas diferentes. Quando você usa essa opção, todas as regras de sincronização no escopo de um objeto devem usar o mesmo tipo de mesclagem. Não é possível definir Update a partir de um Connector e Merge a partir de outro. Se tentar, receberá um erro.

A diferença entre Merge e MergeCaseInsensitive é como processar valores de atributos duplicados. O mecanismo de sincronização garante que valores duplicados não sejam inseridos no atributo de destino. Com MergeCaseInsensitive, valores duplicados com apenas uma diferença em maiúsculas e minúsculas não estarão presentes. Por exemplo, você não deve ver "SMTP:" e "smtp:bob@contoso.combob@contoso.com" no atributo de destino. Mesclar é apenas olhar para os valores exatos e vários valores onde há apenas uma diferença no caso pode estar presente.

A opção Substituir é a mesma que Atualizar, mas não é usada.

Controlar o processo de fluxo de atributos

Quando várias regras de sincronização de entrada são configuradas para contribuir para o mesmo atributo do metaverso, a precedência é usada para determinar o vencedor. A regra de sincronização com maior precedência (menor valor numérico) contribuirá com o valor. O mesmo acontece com as regras de saída. A regra de sincronização com maior precedência vence e contribui com o valor para o diretório conectado.

Em alguns casos, em vez de contribuir com um valor, a regra de sincronização deve determinar como outras regras devem se comportar. Existem alguns literais especiais usados para este caso.

Para Regras de Sincronização de entrada, o NULL literal pode ser usado para indicar que o fluxo não tem valor para contribuir. Outra regra com menor precedência pode contribuir com um valor. Se nenhuma regra contribuiu com um valor, o atributo metaverso será removido. Para uma regra de saída, se NULL for o valor final depois que todas as regras de sincronização tiverem sido processadas, o valor será removido no diretório conectado.

O literal AuthoritativeNull é semelhante a NULL, mas com a diferença de que nenhuma regra de precedência inferior pode contribuir com um valor.

Um fluxo de atributo também pode usar IgnoreThisFlow. É semelhante a NULL no sentido de que indica que não há nada a contribuir. A diferença é que ele não remove um valor já existente no alvo. É como se o fluxo de atributos nunca tivesse existido.

Segue-se um exemplo:

Em out to AD - User Exchange hybrid o seguinte fluxo pode ser encontrado:
IIF([cloudSOAExchMailbox] = True,[cloudMSExchSafeSendersHash],IgnoreThisFlow)
Esta expressão deve ser lida como: se a caixa de correio do usuário estiver localizada no Microsoft Entra ID, então flua o atributo do Microsoft Entra ID para o Ative Directory. Se não, não flua nada de volta para o Ative Directory. Neste caso, manteria o valor existente em AD.

Valor Importado

A função ImportedValue é diferente de todas as outras funções, uma vez que o nome do atributo deve ser colocado entre aspas em vez de colchetes:

ImportedValue("proxyAddresses").

A sincronização de entrada tem um conceito de assumir que um atributo que ainda não atingiu um diretório conectado acabará por alcançá-lo em algum momento, portanto, normalmente, a sincronização obtém um valor de atributo do respetivo espaço do conector, mesmo que ainda não tenha sido exportado ou tenha ocorrido um erro durante a exportação. Em alguns casos, no entanto, é importante sincronizar apenas um valor que foi exportado e confirmado durante a importação do diretório conectado. Esta função pode ser encontrada em várias regras de transformação prontas para uso "In From AD/AAD", onde o atributo só deve ser sincronizado quando for confirmado que o valor foi exportado com êxito.

Um exemplo dessa função pode ser encontrado na Regra de Sincronização pronta para uso do AD – Usuário Comum do Exchange, para o fluxo de atributos ProxyAddresses com o Exchange Híbrido. Por exemplo, quando ProxyAddresses de um usuário é adicionado, a função ImportedValue só retornará o novo valor depois que ele tiver sido confirmado a partir da seguinte etapa de importação:

proxyAddresses<- RemoveDuplicates(Trim(ImportedValue("proxyAddresses")))

Essa função é necessária quando o diretório de destino pode alterar ou descartar um valor de atributo exportado silenciosamente, e queremos que a sincronização processe apenas valores de atributo confirmados.

Precedência

Quando várias regras de sincronização tentam contribuir com o mesmo valor de atributo para o destino, o valor de precedência é usado para determinar o vencedor. A regra com maior precedência, menor valor numérico, vai contribuir com o atributo em um conflito.

Merge Types

Essa ordenação pode ser usada para definir fluxos de atributos mais precisos para um pequeno subconjunto de objetos. Por exemplo, as regras prontas para uso garantem que os atributos de uma conta habilitada (User AccountEnabled) tenham precedência sobre outras contas.

A precedência pode ser definida entre conectores. Isso permite que conectores com dados melhores contribuam com valores primeiro.

Vários objetos do mesmo espaço de conector

Não é possível ter vários objetos no mesmo espaço de conector unidos ao mesmo objeto do metaverso. Essa configuração é relatada como ambígua, mesmo que os atributos na origem tenham o mesmo valor.

Diagram that shows multiple objects joined to the same mv object with a transparent red X overlay.

Próximos passos

Tópicos de visão geral

Tópicos de referência