Microsoft Entra Connect Sync: Inzicht krijgen in declaratieve voorziening
In dit artikel wordt het configuratiemodel in Microsoft Entra Connect uitgelegd. Het model wordt declaratieve inrichting genoemd en hiermee kunt u eenvoudig een configuratiewijziging aanbrengen. Veel dingen die in dit artikel worden beschreven, zijn geavanceerd en zijn niet vereist voor de meeste klantscenario's.
Overzicht
Declaratieve provisioning verwerkt objecten die afkomstig zijn van een bron-aangesloten directory. Hiermee wordt bepaald 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 liggen
- Join, bepaalt de relatie tussen verbindingsruimte en metaverse
- transformeren, bepaalt hoe kenmerken moeten worden getransformeerd en gedistribueerd
- prioriteit, conflicterende kenmerkbijdragen oplossen
- Doel, Het doelobject
Draagwijdte
De scopemodule evalueert een object en bepaalt de regels die binnen het bereik vallen en moeten worden opgenomen in de verwerking. Afhankelijk van de attributenwaarden van het object, worden verschillende synchronisatieregels als relevant beschouwd. Een uitgeschakelde gebruiker zonder Exchange-postvak heeft bijvoorbeeld andere regels dan een ingeschakelde gebruiker met een postvak.
Het bereik wordt gedefinieerd als groepen en clausules. De clausules 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 als waar wordt geëvalueerd, valt de regel binnen het toepassingsgebied.
De bereikmodule ondersteunt de volgende bewerkingen.
Operatie | Beschrijving |
---|---|
GELIJK AAN, NOTEQUAL | Een tekenreeksvergelijking die bepaalt of de waarde gelijk is aan de waarde in het kenmerk. Zie ISIN en ISNOTIN voor kenmerken met meerdere waarden. |
MINDERDAN, MINDERDAN_OF_GELIJK | Een tekenreeksvergelijking die evalueert of een waarde kleiner is dan de waarde in het kenmerk. |
BEVAT, BEVAT NIET | Een tekenreeksvergelijking die evalueert of een waarde ergens binnen de waarde in het kenmerk kan worden gevonden. |
BEGINTMET, BEGINTNIETMET | Een tekenreeksvergelijking die evalueert of de waarde begint met de waarde in het kenmerk. |
ENDSWITH, NOTENDSWITH | Een tekenreeksvergelijking die evalueert of de waarde aan het einde van de waarde in het kenmerk staat. |
GROTERDAN, GROTERDAN_OF_GELIJK_AAN | Een tekenreeksvergelijking die evalueert of de waarde groter is dan die 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 voor een groep in de connectorruimte. Als het object lid is van de opgegeven groep, bevindt de regel zich binnen het bereik. |
Verbinden
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. Bij een inkomende regel is deze relatie een object in een connectorruimte dat een relatie aangaat met een object in de metaverse.
Het doel is om te zien of er al een object in de metaverse staat, gemaakt door een andere connector, waaraan het moet worden gekoppeld. In een account-resource-forest moet de gebruiker uit het account-forest bijvoorbeeld worden gekoppeld aan de gebruiker uit het resource-forest.
Joins worden voornamelijk gebruikt bij binnenkomende regels om objecten in de verbindingsruimte te koppelen aan hetzelfde metaverse-object.
De joins worden gedefinieerd als een of meer groepen. Binnen een groep heeft u clausules. 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 vindt 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 naar de minst expliciete aan het einde.
De verbindingen in deze afbeelding worden van boven naar beneden verwerkt. Eerst controleert de synchronisatiepijplijn of er een overeenkomst is met de 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 worden 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 hebben die van toepassing is voor attributen die in dezelfde inkomende en uitgaande richting moeten worden doorgegeven. 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 vertoont een speciaal gedrag wanneer er geprobeerd wordt een object te provisioneren in de connectorruimte van het doel. 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 samengevoegd, wordt het niet losgekoppeld, zelfs niet als niet meer 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 wordt behouden zolang er één synchronisatieregel binnen het bereik is, met koppelingstype ingesteld op Inrichten of StickyJoin. Een StickyJoin wordt gebruikt wanneer een connector geen nieuw object mag inrichten voor de metaverse. Maar wanneer het zich heeft aangesloten, 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 -provisioning gemarkeerd voor 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 Expressie. Een directe stroom laat kenmerkwaarde as-is door 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 begrip van declaratieve inrichtingsexpressietaal artikel.
Het Eenmalig toepassen selectievakje geeft aan dat het kenmerk alleen moet worden ingesteld wanneer het object oorspronkelijk wordt aangemaakt. 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 connectors. De standaardwaarde is Update, wat aangeeft dat de synchronisatieregel met de hoogste prioriteit moet winnen.
Er is ook Merge en 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 niet bijwerken vanuit de ene connector en samenvoegen vanuit een andere connector definiëren. Als u het probeert, krijgt u een foutmelding.
Het verschil tussen Samenvoegen en MergeCaseInsensitive is hoe dubbele kenmerkwaarden verwerkt worden. De synchronisatie-engine zorgt ervoor dat dubbele waarden niet in het doelkenmerk worden ingevoegd. Met MergeCaseInsensitivezullen dubbele waarden die alleen verschillen in hoofdletters niet aanwezig zijn. U ziet bijvoorbeeld niet zowel SMTP:bob@contoso.comals smtp:bob@contoso.comin 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 beheer van het kenmerkstroomproces
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 voor een uitgaande regel NULL- de uiteindelijke waarde is nadat alle synchronisatieregels zijn verwerkt, wordt de waarde verwijderd in de verbonden map.
De letterlijke AuthoritativeNull is vergelijkbaar met NULL-, maar met het verschil dat geen lagere prioriteitsregels een waarde kunnen bijdragen.
Een kenmerkstroom kan ook IgnoreThisFlowgebruiken. 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 net alsof de kenmerkstroom er nooit is geweest.
Hier volgt een voorbeeld:
In Out to AD - User Exchange hybrid kunt u de volgende stroom vinden:
IIF([cloudSOAExchMailbox] = True,[cloudMSExchSafeSendersHash],IgnoreThisFlow)
Deze expressie moet als volgt worden gelezen: als het gebruikerspostvak zich in Microsoft Entra ID bevindt, stuur dan het kenmerk van Microsoft Entra ID naar Active Directory. Als dat niet het geval is, stuur dan niets terug naar Active Directory. In dit geval blijft de bestaande waarde in AD behouden.
GeïmporteerdeWaarde
De functie ImportedValue is anders dan alle andere functies, omdat de kenmerknaam tussen aanhalingstekens moet staan in plaats van vierkante haken:
ImportedValue("proxyAddresses")
.
Bij binnenkomende synchronisatie wordt ervan uitgegaan dat een kenmerk dat geen verbonden map heeft bereikt, uiteindelijk op een bepaald moment wordt bereikt. Normaal gesproken krijgt synchronisatie dus een kenmerkwaarde van de respectieve connectorruimte. Dit geldt zelfs als deze nog niet is geëxporteerd of als er een fout is opgetreden tijdens het exporteren. Het is echter belangrijk om alleen een waarde te synchroniseren die is geëxporteerd en bevestigd tijdens het importeren uit de verbonden map. Deze functie is te vinden in meerdere "In From AD/AAD" out-of-box transformatieregels, waarbij het kenmerk alleen moet worden gesynchroniseerd wanneer is vastgesteld dat de waarde met succes is geëxporteerd.
Een voorbeeld van deze functie is te vinden in de kant-en-klare synchronisatieregel In van AD: Gebruiker Algemeen van Exchange, voor de attribuutstroom van ProxyAddresses in combinatie met Hybrid Exchange. Wanneer de ProxyAddresses van een gebruiker bijvoorbeeld worden toegevoegd, retourneert de functie ImportedValue 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.
Voorrang
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.
Voorrang kan worden gedefinieerd tussen Connectors. Hierdoor kunnen connectors 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 Understanding Declarative Provisioning Expressions.
- Bekijk hoe declaratieve inrichting kant-en-klaar wordt gebruikt in Begrip van de standaardconfiguratie.
- Zie hoe u een praktische wijziging aanbrengt met behulp van declaratieve inrichting in Een wijziging aanbrengen in de standaardconfiguratie.
- Lees verder hoe gebruikers en contactpersonen samenwerken in Understanding Users and Contacts.
overzichtsonderwerpen
- Microsoft Entra Connect Sync: synchronisatie begrijpen en aanpassen
- Het integreren van uw lokale identiteiten met Microsoft Entra ID
Referentieonderwerpen