AD Writeback Agent

AD Writeback Agent holder attributter på eksisterende AD-brugerkonti opdateret med data fra SOFD Core (fx navn, titel og telefonnummer) ud fra en konfigurerbar feltmapning. Dette dokument beskriver installation og konfiguration.

KomponentServicenavnDownloadÆndringslog
AD Writeback AgentSOFD Core AD Writeback AgentDownloadÆndringslog

Indledning#

Forudsætninger#

Windows Server#

Servicen skal installeres på en Windows maskine med:

  • Netværksmæssig adgang til kommunens AD
  • Netværksmæssig adgang til SOFD Core i skyen via HTTPS.
  • .NET Framework 4.6.1 eller nyere

Service konto i AD#

Der skal oprettes en service konto i kommunes AD.

Kontoen skal have skriveadgang til alle de bruger-attributter der skal opdateres fra SOFD Core, inkl CPR nummer attributten.

Bemærk at kontoen skal være medlem af Domain Admins hvis den skal kunne opdatere oplysninger på brugere som er eller har været medlem af en beskyttet gruppe (f.eks. andre domain admins). En konto som “kun” er Account Operator kan ikke opdatere oplysninger på en bruger som har attributten AdminCount sat til 1.

API bruger til SOFD Core backend#

Der skal i konfigurationen indtastes en API nøgle til SOFD Core. Denne kan oprettes i SOFD Cores administrative brugergrænseflade. Agenten kan nøjes med læseadgang.

Installation af Windows Service#

Der skal installeres og konfigureres en Windows Service på en server hvor der er netværksmæssig adgang til kommunens AD samt SOFD Core i skyen via HTTPS.

Download service#

Hent installeren via download-linket øverst på siden eller fra den samlede Download-oversigt.

Konfiguration af service#

Konfiguration af servicen foretages i applicationSettings sektionen i xml-filen SOFD Core AD Writeback Agent.exe.config som ligger i roden af installationsmappen (default C:\Program Files (x86)\Digital Identity\SofdCoreAdWritebackAgent).

