Partilhar via


Noções básicas sobre expressões de provisionamento declarativo

Atualizado: July 22, 2015

Importante

Este tópico será arquivado em breve.
Há um novo produto chamado "Azure Ative Directory Connect" que substitui o AADSync e o DirSync.
O Azure AD Connect incorpora os componentes e a funcionalidade lançados anteriormente como Dirsync e AAD Sync.
Em algum momento no futuro, o suporte para Dirsync e AAD Sync terminará.
Essas ferramentas não estão mais sendo atualizadas individualmente com aprimoramentos de recursos e todas as melhorias futuras serão incluídas nas atualizações do Azure AD Connect.

Para obter as informações mais recentes sobre o Azure Ative Directory Connect, consulte Integrando suas identidades locais com o Azure Ative Directory

O Azure Ative Directory Synchronization Services (AAD Sync) baseia-se no provisionamento declarativo introduzido pela primeira vez no Forefront Identity Manager 2010 para permitir que você implemente sua lógica de negócios completa de integração de identidade sem precisar escrever código.

Uma parte essencial do provisionamento declarativo é a linguagem de expressão usada em fluxos de atributos. A linguagem usada é um subconjunto do Microsoft® Visual Basic® for Applications (VBA). Esta linguagem é usada no Microsoft Office e os usuários com experiência em VBScript também a reconhecerão. A Linguagem de Expressão de Provisionamento Declarativo está usando apenas funções e não é uma linguagem estruturada; não há métodos ou declarações. Em vez disso, as funções serão aninhadas para expressar o fluxo do programa.

Para obter mais detalhes, consulte Bem-vindo à referência de linguagem do Visual Basic for Applications para o Office 2013.

Os atributos são fortemente tipados. Uma função que espera um atributo de cadeia de caracteres de valor único não aceitará vários valores ou atributos de um tipo diferente. Também diferencia maiúsculas de minúsculas. Ambos os nomes de função e nomes de atributos devem ter caixa adequada ou um erro será lançado

Definições de idioma e identificadores

  • As funções têm um nome seguido de argumentos entre parênteses: FunctionName(<<argumento 1>>,<<argumento N>>).

  • Os atributos são identificados por colchetes: [attributeName]

  • Os parâmetros são identificados por sinais de percentagem: %ParameterName%

  • As constantes de cadeia de caracteres são cercadas por aspas: por exemplo, "Contoso"

  • Os valores numéricos são expressos sem aspas e espera-se que sejam decimais. Os valores hexadecimais são prefixados com &H. Por exemplo, 98052, &HFF

  • Os valores booleanos são expressos com constantes: True, False.

  • As constantes internas são expressas apenas com seu nome: NULL, CRLF, IgnoreThisFlow

Operadores

Podem ser utilizados os seguintes operadores:

  • Comparação: <, <=, <>, =, >, >=

  • Matemática: +, -, *, -

  • String: & (concatenar)

  • lógico : && (e), || ou)

  • Ordem de avaliação: ( )

Os operadores são avaliados da esquerda para a direita. 2*(5+3) não é o mesmo que 2*5+3. Os parênteses ( ) são usados para alterar a ordem de avaliação.

Parâmetros

Um parâmetro é definido por um Connector ou por um administrador usando o PowerShell. Os parâmetros geralmente contêm valores que serão diferentes de sistema para sistema, por exemplo, o nome do domínio em que o usuário está localizado. Estes podem ser usados em fluxos de atributos.

O Conector do Ative Directory forneceu os seguintes parâmetros para as Regras de Sincronização de entrada:

Domínio.Netbios

Domínio.FQDN

Domínio.LDAP

Floresta.Netbios

Floresta.FQDN

Floresta.LDAP

O sistema fornece o seguinte parâmetro:

Connector.ID

Um exemplo que preencherá o domínio do atributo metaverso com o nome netbios do domínio onde o usuário está localizado.

domínio <- %Domain. Netbios%

Cenários comuns

Comprimento dos atributos

Os atributos de cadeia de caracteres são, por padrão, definidos para serem indexáveis e o comprimento máximo é de 448 caracteres. Se você estiver trabalhando com atributos de cadeia de caracteres que podem conter mais, certifique-se de incluir o seguinte no fluxo de atributos:

