Principy výrazů deklarativního zřizování
Aktualizováno: 22. července 2015
Důležitý
Toto téma bude brzy archivováno.
Existuje nový produkt s názvem "Azure Active Directory Connect", který nahrazuje AADSync a DirSync.
Azure AD Connect zahrnuje komponenty a funkce, které byly dříve vydány jako Dirsync a AAD Sync.
V budoucnu skončí podpora nástroje Dirsync a AAD Sync.
Tyto nástroje se už neaktualizují jednotlivě pomocí vylepšení funkcí a všechna budoucí vylepšení budou součástí aktualizací služby Azure AD Connect.
Služba Azure Active Directory Synchronization Services (AAD Sync) vychází z deklarativního zřizování, které bylo poprvé zavedeno ve Forefront Identity Manageru 2010, abyste mohli implementovat úplnou obchodní logiku integrace identit, aniž byste museli psát kód.
Základní součástí deklarativního zřizování je jazyk výrazu používaný v tocích atributů. Použitý jazyk je podmnožinou jazyka Microsoft® Visual Basic® for Applications (VBA). Tento jazyk se používá v Microsoft Office a uživatelé, kteří mají zkušenosti s jazykem VBScript, ho také rozpozná. Jazyk deklarativního zřizování výrazů používá pouze funkce a není strukturovaným jazykem; neexistují žádné metody ani příkazy. Funkce se místo toho vnořují do toku programu.
Další podrobnosti najdete v tématu Vítá vás referenční příručka jazyka Visual Basic for Applications pro Office 2013.
Atributy jsou silného typu. Funkce, která očekává, že atribut řetězce s jednou hodnotou nebude přijímat vícehodnotové nebo atributy jiného typu. Rozlišují se také malá a velká písmena. Názvy funkcí i názvy atributů musí mít správnou velikost písmen nebo dojde k chybě.
Definice jazyka a identifikátory
Funkce mají název následovaný argumenty v hranatých závorkách: FunctionName(<<argument 1>>,<<argument N>>).
Atributy jsou identifikovány hranatými závorkami: [attributeName]
Parametry jsou identifikovány znaménkami procent: %ParameterName%
Řetězcové konstanty jsou obklopené uvozovkami: Například "Contoso"
Číselné hodnoty jsou vyjádřeny bez uvozovek a očekává se, že budou desetinné. Šestnáctkové hodnoty mají předponu &H. Např. 98052, &HFF
Logické hodnoty jsou vyjádřeny konstantami: True, False.
Předdefinované konstanty jsou vyjádřeny pouze s jejich názvem: NULL, CRLF, IgnoreThisFlow
Operátoři
Lze použít následující operátory:
porovnání: <, <=, <>, =, >, >=
matematika: +, -, *, -
řetězcové: & (zřetězení)
logické: && (a), || (nebo)
pořadí vyhodnocení: ( )
Operátory se vyhodnocují zleva doprava. 2*(5+3) není stejné jako 2*5+3. Hranaté závorky () slouží ke změně pořadí vyhodnocení.
Parametry
Parametr je definován konektorem nebo správcem pomocí PowerShellu. Parametry obvykle obsahují hodnoty, které se budou lišit od systému po systém, například název domény, ve které se uživatel nachází. Ty se dají použít v tocích atributů.
Konektor služby Active Directory poskytl následující parametry pro příchozí synchronizační pravidla:
Domain.Netbios |
Doména.FQDN |
Domain.LDAP |
Forest.Netbios |
Doménová struktura.FQDN |
Forest.LDAP |
Systém poskytuje následující parametr:
Connector.ID
Příklad, který naplní doménu atributu metaverse názvem netbios domény, ve které se nachází uživatel.
<domény - %Domain.% rozhraní Netbios
Běžné scénáře
Délka atributů
Atributy řetězců jsou standardně nastaveny tak, aby byly indexovatelné a maximální délka je 448 znaků. Pokud pracujete s řetězcovými atributy, které můžou obsahovat více, nezapomeňte do toku atributů zahrnout následující:
attributeName <- Left([attributeName],448)
Změna přípony userPrincipalSuffix
Atribut userPrincipalName ve službě Active Directory není vždy znám uživateli a nemusí být vhodný jako přihlašovací ID. Průvodce instalací AAD Sync umožňuje vybrat jiný atribut, například poštu. V některých případech se ale musí vypočítat atribut. Například společnost Contoso má dva adresáře AAD, jeden pro produkční a druhý pro testování. Chtějí, aby uživatelé ve svém testovacím tenantovi změnili příponu v přihlašovacím id.userPrincipalName <– Word([userPrincipalName],1;"@") & "@contosotest.com"
V tomto výrazu vezmeme všechno nalevo od prvního znaku @(Word) a zřetězení s pevným řetězcem.
Převod více hodnot na jednu hodnotu
Některé atributy ve službě Active Directory jsou ve schématu vícehodnotové, i když vypadají v uživatelích a počítačích služby Active Directory s jednou hodnotou. Příkladem je atribut popisu.
V tomto výrazu v případě, že má atribut hodnotu, vezmeme první položku (Item) v atributu, odebereme úvodní a koncové mezery (Trim) a pak v řetězci ponecháme prvních 448 znaků (vlevo).
Pokročilý koncept
NULL vs IgnoreThisFlow
V případě příchozích synchronizačních pravidel by měla být vždy použita konstanta NULL. To znamená, že tok nemá žádnou hodnotu pro přispívání a jiné pravidlo může přispět hodnotou. Pokud žádné pravidlo přispělo hodnotu, atribut metaverse se odebere.
Pro pravidla odchozí synchronizace existují dvě různé konstanty, které se mají použít: NULL a IgnoreThisFlow. Oba značí, že tok atributu nemá nic k přispívání, ale rozdíl je v tom, co se stane, když žádné jiné pravidlo nemá nic k přispívání. Pokud je v připojeném adresáři existující hodnota, null připraví odstranění atributu, zatímco IgnoreThisFlow zachová existující hodnotu.
Importovaná hodnota
Funkce ImportValues se liší od všech ostatních funkcí, protože název atributu musí být uzavřen v uvozovkách místo hranatých závorek: ImportValue("proxyAddresses").
Během synchronizace atribut obvykle použije očekávanou hodnotu, i když ještě nebyla exportována nebo při exportu došlo k chybě ("horní část věže"). Příchozí synchronizace předpokládá, že atribut, který ještě nedosáhl připojeného adresáře, se k němu nakonec dostane. V některých případech je důležité synchronizovat pouze hodnotu, která byla potvrzena připojeným adresářem a v tomto případě se používá funkce ImportValue (hologram a rozdílová věž importu).
Příklad najdete v předpojímaném synchronizačním pravidlu In z AD – Uživatel Common from Exchange, kde v hybridním Exchangi by hodnota přidaná exchange online měla být synchronizována pouze v případě, že byla potvrzena, že hodnota byla úspěšně exportována:
proxyAddresses <- RemoveDuplicates(Trim(ImportedValues(“proxyAddresses”)))
Seznam funkcí
Přeměna
CBool |
Datum v jazyce CDate |
CGuid |
ConvertFromBase64 |
ConvertToBase64 |
ConvertFromHex |
ConvertToHex |
Číslo C |
CRef |
CStr |
StringFromGuid |
StringFromSid |
Datum a čas
DateAdd |
DateFromNum |
FormatDateTime |
Teď |
NumFromDate |
Adresář
DNComponent |
DNComponentRev |
EscapeDNComponent |
Inspekce
IsBitSet |
IsDate |
IsEmpty |
IsGuid |
IsNull |
IsNullOrEmpty |
IsNumeric |
IsPresent |
IsString |
Matematika
BitAnd |
BitOr |
RandomNum |
Vícehodnotové
Obsahuje |
Počítat |
Položka |
Připojit |
Odebrání duplicitních dat |
Rozdělit |
Tok programu
Chyba |
IIF |
Vypínač |
Text
Identifikátor guid |
Instr |
InStrRev |
LCase |
Vlevo |
Len |
LTrim |
Střední |
PadLeft |
PadRight |
PCase |
Nahradit |
ReplaceChars |
Vpravo |
RTrim |
Zastřihnout |
UCase |
Slovo |
Zvláštní
Importované hodnoty