AD indlæsningsintegration

AD indlæsningsintegration indlæser brugeroplysninger fra Active Directory ind i SOFD Core. Dette dokument beskriver installation og konfiguration.

KomponentServicenavnDownloadÆndringslog
AD indlæsningsintegrationSOFD Core AD Event DispatcherDownloadÆndringslog

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 læseadgang til alle de bruger-attributter der skal læses fra brugerkonti inkl. den attribut som indeholder brugerens cpr-nummer.

Endelig skal systembrugeren også have rettigheder til at replikere data fra Active Directory. Dette vil brugeren automatisk have hvis denne er domæne administrator, men man kan også nøjes med at tilføje enkelte replikerings-rettigheder til brugeren via nedenstående vejledning

  1. Åben “Active Directory Users and Computers” konsollen
  2. Vælg domænet, højreklik, og vælg “Properties”.
  3. Gå til “Security”-fanen, tilføj systembrugeren, og giv brugeren følgende replikeringsrettigheder (sat til “Allow”). Bemærk at den første formodentlig er den eneste, der er nødvendig (alt afhængig af hvilke attributter der skal synkroniseres): a. Replicating Directory Changes b. Replicating Directory Changes All (kun nødvendigt hvis der skal replikeres hemmelige attributter) c. Replicating Directory Changes In Filtered Set (kun nødvendigt hvis attributter der skal synkroniseres er beskyttede)

Bemærk at der kan gå nogle minutter fra denne rettighed er sat, til den slår igennem. Hvis man under kørsel af softwaren får “Access Denied” i loggen i kaldet til Active Directory, så er det disse synkroniseringsrettigheder der mangler.

API bruger til SOFD Core backend#

Der skal i konfigurationen indtastes et brugernavn og kodeord. Disse udleveres af Digital Identity.

Afklaring af cpr-attribut#

Det skal afklares hvilken attribut i AD der indeholder/skal indeholde brugerens cpr-nummer. Det kan eksempelvis være attributten EmployeeNumber.

Det anbefales at den valgte attribut skjules for almindelige brugere ved at tilføje confidentiality bit på attributten. Bemærk at det ikke er alle felter i AD der understøtter denne mulighed.

Dette kan f.eks. gøres via ADSI Edit MMC snap-in ved at tilføje bit 8 (tal-værdi 128) til searchFlags på attributten. Bemærk at hvis searchFlags har en værdi i forvejen, og den ikke i forvejen har bit 8 sat, skal bit 8 (tal-værdi 128) lægges til denne værdi.

Med dette flag sat er det kun brugere med CONTROL_ACCESS rettighed i AD, der kan læse/skrive attributten (default administratorer).

Den valgte attribut til cpr-nummer angives i indstillingen ActiveDirectory.Property.Cpr under konfiguration i det næste afsnit af denne vejledning.

Afklaring af affiliation-attribut#

Det er muligt at lade Active Directory være master for et organisatorisk tilhørsforhold til den autoritative organisation i SOFD Core.

Normalt defineres dette tilhørsforhold via en integration til f.eks. lønsystemet, men der kan være brugere som kun findes i Active Directory, men hvor man alligevel ønsker at indplacere dem organisatorisk. Det kan eksempelvis være eksterne konsulenter.

Hvis man ønsker denne funktionalitet, kan man i indstillingen ActiveDirectory.Property.Affiliation angive navnet på en AD attribut. Brugere hvor der i denne attribut står en værdi der matcher et masterId fra lønsystemet (LOS ID), vil få oprettet et organisatorisk tilhørsforhold til den tilsvarende organisatoriske enhed i SOFD Core.

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 appSettings sektionen i xml-filen SOFDCoreAD.Service.exe.config som ligger i roden af installationsmappen (default C:\Program Files (x86)\Digital Identity\SofdCoreADEventDispatcher).

De indstillinger der skal konfigureres under en standardinstallation er fremhævet med gult (markeret med * i tabellen nedenfor).

