Designdokument for AD MicroService

AD MicroService er en mikrotjeneste som besørger oppdatering av objekter i Active Directory ved endring i kildesystemer.

<style type="text/css">/* :Author: David Goodger (goodger@python.org) :Id: $Id: html4css1.css 7056 2011-06-17 10:50:48Z milde $ :Copyright: This stylesheet has been placed in the public domain. Default cascading style sheet for the HTML output of Docutils. See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to customize this style sheet. */ /* used to remove borders from tables and images */ .borderless, table.borderless td, table.borderless th { border: 0 } table.borderless td, table.borderless th { /* Override padding for "table.docutils td" with "! important". The right padding separates the table cells. */ padding: 0 0.5em 0 0 ! important } .first { /* Override more specific margin styles with "! important". */ margin-top: 0 ! important } .last, .with-subtitle { margin-bottom: 0 ! important } .hidden { display: none } a.toc-backref { text-decoration: none ; color: black } blockquote.epigraph { margin: 2em 5em ; } dl.docutils dd { margin-bottom: 0.5em } object[type="image/svg+xml"], object[type="application/x-shockwave-flash"] { overflow: hidden; } /* Uncomment (and remove this text!) to get bold-faced definition list terms dl.docutils dt { font-weight: bold } */ div.abstract { margin: 2em 5em } div.abstract p.topic-title { font-weight: bold ; text-align: center } div.admonition, div.attention, div.caution, div.danger, div.error, div.hint, div.important, div.note, div.tip, div.warning { margin: 2em ; border: medium outset ; padding: 1em } div.admonition p.admonition-title, div.hint p.admonition-title, div.important p.admonition-title, div.note p.admonition-title, div.tip p.admonition-title { font-weight: bold ; font-family: sans-serif } div.attention p.admonition-title, div.caution p.admonition-title, div.danger p.admonition-title, div.error p.admonition-title, div.warning p.admonition-title { color: red ; font-weight: bold ; font-family: sans-serif } /* Uncomment (and remove this text!) to get reduced vertical space in compound paragraphs. div.compound .compound-first, div.compound .compound-middle { margin-bottom: 0.5em } div.compound .compound-last, div.compound .compound-middle { margin-top: 0.5em } */ div.dedication { margin: 2em 5em ; text-align: center ; font-style: italic } div.dedication p.topic-title { font-weight: bold ; font-style: normal } div.figure { margin-left: 2em ; margin-right: 2em } div.footer, div.header { clear: both; font-size: smaller } div.line-block { display: block ; margin-top: 1em ; margin-bottom: 1em } div.line-block div.line-block { margin-top: 0 ; margin-bottom: 0 ; margin-left: 1.5em } div.sidebar { margin: 0 0 0.5em 1em ; border: medium outset ; padding: 1em ; background-color: #ffffee ; width: 40% ; float: right ; clear: right } div.sidebar p.rubric { font-family: sans-serif ; font-size: medium } div.system-messages { margin: 5em } div.system-messages h1 { color: red } div.system-message { border: medium outset ; padding: 1em } div.system-message p.system-message-title { color: red ; font-weight: bold } div.topic { margin: 2em } h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { margin-top: 0.4em } h1.title { text-align: center } h2.subtitle { text-align: center } hr.docutils { width: 75% } img.align-left, .figure.align-left, object.align-left { clear: left ; float: left ; margin-right: 1em } img.align-right, .figure.align-right, object.align-right { clear: right ; float: right ; margin-left: 1em } img.align-center, .figure.align-center, object.align-center { display: block; margin-left: auto; margin-right: auto; } .align-left { text-align: left } .align-center { clear: both ; text-align: center } .align-right { text-align: right } /* reset inner alignment in figures */ div.align-right { text-align: inherit } /* div.align-center * { */ /* text-align: left } */ ol.simple, ul.simple { margin-bottom: 1em } ol.arabic { list-style: decimal } ol.loweralpha { list-style: lower-alpha } ol.upperalpha { list-style: upper-alpha } ol.lowerroman { list-style: lower-roman } ol.upperroman { list-style: upper-roman } p.attribution { text-align: right ; margin-left: 50% } p.caption { font-style: italic } p.credits { font-style: italic ; font-size: smaller } p.label { white-space: nowrap } p.rubric { font-weight: bold ; font-size: larger ; color: maroon ; text-align: center } p.sidebar-title { font-family: sans-serif ; font-weight: bold ; font-size: larger } p.sidebar-subtitle { font-family: sans-serif ; font-weight: bold } p.topic-title { font-weight: bold } pre.address { margin-bottom: 0 ; margin-top: 0 ; font: inherit } pre.literal-block, pre.doctest-block, pre.math { margin-left: 2em ; margin-right: 2em } span.classifier { font-family: sans-serif ; font-style: oblique } span.classifier-delimiter { font-family: sans-serif ; font-weight: bold } span.interpreted { font-family: sans-serif } span.option { white-space: nowrap } span.pre { white-space: pre } span.problematic { color: red } span.section-subtitle { /* font-size relative to parent (h1..h6 element) */ font-size: 80% } table.citation { border-left: solid 1px gray; margin-left: 1px } table.docinfo { margin: 2em 4em } table.docutils { margin-top: 0.5em ; margin-bottom: 0.5em } table.footnote { border-left: solid 1px black; margin-left: 1px } table.docutils td, table.docutils th, table.docinfo td, table.docinfo th { padding-left: 0.5em ; padding-right: 0.5em ; vertical-align: top } table.docutils th.field-name, table.docinfo th.docinfo-name { font-weight: bold ; text-align: left ; white-space: nowrap ; padding-left: 0 } h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { font-size: 100% } ul.auto-toc { list-style-type: none } </style> <div class="document" id="mal-for-designdokumenter"> <div class="section" id="innledning"> <h2>1 Innledning</h2> <p>AD MicroService besørger oppdatering av bruker- og gruppeinformasjon i Active Directory.</p> <p>Bruker- og gruppeinformasjonen stammer fra <a href="https://www.usit.uio.no/om/tjenestegrupper/cerebrum">Cerebrum</a>, og benyttes av mange forskjellige systemer til autentisering og autorisasjon.</p> <p>Tjenesten ble eid av KIA (enhet er nå lagt ned) og ble utviklet av <a href="https://www.usit.uio.no/om/organisasjon/iti/int/">INT</a>. Mulig den overtas av <a href="https://www.usit.uio.no/om/organisasjon/iti/ops/">OPS</a>.</p> <h3>1.1 Brukerroller</h3> <ul> <li><a href="http://www.usit.uio.no/om/tjenestegrupper/activedirectory/">Tjenestegruppen</a> for <a href="/om/organisasjon/iti/gsd/active-directory/driftsdokumenter/designdokument-ad-uio-no.html">Active Directory</a></li> <li>Alle brukere av tjenester som bruker Active Directory som datalager for tilgangskontroll</li> </ul> </div> <div class="section" id="redegjorelse"> <h2>2 Redegjørelse</h2> <p>Det har tidligere vært utviklet to forskjellige AD-synkroniseringer. Felles for disse er en høy innbinding til Cerebrum gjennom bruk av Cerebrums Python API. Følgelig tar det tid å få implementert endringer i synkroniseringen da det kreves kjennskap til både Cerebrums interne API og Python.</p> <p>Ny synkroniseringsmetode er implementert som en mikrotjeneste i tråd med UiOs <a href="http://www.uio.no/tjenester/it/sikkerhet/integrasjonsarkitektur">integrasjonsarkitektur</a>, og belager seg på uttrekk av data fra kildesystem via Web Services på bakgrunn av meldinger om endringer. Mikrotjenesten kan utvides ved å skrive program snutter i PowerShell, noe som gjør utvidelse tilgjengelig for Windows-driftere. Dette er også et steg videre i rendyrking av Cerebrum som BAS, da forettningslogikk skilles ut.</p> <p>De forskjellige komponentene som AD MicroService er bygget opp av, kan i fremtiden skilles ut og fra hverandre slik at man får et gjennbrukbart rammeverk for fremtidige integrasjoner på Windows-plattformen. Se punkt  3.3 for systemets deler.</p> <p>Fleksibiliteten som følger med den nye synkroniseringsmetode medfører at man raskt kan tilpasse integrasjoner. Skulle det eksempelvis være behov for å benytte data fra et nytt kildesystem (f.eks. SAP), kan man enkelt og raskt tilpasse seg uten å måtte utføre en dyp inngripen i støttesystemer.</p> </div> <div class="section" id="detaljebeskrivelse"> <h2>3 Detaljebeskrivelse</h2> </div> <div class="section" id="teknisk-formal"> <h3>3.1 Teknisk formål</h3> <p>Det refereres til innledningen.</p> </div> <div class="section" id="hoynivadesign-overordnet-design"> <h3>3.2 Plassering i systemlandskapet</h3> <p>Følgende illustrasjon beskriver endringsflyten i ADMicroService, og dens posisjon i <a href="http://www.uio.no/tjenester/it/sikkerhet/integrasjonsarkitektur">integrasjonsarkitekturen</a>.</p> <p>Melding om endring flyter fra kildesystemet Cerebrum til AD MicroService via meldingstjenesten. AD MicroService er deretter ansvarlig for å uthente datagrunnlag fra kildesystemet, og provisjonere passende i Active Directory.</p> <figure class="image"><img alt="" height="316" src="/om/organisasjon/iti/int/faglig/designdokumenter/ad-microservice-filer/ad-microservice.png" width="1161" loading="lazy"/></figure> </div> <div class="section" id="lavnivadesign-design-av-enkeltkomponenter"> <h3>3.3 Lavnivådesign</h3> <p>ADMicroService består i hovedsak av tre komponenter:</p> <ul> <li>Kjernetjenesten<br/> Ansvarlig for å registrere AD MicroService som en Service i Windows, samt hente meldinger fra meldingstjenesten</li> <li>Håndteringsvelger<br/> Velger hvilke PowerShell Cmdlets som skal kjøres for meldingen, på bakgrunn av en konfigurasjon som angir meldingens egenskaper (handler meldingen om en konto, vil man nødvendigvis kjøre cmdlets relatert til kontoer)</li> <li>Håndteringsfunksjoner<br/> Besørger den faktisk håndteringen av meldingen. Dette kan innebære at det hentes ut informasjon fra aktuelle kildesystem, og ytføres endringer i Active Directory</li> </ul> <p>Pilene i følgende illustrasjon indikerer kall-rekkefølge innad i AD MicroService og mot utenforstående systemer:</p> <figure class="image"><img alt="" height="622" src="/om/organisasjon/iti/int/faglig/designdokumenter/ad-microservice-filer/ad-microservice-detalj.png" width="368" loading="lazy"/></figure> </div> <div class="section" id="avhengigheter"> <h2>4 Avhengigheter</h2> </div> <div class="section" id="systemet-avhenger-av"> <h3>4.1 Systemet avhenger av</h3> <ul> <li>Cerebrum for stammdata</li> <li>Meldingskø for meldinger om hendelser</li> <li>Active Directory for utførelse av endringer i Active Directory</li> </ul> </div> <div class="section" id="andre-systemer-er-avhengige-av"> <h3>4.2 Andre systemer er avhengige av systemet</h3> <ul> <li>Active Directory for provisjonering av data</li> </ul> <p>Andre systemer kan også bli avhengige i fremtiden, da AD MicroService selv skal bli en <a href="https://jira.usit.uio.no/browse/ADMS-10">produsent av meldinger</a>.</p> </div> <div class="section" id="lenker-og-referanser"> <h2>6 Lenker og referanser</h2> <ul class="simple"> <li><a href="https://github.uio.no/IT-OPS/cerebrum-ad-microservice/blob/main/README.md">Dokumentasjon (README)</a></li> <li><a href="https://github.uio.no/IT-OPS/cerebrum-ad-microservice/blob/main/">Kode og konfig</a></li> <li><a href="/om/it-dir/arkiv/nedlagt/fra-bnt/applikasjonsoversikt/cerebrum.html">Applikasjonsbeskrivelse av Cerebrum</a></li> <li><a href="https://jira.usit.uio.no/projects/ADMS">Utviklingssaker for ADMS i Jira</a></li> </ul> </div> </div> </div> </div> <div class="vrtx-date-info"> <span class="published-date-label">Publisert</span> <span class="published-date">18. sep. 2017 21:30 </span> <span class="separator-date"> - </span> <span class="last-modified-date">Sist endret</span> <span class="last-modified-date">26. jan. 2024 22:02</span> </div> <div class="vrtx-social-components"> <a class="vrtx-email-friend" title='Del på e-post' href="mailto:?subject=Designdokument%20for%20AD%20MicroService&body=https%3A%2F%2Fwww.usit.uio.no%2Fom%2Forganisasjon%2Fiti%2Fint%2Ffaglig%2Fdesigndokumenter%2Fdesigndokument-ad-microservice.html"> Del på e-post</a> <div class="vrtx-share-at-component"> <ul> <li class="vrtx-share-at-Facebook"> <a href="https://www.facebook.com/sharer.php?u=https%3A%2F%2Fwww.usit.uio.no%2Fom%2Forganisasjon%2Fiti%2Fint%2Ffaglig%2Fdesigndokumenter%2Fdesigndokument-ad-microservice.html" target="_blank" class="facebook"> Del på Facebook</a> </li> <li class="vrtx-share-at-X"> <a href="https://x.com/intent/tweet?text=Designdokument+for+AD+MicroService&amp;url=https%3A%2F%2Fwww.usit.uio.no%2Fom%2Forganisasjon%2Fiti%2Fint%2Ffaglig%2Fdesigndokumenter%2Fdesigndokument-ad-microservice.html" target="_blank" class="x"> Del på X</a> </li> </ul> </div> </div> </div> </div> <!--stopindex--> </main> </div> <!-- Page footer start --> <footer id="footer-wrapper" class="grid-container faculty-institute-footer"> <div id="footers" class="row"> <div class="footer-content-wrapper"> <div class="footer-title"> <a href="https://www.usit.uio.no/">IT-avdelingen</a> </div> <div class="footer-content"> <div> <h2>Kontakt</h2> <p><a href="/om/kontaktinformasjon/">Kontakt oss</a><br> <a href="/om/finn-fram/">Finn frem</a></p> </div> <div> <h2>Om nettstedet</h2> <p><a href="https://www.uio.no/om/regelverk/personvern/personvernerklering-nett.html">Bruk av informasjonskapsler</a><br> <a href=" https://uustatus.no/nb/erklaringer/publisert/9336562c-fbb2-48db-b3f2-54df3b231a44">Tilgjengelighetserklæring</a></p> </div> </div> <div class="footer-meta-admin"> <h2 class="menu-label">Ansvarlig for denne siden</h2> <p> <a href="mailto:webredaksjon@usit.uio.no">Nettredaksjonen, IT-avdelingen</a> </p> <div class="vrtx-login-manage-component"> <a href="https://www.usit.uio.no/om/organisasjon/iti/int/faglig/designdokumenter/designdokument-ad-microservice.html?authTarget" class="vrtx-login-manage-link" rel="nofollow"> Logg inn </a> </div> </div> </div> </div> </footer> <nav class="grid-container grid-container-top" id="footer-wrapper-back-to-uio"> <div class="row"> <a class="back-to-uio-logo" href="https://www.uio.no/" title="Gå til uio.no"></a> </div> </nav> <script type="module" src='/vrtx/dist/resources/uio2/js/uio2.js'></script> </body> </html>