attributeName <- Left([attributeName],448)

Alterando o userPrincipalSuffix

O atributo userPrincipalName no Ative Directory nem sempre é conhecido pelos usuários e pode não ser adequado como ID de login. O guia de instalação do AAD Sync permite escolher um atributo diferente, por exemplo, e-mail. Mas, em alguns casos, o atributo deve ser calculado. Por exemplo, a empresa Contoso tem dois diretórios AAD, um para produção e outro para teste. Eles querem que os usuários em seu locatário de teste apenas alterem o sufixo no login ID.userPrincipalName <- Word([userPrincipalName],1,"@") & "@contosotest.com"

Nesta expressão, pegamos tudo o que resta do primeiro @-sinal (Word) e concatenamos com uma string fixa.

Converter um valor múltiplo em um valor único

Alguns atributos no Ative Directory têm vários valores no esquema, embora pareçam com valor único em Usuários e Computadores do Ative Directory. Um exemplo é o atributo description.

Nesta expressão, caso o atributo tenha um valor, pegamos o primeiro item (Item) no atributo, removemos os espaços à esquerda e à direita (Trim) e, em seguida, mantemos os primeiros 448 caracteres (Left) na cadeia de caracteres.

Conceito avançado

NULL vs IgnoreThisFlow

Para Regras de Sincronização de entrada, a constante NULL deve ser sempre usada. Isso indica que o fluxo não tem valor para contribuir e outra regra pode contribuir com um valor. Se nenhuma regra contribuiu com um valor, o atributo metaverso será removido.

Para Regras de Sincronização de saída, há duas constantes diferentes a serem usadas: NULL e IgnoreThisFlow. Ambos indicam que o fluxo de atributos não tem nada a contribuir, mas a diferença é o que acontece quando nenhuma outra regra tem nada a contribuir. Se houver um valor existente no diretório conectado, um NULL preparará uma exclusão no atributo removendo-o, enquanto IgnoreThisFlow manterá o valor existente.

Valor Importado

A função ImportedValues é 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").

Normalmente, durante a sincronização, um atributo usará o valor esperado, mesmo que ainda não tenha sido exportado ou um erro tenha sido recebido durante a exportação ("topo da torre"). Uma sincronização de entrada assumirá que um atributo que ainda não chegou a um diretório conectado acabará por alcançá-lo. Em alguns casos, é importante sincronizar apenas um valor que foi confirmado pelo diretório conectado e, neste caso, a função ImportedValue é usada ("holograma e torre de importação delta").

Um exemplo disso pode ser encontrado na Regra de Sincronização pronta para uso do AD – Usuário Comum do Exchange, onde no Exchange Híbrido o valor adicionado pelo Exchange online só deve ser sincronizado se tiver sido confirmado que o valor foi exportado com êxito:

proxyAddresses <- RemoveDuplicates(Trim(ImportedValues(“proxyAddresses”)))

Lista de funções

Conversão

CBool

CDate

CGuid

ConvertFromBase64

ConvertToBase64

ConvertFromHex

ConvertToHex

CNum

CRef

CStr

StringFromGuid

StringFromSid

Data/Hora

DataAdicionar

DateFromNum

FormatDateTime

Agora

NumFromDate

Diretório

DNComponent

DNComponentRev

EscapeDNComponent

Inspeção

IsBitSet

IsDate

IsEmpty

IsGuid

IsNull

IsNullOrEmpty

IsNumeric

IsPresent

IsString

Matemática

BitAnd

BitOr

RandomNum

Multi-valorado

Contém

Contagem

Número

Aderir

RemoveDuplicates

Divisão

Fluxo do Programa

Erro

IIF

Mudar

Texto

GUID

InStr

InStrRev

LCase

Esquerda

Len

LTrim

Média

PadLeft

PadRight

PCase

Substituir

ReplaceChars

Certo

RTrim

Guarnição

UCase

Palavra

Especial

ImportedValues

Ver também

Conceitos

de Sincronização do Ative Directory do Azure