IndstillingEksempelKommentar
SofdUrlhttps://kommune.sofd.ioPeger på SOFD installationen for kommunen
SofdApiKeyxxxxxxDet kodeord som er valgt til klienten i SOFD
ActiveDirectoryWritebackIncludeOUsOU=Kultur,OU=Administration,OU=Kommune,DC=digitalidentity,DC=dk; OU=IT og Digitalisering,OU=Administration,OU=Kommune,DC=digitalidentity,DC=dkBegræns opdatering til brugere i disse OUer. Flere OUer kan angives adskilt med semikolon
ActiveDirectoryWritebackExcludeOUsOU=Kultur,OU=Administration,OU=Kommune,DC=digitalidentity,DC=dk; OU=IT og Digitalisering,OU=Administration,OU=Kommune,DC=digitalidentity,DC=dkUndtag opdatering af brugere i disse Ouer. Flere Ouer kan angives adskilt med semikolon.
ActiveDirectoryEnableManagerUpdateFalseHvis True bliver “manager” attributten på brugernes AD-konti opdateret med lederen for den primære ansættelse i SOFD Core.
ActiveDirectoryManagerUpdateMastersOPUSHvis angivet, vedligeholder agenten kun manager feltet på brugere som har en primær affiliation fra denne master. Flere værdier kan angives adskilt med semikolon. Kan anvendes hvis man f.eks. ikke ønsker at manager feltet skal udfyldes for eksterne brugere som er oprettet direkte via SOFD Core.
ActiveDirectoryManagerUpdateOnlyPrimesTrueHvis denne er sat til true (default), bliver manager kun påført primære AD-konti. Ønskes manager også opdateret på øvrige konti, skal denne sættes til False
ActiveDirectoryManagerUpdateNoClearFalseKun relevant hvis ActiveDirectoryEnableManagerUpdate er sat til true. Hvis denne sættes til true, bliver manager attributten ikke ryddet, selv om den burde blive det jf. data.
ActiveDirectoryManagerUpdateExcludedOrgunits10975924-bb05-4ac3-955d-91980d63b1d5; 26ceb852-b59f-4cda-8c49-cd5850abd3c5Semikolon-separeret liste af enhedsuuider. Tilhørsforhold i disse eller underliggende enheder bliver undtaget når der skal sættes manager attribut i AD.
ActiveDirectoryUserTypeACTIVE_DIRECTORYSkal sættes til værdien “ACTIVE_DIRECTORY”. Anvendes til at styre hvilke kontotyper der replikeres data fra.
ActiveDirectoryEnablePowershellFalseHvis denne sættes til “True” afvikles et custom powershell script hver gang agenten laver en ændring på en bruger i AD. Script sti: ./CustomPowershell/UserChanged.psm1
UploadConfigurationFalseSæt “True” for at den lokale konfiguration bliver uploadet til SOFD Core
EnableFallbackToPrimeAffiliationTrueDefault True. Sæt denne til False hvis der skal være en hård kobling til den ansættelse der er opmærket direkte på brugerkontoen.
FullSyncCron0 30 3 ? * *Cron udtryk, der angiver hvornår der skal køres en fuld synkronisering. Default er hver nat kl. 03:30 som i eksemplet til venstre.
DryRunAttributesFalseHvis “True” udføres en tør-kørsel, hvor agenten kun logger de attribut-ændringer den ville foretage, uden at skrive dem til AD.
CyberArkEnabledFalseSættes til “True” for at hente SOFD API-nøglen fra CyberArk i stedet for direkte fra SofdApiKey.
CyberArkAPIhttps://cyberark.kommune.dkURL’en til kommunens CyberArk Web Service (CCP/AIM). Anvendes når CyberArkEnabled er “True”.
CyberArkAppIdSOFDCoreApp ID i CyberArk der anvendes ved opslag af SOFD API-nøglen.
CyberArkSafeSOFDNavnet på den safe i CyberArk hvor SOFD API-nøglen er gemt.
CyberArkObjectSofdApiKeyNavnet på det objekt i CyberArk safen der indeholder SOFD API-nøglen.

Start af service#

Efter servicen er konfigureret startes den via Windows Services eller tilsvarende kommandolinjeværktøjer. Her er det vigtigt at servicen konfigureres til at starte med den AD konto som har de fornødne rettigheder.

Konfiguration af attribute-opdatering#

Konfigurationen af hvilke attributter der skal holdes opdateret hedder

ad-mapping.xml

Denne fil indeholder en konfiguration af hvilke felter fra SOFD der skal kopieres til hvilke felter i AD.

Der følger en eksempelfil med, som man bør tilrette. Eksempelfilen ser sådan her ud

<?xml version="1.0" encoding="utf-8" ?>
<mappings>
  <mapping sofd="firstname" ad="givenName" />
  <mapping sofd="affiliation.positionName" ad="title" />
  <mapping sofd="affiliation.orgUnit.ean" ad="extensionattribute4" />
</mappings>

For hver attribut fra SOFD man ønsker kopieret til en attribut i AD, skal der være en <mapping> i filen. Denne peger på hhv en attribut i SOFD, og en attribut på bruger-objekterne i AD.

Attributnavnene i AD kan man finde i sit AD, og attributterne i SOFD kan man finde ved at lave API opslag i SOFD (det er API attribut-navnene der skal anvendes).

Digital Identity kan også hjælpe med udfyldelsen af filen.

Hvor der er flere mulige værdier i SOFD, vælges altid den primære at kopiere til AD. Fx den tredje mapping i eksempelfilen, hvor der står

<mapping sofd="affiliation.orgUnit.ean" ad="extensionattribute4" />

En “affiliation” er et tilhørsforhold, og en medarbejder kan have flere tilhørsforhold (fx flere ansættelser). Når man laver en mapning på denne måde, så vælges det tilhørsforhold som er opmærket som det primære i SOFD.