IndstillingEksempelKommentar
serilog:*Diverse indstillinger til opsætning af log.
ActiveDirectory.AllowMultipleUsersFalseAngivelse af om synkroniseringen skal understøtte at synkronisere flere brugere med samme cpr-nummer.
ActiveDirectory.ReadAltSecurityIdentitiesFalseHvis “True” indlæses attributten altSecurityIdentities fra AD-brugerne til SOFD Core.
ActiveDirectory.RequireSigningFalseHvis “True” oprettes forbindelsen til AD med krav om signering (Secure + Signing). Anvendes hvis domænet kræver LDAP signing.
ActiveDirectory.TreatDisabledAsEnabledFalseAngivelse af om disablede AD-brugere skal synkroniseres til SOFD Core.
ActiveDirectory.IntegratedSecurityFalseAngivelse af om servicen skal afvikles i kontekst af servicens logon-bruger.
ActiveDirectory.Usernameusername@domainAngivelse af brugernavn til opslag i AD såfremt servicen ikke afvikles i kontekst af servicens logon-bruger jf. ovenstående indstilling. Kan være blank.
ActiveDirectory.PasswordAngivelse af password til AD-bruger såfremt servicen ikke afvikles i kontekst af servicens logon-bruger. Kan være blank.
ActiveDirectory.Filtersamaccountname=a*Angivelse af et ldap-filter til afgrænsning af hvilke AD-konti der skal synkroniseres til SOFD Core. Kan være blank.
ActiveDirectory.Property.Cpr *EmployeeNumberAngivelse af hvilken attribut i AD der indeholder cpr-nummer.
ActiveDirectory.Property.EmployeeIdAngivelse af hvilken attribut i AD der indeholder medarbejderens medarbejdernummer.
ActiveDirectory.Property.MobilemobileAngivelse af hvilken attribut i AD der indeholder medarbejderens mobilnummer
ActiveDirectory.Property.SecretMobilepagerAngivelse af hvilken attribut i AD der indeholder et mobilnummer som medarbejderen ønsker at holde hemmeligt
ActiveDirectory.Property.PhoneAngivelse af hvilken attribut i AD der indeholder medarbejderens telefonnummer
ActiveDirectory.Property.DepartmentNumberAngivelse af hvilken attribut i AD der indeholder afdelingsnummeret
ActiveDirectory.Property.FaxNumberAngivelse af hvilken attribut i AD der indeholder faxnummeret
ActiveDirectory.Property.PhotoAngivelse af hvilken attribut i AD der indeholder medarbejderens billede
ActiveDirectory.Property.AffiliationextensionAttribute1Angivelse af hvilken attribut i AD der angiver organisatorisk tilhørsforhold. Kan være blank.
ActiveDirectory.Property.AffiliationStopDateextensionAttribute2Angivelse af hvilken attribut i AD der angiver stopdato på organisatorisk tilhørsforhold. Anvendes sammen med ovenstående setting.
ActiveDirectory.Property.OU.AffiliationextensionAttribute3Som ActiveDirectory.Property.Affiliation, men master-id’et (LOS ID) for det organisatoriske tilhørsforhold læses fra den angivne attribut på brugerens OU i stedet for på selve brugeren. Kan være blank.
ActiveDirectory.LocalExtention.* (* angiver hvad feltet skal hedde i SOFD Core)wWWHomePageMan kan tilføje et vilkårligt antal af indstillinger med dette prefix for at læse værdien fra denne AD-attribut ind i et custom felt i SOFD Core. Kan udelades.
ActiveDirectory.Cron0/10 * 5-22 ? * * *Cron-udtryk der angiver hvor ofte der læses ændringer fra AD. Default er hvert 10. sekund hvis der angives en værdi i konfigurationen.
ActiveDirectory.ExcludeOUsOU=old users,OU=testkøbing,DC=test,DC=dk; OU=old users 2,OU=testkøbing,DC=test,DC=dkEn semikolon-separeret liste af enheders distinguished name. Brugere i enhederne, der listes her, bliver ikke synkroniseret.
ActiveDirectory.IncludeOUsOU=old users,OU=testkøbing,DC=test,DC=dk; OU=old users 2,OU=testkøbing,DC=test,DC=dkEn semikolon-separeret liste af enheders distinguished name. Såfremt denne liste ikke er tom, er det kun brugere under disse OUer der bliver synkroniseret.
ActiveDirectory.DisableAccountOrdersAttributeextensionAttribute10Såfremt den angive attribut er udfyldt med “true” så vil integrationen sætte alle IDM undtagelsesmarkeringer på personen i OS2sofd. Bemærk at undtagelesmarkeringer ikke fjernes automatisk igen. Det sker kun ved at de manuelt fjernes fra personen i OS2sofd GUI
Backend.Password *API-password til SOFD Core backend API (udleveres af Digital Identity)
CyberArk.EnabledFalseHvis “True” hentes hemmeligheder (backend-password og SOFD ApiKey) fra CyberArk i stedet for at stå i klartekst i konfigurationen.
CyberArk.CyberArkAPIhttps://cyberark.kommune.dkURL’en til kommunens CyberArk Web Service (CCP/AIM). Anvendes når CyberArk.Enabled er “True”.
CyberArk.CyberArkAppIdSOFDCoreApp ID i CyberArk der anvendes ved opslag.
CyberArk.CyberArkSafeSOFDNavnet på den safe i CyberArk hvor hemmelighederne er gemt.
CyberArk.CyberArkObject.SOFDNavnet på objektet i CyberArk-safen der indeholder SOFD ApiKey (svarer til UploadConfig.SofdCoreApiKey).
CyberArk.CyberArkObject.BackendNavnet på objektet i CyberArk-safen der indeholder backend-passwordet (svarer til Backend.Password).
UploadConfig.EnabledFalseSæt til “True” hvis man ønsker at konfigurationsfilen uploades til SOFD Core
UploadConfig.SofdCoreUrlhttps://kommune.sofd.ioSkal udfyldes hvis ovenstående er sat til True. Her skal stå URL’en på SOFD Core
UploadConfig.SofdCoreApiKeyXxxxSkal udfyldes hvis ovenstående er sat til True. Skal udfyldes med ApiKey for AD Dispatcher agenten. Bemærk denne er forskellig fra Backend.Password

