Microsoft Entra Connect Sync: inzicht in declaratieve inrichting
In dit onderwerp wordt het configuratiemodel in Microsoft Entra Verbinding maken uitgelegd. Het model wordt declaratieve inrichting genoemd en hiermee kunt u eenvoudig een configuratiewijziging aanbrengen. Veel dingen die in dit onderwerp worden beschreven, zijn geavanceerd en zijn niet vereist voor de meeste klantscenario's.
Overzicht
Declaratieve inrichting verwerkt objecten die afkomstig zijn van een verbonden bronmap en bepaalt hoe het object en de kenmerken moeten worden getransformeerd van een bron naar een doel. Een object wordt verwerkt in een synchronisatiepijplijn en de pijplijn is hetzelfde voor binnenkomende en uitgaande regels. Een binnenkomende regel is van een verbindingslijnruimte naar de metaverse en een uitgaande regel is van de metaverse naar een verbindingslijnruimte.
De pijplijn heeft verschillende modules. Elke is verantwoordelijk voor één concept in objectsynchronisatie.
- Bron, het bronobject
- Bereik, vindt alle synchronisatieregels die binnen het bereik vallen
- Join, bepaalt de relatie tussen verbindingsruimte en metaverse
- Transformeren, berekenen hoe kenmerken moeten worden getransformeerd en stromen
- Prioriteit, conflicterende kenmerkbijdragen oplossen
- Doel, Het doelobject
Bereik
De scopemodule evalueert een object en bepaalt de regels die binnen het bereik vallen en moeten worden opgenomen in de verwerking. Afhankelijk van de kenmerkenwaarden van het object, worden verschillende synchronisatieregels geëvalueerd als binnen het bereik. Een uitgeschakelde gebruiker zonder Exchange-postvak heeft bijvoorbeeld andere regels dan een ingeschakelde gebruiker met een postvak.
Het bereik wordt gedefinieerd als groepen en componenten. De componenten bevinden zich in een groep. Een logische AND wordt gebruikt tussen alle componenten in een groep. Bijvoorbeeld ( afdeling = IT EN land = Denemarken). Er wordt een logische OR gebruikt tussen groepen.
Het bereik in deze afbeelding moet worden gelezen als (afdeling = IT EN land = Denemarken) OF (land=Zweden). Als groep 1 of groep 2 wordt geëvalueerd als waar, is de regel binnen het bereik.
De bereikmodule ondersteunt de volgende bewerkingen.
Operation | Omschrijving |
---|---|
GELIJK AAN, NOTEQUAL | Een tekenreeks vergelijkt die evalueert of de waarde gelijk is aan de waarde in het kenmerk. Zie ISIN en ISNOTIN voor kenmerken met meerdere waarden. |
LESSTHAN, LESSTHAN_OR_EQUAL | Een tekenreeks vergelijkt die evalueert of de waarde kleiner is dan de waarde in het kenmerk. |
BEVAT, NOTCONTAINS | Een tekenreeks vergelijkt die evalueert of de waarde ergens in de waarde in het kenmerk kan worden gevonden. |
STARTSWITH, NOTSTARTSWITH | Een tekenreeks vergelijkt die evalueert of de waarde zich in het begin van de waarde in het kenmerk bevindt. |
ENDSWITH, NOTENDSWITH | Een tekenreeks vergelijkt die evalueert of de waarde zich aan het einde van de waarde in het kenmerk bevindt. |
GREATERTHAN, GREATERTHAN_OR_EQUAL | Een tekenreeks vergelijkt die evalueert of de waarde groter is dan de waarde in het kenmerk. |
ISNULL, ISNOTNULL | Evalueert of het kenmerk ontbreekt in het object. Als het kenmerk niet aanwezig is en daarom null is, bevindt de regel zich binnen het bereik. |
ISIN, ISNOTIN | Evalueert of de waarde aanwezig is in het gedefinieerde kenmerk. Deze bewerking is de variatie met meerdere waarden van EQUAL en NOTEQUAL. Het kenmerk moet een kenmerk met meerdere waarden zijn en als de waarde kan worden gevonden in een van de kenmerkwaarden, is de regel binnen het bereik. |
ISBITSET, ISNOTBITSET | Evalueert of een bepaalde bit is ingesteld. Kan bijvoorbeeld worden gebruikt om de bits in userAccountControl te evalueren om te zien of een gebruiker is ingeschakeld of uitgeschakeld. |
ISMEMBEROF, ISNOTMEMBEROF | De waarde moet een DN bevatten naar een groep in de verbindingslijnruimte. Als het object lid is van de opgegeven groep, bevindt de regel zich binnen het bereik. |
Deelnemen
De joinmodule in de synchronisatiepijplijn is verantwoordelijk voor het vinden van de relatie tussen het object in de bron en een object in het doel. Op een regel voor inkomend verkeer is deze relatie een object in een verbindingslijnruimte die een relatie met een object in de metaverse vindt.
Het doel is om te zien of er al een object in de metaverse staat, gemaakt door een andere Verbinding maken or, moet het worden gekoppeld. In een accountresourceforest moet de gebruiker uit het accountforest bijvoorbeeld worden gekoppeld aan de gebruiker uit het resourceforest.
Joins worden voornamelijk gebruikt op regels voor binnenkomende verbindingen om ruimteobjecten van connectors samen te voegen aan hetzelfde metaverse-object.
De joins worden gedefinieerd als een of meer groepen. Binnen een groep hebt u componenten. Een logische AND wordt gebruikt tussen alle componenten in een groep. Er wordt een logische OR gebruikt tussen groepen. De groepen worden verwerkt in volgorde van boven naar beneden. Wanneer één groep precies één overeenkomst heeft gevonden met een object in het doel, worden er geen andere joinregels geëvalueerd. Als nul of meer dan één object wordt gevonden, wordt de verwerking voortgezet naar de volgende groep regels. Daarom moeten de regels worden gemaakt in de volgorde van de meest expliciete eerste en meer fuzzy aan het einde.
De joins in deze afbeelding worden van boven naar beneden verwerkt. Eerst ziet de synchronisatiepijplijn of er een overeenkomst is op werknemer-id. Zo niet, dan ziet de tweede regel of de accountnaam kan worden gebruikt om de objecten samen te voegen. Als dat ook geen overeenkomst is, is de derde en laatste regel een meer fuzzy overeenkomst met behulp van de naam van de gebruiker.
Als alle joinregels zijn geëvalueerd en er niet precies één overeenkomst is, wordt het koppelingstype op de pagina Beschrijving gebruikt. Als deze optie is ingesteld op Inrichten, wordt er een nieuw object in het doel gemaakt.
Een object mag slechts één synchronisatieregel met joinregels binnen het bereik hebben. Als er meerdere synchronisatieregels zijn waarbij join is gedefinieerd, treedt er een fout op. Prioriteit wordt niet gebruikt om samenvoegingsconflicten op te lossen. Een object moet een joinregel binnen het bereik hebben voor kenmerken die moeten stromen met dezelfde inkomende/uitgaande richting. Als u zowel binnenkomende als uitgaande kenmerken naar hetzelfde object wilt laten stromen, moet u zowel een binnenkomende als een uitgaande synchronisatieregel met join hebben.
Uitgaande join heeft een speciaal gedrag wanneer wordt geprobeerd een object in te richten op een doelconnectorruimte. Het DN-kenmerk wordt gebruikt om eerst een reverse-join uit te proberen. Als er al een object in de doelconnectorruimte met dezelfde DN staat, worden de objecten gekoppeld.
De joinmodule wordt slechts eenmaal geëvalueerd wanneer een nieuwe synchronisatieregel binnen het bereik komt. Wanneer een object is toegevoegd, wordt het niet meer samengevoegd, zelfs niet als aan de joincriteria wordt voldaan. Als u een object wilt loskoppelen, moet de synchronisatieregel die is gekoppeld aan de objecten buiten het bereik vallen.
Metaverse verwijderen
Een metaverse-object blijft zolang er één synchronisatieregel in het bereik is, waarbij koppelingstype is ingesteld op Provision of StickyJoin. Een StickyJoin wordt gebruikt wanneer een Verbinding maken or geen nieuw object mag inrichten voor de metaverse, maar wanneer het lid is, moet het worden verwijderd in de bron voordat het metaverse-object wordt verwijderd.
Wanneer een metaverse-object wordt verwijderd, worden alle objecten die zijn gekoppeld aan een uitgaande synchronisatieregel die is gemarkeerd voor inrichting , gemarkeerd voor een verwijdering.
Transformaties
De transformaties worden gebruikt om te definiëren hoe kenmerken van de bron naar het doel moeten stromen. De stromen kunnen een van de volgende stroomtypen hebben: Direct, Constant of Expression. Een directe stroom, stromen een kenmerkwaarde zoals deze is zonder extra transformaties. Met een constante waarde wordt de opgegeven waarde ingesteld. Een expressie maakt gebruik van de declaratieve inrichtingsexpressietaal om uit te drukken hoe de transformatie moet zijn. De details voor de expressietaal vindt u in het onderwerp over de declaratieve inrichtingsexpressietaal .
Met het selectievakje Eenmaal toepassen wordt gedefinieerd dat het kenmerk alleen moet worden ingesteld wanneer het object in eerste instantie wordt gemaakt. Deze configuratie kan bijvoorbeeld worden gebruikt om een eerste wachtwoord in te stellen voor een nieuw gebruikersobject.
Kenmerkwaarden samenvoegen
In de kenmerkstromen is er een instelling om te bepalen of kenmerken met meerdere waarden moeten worden samengevoegd vanuit verschillende Verbinding maken ors. De standaardwaarde is Update, wat aangeeft dat de synchronisatieregel met de hoogste prioriteit moet winnen.
Er is ook Merge and MergeCaseInsensitive. Met deze opties kunt u waarden uit verschillende bronnen samenvoegen. Het kan bijvoorbeeld worden gebruikt om het kenmerk proxyAddresses uit verschillende forests samen te voegen. Wanneer u deze optie gebruikt, moeten alle synchronisatieregels binnen het bereik van een object hetzelfde samenvoegtype gebruiken. U kunt Update niet definiëren van de ene Verbinding maken or en Samenvoegen van een andere. Als u het probeert, krijgt u een foutmelding.
Het verschil tussen Samenvoegen en MergeCaseInsensitive is het verwerken van dubbele kenmerkwaarden. De synchronisatie-engine zorgt ervoor dat dubbele waarden niet in het doelkenmerk worden ingevoegd. Met MergeCaseInsensitive zijn dubbele waarden met alleen een verschil in het geval dat deze niet aanwezig zijn. U ziet bijvoorbeeld niet zowel 'SMTP:bob@contoso.com' als 'smtp:bob@contoso.com', in het doelkenmerk. Samenvoegen kijkt alleen naar de exacte waarden en meerdere waarden waarbij er alleen een verschil is in het geval dat er sprake is van een verschil.
De optie Vervangen is hetzelfde als Bijwerken, maar wordt niet gebruikt.
Het proces van de kenmerkstroom beheren
Wanneer meerdere regels voor binnenkomende synchronisatie zijn geconfigureerd om bij te dragen aan hetzelfde metaverse-kenmerk, wordt prioriteit gebruikt om de winnaar te bepalen. De synchronisatieregel met de hoogste prioriteit (laagste numerieke waarde) draagt de waarde bij. Hetzelfde gebeurt voor uitgaande regels. De synchronisatieregel met de hoogste prioriteit wint en draagt de waarde bij aan de verbonden map.
In sommige gevallen moet de synchronisatieregel bepalen hoe andere regels zich moeten gedragen in plaats van een waarde bij te dragen. Er zijn enkele speciale letterlijke gegevens die voor deze zaak worden gebruikt.
Voor binnenkomende synchronisatieregels kan de letterlijke NULL worden gebruikt om aan te geven dat de stroom geen waarde heeft om bij te dragen. Een andere regel met een lagere prioriteit kan een waarde bijdragen. Als er geen regel heeft bijgedragen aan een waarde, wordt het metaverse-kenmerk verwijderd. Als NULL voor een uitgaande regel de uiteindelijke waarde is nadat alle synchronisatieregels zijn verwerkt, wordt de waarde verwijderd in de verbonden map.
De letterlijke gezaghebbendeNull is vergelijkbaar met NULL, maar met het verschil dat geen lagere prioriteitsregels een waarde kunnen bijdragen.
Een kenmerkstroom kan ook IgnoreThisFlow gebruiken. Het is vergelijkbaar met NULL in de zin dat er niets is om bij te dragen. Het verschil is dat er geen bestaande waarde in het doel wordt verwijderd. Het is alsof de kenmerkstroom er nog nooit is geweest.
Dit is een voorbeeld:
In Out to AD - User Exchange hybrid is de volgende stroom te vinden:
IIF([cloudSOAExchMailbox] = True,[cloudMSExchSafeSendersHash],IgnoreThisFlow)
Deze expressie moet worden gelezen als: als het gebruikerspostvak zich in Microsoft Entra-id bevindt, stroomt u het kenmerk van Microsoft Entra-id naar Active Directory. Zo niet, dan gaat u niets terug naar Active Directory. In dit geval blijft de bestaande waarde in AD behouden.
ImportedValue
De functie ImportedValue is anders dan alle andere functies, omdat de kenmerknaam tussen aanhalingstekens moet staan in plaats van vierkante haken:
ImportedValue("proxyAddresses")
.
Inkomende synchronisatie heeft een concept van ervan uitgaande dat een kenmerk dat nog geen verbonden map heeft bereikt, deze uiteindelijk op een bepaald moment bereikt, zodat synchronisatie normaal gesproken een kenmerkwaarde ophaalt uit de respectieve connectorruimte, zelfs als deze nog niet is geëxporteerd of als er een fout is opgetreden tijdens het exporteren. In sommige gevallen is het echter belangrijk om alleen een waarde te synchroniseren die is geëxporteerd en bevestigd tijdens het importeren uit de verbonden directory. Deze functie vindt u in meerdere out-of-box transformatieregels van In AD/AAD, waarbij het kenmerk alleen moet worden gesynchroniseerd wanneer is bevestigd dat de waarde is geëxporteerd.
Een voorbeeld van deze functie is te vinden in de out-of-box-synchronisatieregel in van AD: gebruiker die algemeen is vanuit Exchange, voor proxyAddresses-kenmerkstroom met Hybrid Exchange. Wanneer de ProxyAddresses van een gebruiker worden toegevoegd, retourneert de functie ImportedValue bijvoorbeeld alleen de nieuwe waarde nadat deze is bevestigd uit de volgende importstap:
proxyAddresses
<- RemoveDuplicates(Trim(ImportedValue("proxyAddresses")))
Deze functie is vereist wanneer de doelmap een geëxporteerde kenmerkwaarde op de achtergrond kan wijzigen of negeren en we willen dat de synchronisatie alleen bevestigde kenmerkwaarden verwerkt.
Prioriteit
Wanneer verschillende synchronisatieregels proberen dezelfde kenmerkwaarde bij te dragen aan het doel, wordt de prioriteitswaarde gebruikt om de winnaar te bepalen. De regel met de hoogste prioriteit, laagste numerieke waarde, gaat het kenmerk in een conflict bijdragen.
Deze volgorde kan worden gebruikt om nauwkeurigere kenmerkstromen te definiëren voor een kleine subset van objecten. De kant-en-klare regels zorgen er bijvoorbeeld voor dat kenmerken van een ingeschakeld account (User AccountEnabled) voorrang hebben op andere accounts.
Prioriteit kan worden gedefinieerd tussen Verbinding maken oren. Hierdoor kunnen Verbinding maken ors met betere gegevens eerst waarden bijdragen.
Meerdere objecten uit dezelfde verbindingslijnruimte
Het is niet mogelijk om meerdere objecten in dezelfde verbindingslijnruimte aan hetzelfde metaverse-object te koppelen. Deze configuratie wordt gerapporteerd als dubbelzinnig, zelfs als de kenmerken in de bron dezelfde waarde hebben.
Volgende stappen
- Lees meer over de expressietaal in Declaratieve inrichtingsexpressies begrijpen.
- Bekijk hoe declaratieve inrichting wordt gebruikt in out-of-box in Understanding the default configuration.
- Lees hoe u een praktische wijziging aanbrengt met behulp van declaratieve inrichting in De standaardconfiguratie wijzigen.
- Lees verder hoe gebruikers en contactpersonen samenwerken in Understanding Users and Contacts.
Overzichtsonderwerpen
- Microsoft Entra Verbinding maken Sync: Synchronisatie begrijpen en aanpassen
- Uw on-premises identiteiten integreren met Microsoft Entra-id
Naslagonderwerpen