“affiliation.orgUnit.ean” fortolkes som

  • Vælg det primære tilhørsforhold for brugeren
  • Find den enhed som tilhørsforholdet er knyttet til
  • Udlæse EAN nummeret på den enhed
  • Kopier værdien over i extensionattribute4 på bruger-objektet i AD

Bemærk det er kun muligt at kopiere enkelt-attributter fra SOFD Core til AD via denne mekanisme. Man kan ikke flette flere SOFD Core attributter og kopiere dem til ét felt i AD, og man kan ikke flette attributter fra SOFD Core med attributter i AD, og kopiere dem til et nyt felt i AD.

Ændringslog#

Ændringslog for AD Writeback Agent. Nyeste version øverst.

VersionDatoÆndring
2.47.008.05.2026Manager-attributten opdateres nu under delta-sync, og ændringer af enhedens leder udløser en fuld synkronisering (kræver OS2sofd 2026R1-build efter 8. maj)
2.46.016.04.2026Tilføjet upper()- og lower()-funktioner til DSL, understøttelse af localExtensions på tilhørsforhold, samt en valgfri casing-parameter til validCN()
2.45.009.04.2026Tilføjet professionName til tilhørsforholds-modellen og opdateret fallback-rækkefølgen for positionCalculatedName
2.44.009.03.2026Tilføjet superiorLevel og subordinateLevel til tilhørsforholds-modellen
2.43.027.01.2026Justeret xml-mapping-parseren
2.43.021.01.2026Tilføjet validCN-syntaks til at understøtte cn med maks. 64 tegn
2.42.028.11.2025Tilføjet sofdPaused xml-attribut samt understøttelse af LocalExtensions
2.41.016.10.2025Ændret binding-indstillinger ved forbindelse til AD
2.40.016.10.2025DefaultValue for tags kan nu være strengværdier
2.39.015.09.2025Rettet logningsfejl ved manglende rettigheder til at opdatere AD
2.38.112.06.2025Tilføjet phoneformat-metode
2.38.011.06.2025Understøtter superiorLevel og subordinateLevel i writeback (kræver SOFD 2025R2)
2.37.002.05.2025Understøttelse af searchWords i mappings
2.36.109.05.2025Tilføjet indstillingen ActiveDirectoryWritebackIncludeOUs
2.36.003.04.2025Dryrun-indstilling til attributter
2.35.119.03.2025Flytter ikke længere deaktiverede brugere
2.35.006.03.2025Kan nu flytte brugere til OU
2.34.015.01.2025Tilføjet liste-mappings
2.33.004.12.2024Tilføjet felterne calculatedFirstname og calculatedSurname
2.32.015.10.2024Tilføjet vendor til tilhørsforholds-modellen
2.31.023.08.2024Tilføjet understøttelse af inheritedEan-feltet
2.30.001.08.2024Tilføjet understøttelse af CyberArk (Privileged Access Management)
2.29.001.07.2024Tilføjet orgunit._X-syntaks til at gå X niveauer OP fra tilhørsforholdets ou-pointer, samt begrænsning af initialer til maks. 6 tegn
2.28.019.06.2024Rettet fejl ved brug af indlejrede parent-org-udtryk i xml-mapping
2.27.018.05.2024Understøtter positionShort fra OPUS
2.26.012.04.2024Rydder ikke længere manager for brugere i ActiveDirectoryManagerUpdateExcludedOrgunits
2.25.010.04.2024ActiveDirectoryManagerUpdateExcludedOrgunits udelukker nu også underenheder til den angivne enheds uuid
2.24.019.02.2024Tilføjet parent-funktion til orgunit-mappings
2.23.005.01.2024Tilføjet orgunit email, sd employeeId, homepage og authorizationcode til mappings
2.22.004.01.2024Gjort fuld synkronisering konfigurerbar
2.21.304.12.2023Tilføjet noget logning
2.21.214.09.2023Rullet en tidligere rettelse tilbage (havde utilsigtede sideeffekter)
2.21.113.09.2023Rettet fejl i tag-syntaksen
2.21.030.08.2023Respekterer nu alternativ OrgUnit på tilhørsforhold
2.20.001.08.2023Tilføjet kombitUuid til User
2.19.026.06.2023Rettet mindre fejl i replace-logikken ved rydning af felter
2.18.026.06.2023Tilføjet NOREPLACE-flag på AD-feltet for at undgå at overskrive værdier i AD
2.17.022.06.2023Tilføjet “>"-operator i orgunit-mappings
2.16.003.05.2023Rettet kompatibilitetsfejl med nyeste version af SOFD Core
2.15.127.01.2023Fjernet standard-mapping der var tilføjet ved en fejl
2.15.027.01.2023Kan nu udelukke enheder fra manager-opdatering
2.14.009.01.2023Rettet fejl ved tildeling af lederes ledere
2.13.012.12.2022Tilføjet personCalculatedName på person
2.12.008.12.2022Tilføjet egenskaben opusEmployeeId på tilhørsforhold
2.11.217.11.2022Tilføjet egenskaben phoneNumber45 på telefoner
2.11.116.11.2022Rettet et par fejl ved mapping af enheders telefoner
2.11.008.11.2022Tilføjet en trim()-metode
2.10.107.11.2022Rettet null pointer-undtagelse i format()-metoden
2.10.002.11.2022Tilføjet metoderne cprformat() og replace()
2.9.124.10.2022Rettet en fejl i opususer-mapping når der ikke findes en opus-bruger
2.9.021.10.2022Tilføjet pad()-metode til at udfylde felter med præfiks-tegn
2.8.514.09.2022Rettet fejl ved rydning af manager-feltet når managerNoClear er sat til true
2.8.407.09.2022Tilføjet felter for stillingens visningsnavn
2.8.301.09.2022Tilføjet flere felter til “Felter.txt”
2.8.225.08.2022Writeback bruger nu enhedens displayName hvis den findes
2.8.115.06.2022Telefoner sorteres nu korrekt efter type-prime i stedet for prime
2.8.010.05.2022Kan nu konfigurere manager-opdatering med NoClear-indstilling, så manager-attributten ikke ryddes
2.7.301.03.2022Join-udtryk evalueres nu til null, hvis en af join-parametrene er null.
2.7.221.02.2022Rettet offset-fejl i deltasync
2.7.130.01.2022Rettet feltnavne på orgunit
2.7.028.01.2022Tilføjet flere navnefelter til OrgUnit
2.6.427.01.2022Custom PowerShell indlæses nu kun ved behov
2.6.321.01.2022Tilføjet join-metode til DSL. Tilføjet mulighed for at slå fallback til primært tilhørsforhold fra.
2.6.218.01.2022Manager-opdatering understøtter nu mapping via brugerens employee_id
2.6.105.01.2022Mindre fejlrettelser i kald af custom PowerShell
2.6.028.12.2021Understøttelse af kald af custom PowerShell-script efter en bruger er ændret i AD
2.5.022.12.2021Understøttelse af den nye substitute (vikar) affiliationType (kræves for at bruge vikar-modulet i SOFD Core)
2.4.018.10.2021Understøtter EmployeeID-reference på User-objekter til mapping af tilhørsforholdsdata (fallback til primært tilhørsforhold uden mapping)
2.3.010.06.2021Understøtter et NOCLEAR-flag på AD-feltet, så feltet ikke ryddes hvis data ikke længere findes i SOFD
2.2.107.06.2021Tilføjet rettelser til versionering
2.2.003.06.2021Tillader mapping af felter fra User-objektet i SOFD til det tilsvarende User-objekt i AD (fx employeeId)
2.1.220.05.2021Rettet fejl i ^-DSL-syntaksen
2.1.119.05.2021Tilføjet isnull-metode til writeback-DSL.
2.1.019.05.2021Understøtter TLS 1.2
2.0.019.04.2021Udskilt Writeback Agent som selvstændigt modul
1.6.825.03.2021Tilføjet prefix-metode til writeback-DSL.
1.6.723.03.2021Rettet fejl i OU-udelukkelse. Tilføjet master-filter for Manager.
1.6.619.03.2021Rettet Manager-fejl. Tilføjet OU-udelukkelseskonfiguration til writeback.
1.6.515.03.2021Rettet fejl i tag-DSL
1.6.412.03.2021Rettet fejl ved kald af DeactivateExchange-PowerShell
1.6.310.03.2021Tilføjet static-metode til writeback-DSL. Tilføjet håndtering af accountExpires i writeback
1.6.205.03.2021Tilføjet understøttelse af telefontyper. Tilføjet left- og right-funktion til writeback-DSL
1.6.124.02.2021Rettet NPE-undtagelse når brugeren ikke har et primært tilhørsforhold. Fjernet kravet om ExchangeServer-egenskaben når der køres med ExchangeOnlyPowershell=true.
1.6.022.02.2021Understøttelse af kun at køre PowerShell ved oprettelse/sletning i Exchange
1.5.404.02.2021Rettet nedarvningsfejl i tag-mapping
1.5.302.02.2021Rettet fejl ved skrivning af samme sofd-værdi til flere AD-attributter. Tilføjet understøttelse af tags ved skrivning til AD-attributter.
1.5.214.12.2020Rettet fejl i ExchangeService, der gjorde at PowerShell-sessioner ikke blev frigivet korrekt
1.5.111.12.2020Understøttelse af unilogin-mapping i writeback
1.5.010.11.2020Understøtter vedligehold af AD’ets manager-attribut
1.4.121.10.2020Understøtter concat() til attribut-writeback
1.4.029.09.2020Implementering af ny navnestandard (kræver at SOFD Core også opdateres)
1.3.628.09.2020Tilføjet quickfix til EmployeeID-matchningsproblem ved genaktivering af AD-konti
1.3.503.09.2020Skiftet til 64bit. Kan nu bruge PSSnapin ved forbindelse til Exchange.
1.3.428.08.2020Yderligere logning når brugernavn ikke kan genereres
1.3.327.08.2020Fejlrettelse til e-mailadressen i OPUS-mailudsendelse
1.3.214.08.2020Rettet PowerShell-pipeline-fejl ved oprettelse af Exchange-postkasse
1.3.107.08.2020Sætter Alias og EmailPolicy ved aktivering af remote-postkasse
1.3.006.08.2020Quickfixes til brugernavnsgenerering for Exchange og OPUS (midlertidigt, indtil en langsigtet løsning laves)
1.2.404.08.2020Sender EmailAlias til Exchange-PowerShell-scripts
1.2.324.07.2020Understøtter alle telefontyper
1.2.230.06.2020Understøtter konti med bindestreg-CPR ved genaktivering
1.2.125.06.2020Rettet fejl i den nye brugernavnsgenerator
1.2.012.06.2020Understøtter userIds med fast længde
1.1.022.04.2020Tillader upload af den lokale konfiguration til SOFD Core
1.0.403.04.2020Ændret adfærd for EmployeeID-feltet, så det også kan sættes i ikke-singleUser-tilfælde
1.0.302.04.2020Rettet tastefejl i logbesked, og rettet mappe-placering af ad-mapping.xml
1.0.229.03.2020Tilføjet -Confirm:$false til Disable-Mailbox-kommandoer for Exchange
1.0.128.03.2020Tilføjet genereret userId til statusbeskeden i SOFD Core GUI; rettet fejl i Attribute Writeback, der forårsagede en FULD synkronisering hvert 5. minut
1.0.026.03.2020Opdateret med rettelse for userTypes