Skal OS2sofds genaktiverings-flow (Reaktiver-ordrer) bruges, skal deaktiverede AD-konti også indlæses. Sæt ActiveDirectory.TreatDisabledAsEnabled til True, så deaktiverede konti synkroniseres til SOFD Core. Ellers kan OS2sofd ikke danne reaktiverings-ordrer for genansatte.

Såfremt ActiveDirectory.IntegratedSecurity er sat til “true” i xml-konfigurationen skal service kontoen angives på “Log On” fanen i Windows Services.

På “Log On”-fanen vælges “This account”, og domænekontoen (fx domain\sofdservice) angives med tilhørende password.

Start af service#

Efter servicen er konfigureret startes den via Windows Services eller tilsvarende kommandolinjeværktøjer.

Servicen hedder “SOFD Core AD Event Dispatcher” i Windows Services.

Ved start/genstart af servicen foretages altid en fuld synkronisering.

Det er derfor en god idé at kigge i logfilen om alt er gået godt. Logfilens placering kan ses i indstillingen serilog:write-to:RollingFile.pathFormat.

Logfilen bør få sekunder efter opstart indeholde 3 linjer der ser nogenlunde sådan her ud:

2019-09-04 06:00:04 [Information] [SOFDCoreAD.Service.Job.SynchronizeJob] Performing full sync
2019-09-04 06:00:06 [Information] [SOFDCoreAD.Service.ActiveDirectory.ActiveDirectoryService] Found 4860 users in Active Directory
2019-09-04 06:00:12 [Information] [SOFDCoreAD.Service.Job.SynchronizeJob] Full sync complete

Ændringslog#

Ændringslog for AD indlæsningsintegration. Nyeste version øverst.

VersionDatoÆndring
2.9.108.01.2026Tilføjet fejlhåndtering i tilfælde af at en delta-sync-bruger er blevet flyttet i AD
2.9.003.01.2026Tilføjet understøttelse af indstillingen ActiveDirectory.IncludeOUs
2.8.017.10.2025Ændret binding-indstillinger ved forbindelse til AD
2.7.003.07.2025Tilføjet styring via DisableAccountOrders-attributten
2.6.010.01.2025Tilføjet styring af tilhørsforhold på OU-niveau
2.5.008.01.2025Tilføjet egenskaben AffiliationStopDate til at sætte stopdato på tilhørsforhold
2.4.128.11.2024Kun udførlig logning ved udelukkelse
2.4.007.10.2024Konfigurationsindstilling til at ignorere en bestemt DC
2.3.001.08.2024Tilføjet understøttelse af CyberArk (Privileged Access Management)
2.2.131.01.2024Rettet udlæsning af AccountExpirationDate (den læste 1 dag for tidligt)
2.2.010.01.2024Læser AltSecurityIdentities hvis den indeholder MitID Erhverv-UUID’et
2.1.129.11.2023Rettet off-by-one-fejl i udløb af adgangskode
2.1.024.11.2023Tilføjet understøttelse af at hente whenCreated fra AD-brugeren
2.0.127.07.2023Tilføjet fejlhåndtering ved forbindelse til en DC
2.0.024.10.2022Understøtter indlæsning af UPN i SOFD
1.9.120.04.2022Rettet fejl ved læsning af lastpwdset fra deltasync
1.9.007.03.2022Understøtter DepartmentNumber og FaxNumber på AD-konti
1.8.217.12.2021Kan nu udelukke OU’er
1.8.128.06.2021Rettet NPE ved tjek for kontolåsning
1.8.028.06.2021Læser LockoutTime
1.7.307.06.2021Rettet versionerings-opsætning
1.7.204.06.2021Sender nu ClientVersion-header til backend-API’et
1.7.102.06.2021Rettet problem med udløb på slettede konti
1.7.019.05.2021Bruger TLS 1.2
1.6.019.04.2021Sender AccountExpire-information til SOFD Core
1.5.114.10.2020AD-synkroniseringsinterval er nu et konfigurerbart cron-udtryk
1.5.005.06.2020Understøtter billeder fra AD
1.4.022.05.2020Understøtter læsning af AD-data fra fil i stedet for fra AD
1.3.023.04.2020Understøtter upload af lokal konfiguration til SOFD
1.2.009.04.2020Sender “dage til næste adgangskodeskift” til SOFD
1.1.004.04.2020Forenklet konfiguration, forbedret backend-integration
1.0.224.01.2020Understøttelse af Mobile og SecretMobile
1.0.115.01.2020Tilføjet changelog. Forbindelser til Active Directory via LDAP kan nu kræve signering.
1.0.0Ingen changelog