Retur type... 13 Eksempel kode... 13. Bemærkninger... 13 Krav... 13 Se også... 13 AuthenticatePerson... 13 Parameter... 13



Relaterede dokumenter
Integrationer. Praktikportal projektet Oktober 2014 Version 1.1

D INTEGRATIONSDESIGN FOR DATAAFTAGERE

Dokumentation af optagelse.dk

Præsentation af BSK regionens identity and access management platform

Vejledning til KLIAKT for institutionsadministratorer

Grænseflade til afhentning af FTU-ansøgninger på Optagelse.dk

Administration af UNI-Login i forbindelse med Biblo

FairSSL Fair priser fair support

Dokumentation af optagelse.dk

FSFIs lynguide til DFRs elektronisk bevissystem

Version 1.0. Side 1 af 18

Integrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere

certificering oprettelse og anvendelse - april 2009

GeoGIS2020. Installation. Udkast. Revision: 1 Udarbejdet af: BrS Dato: Kontrolleret af: Status: Løbende Reference: Godkendt af:

Bilag WebService LoginModule (BSKAuth)

BAAN IVc. Brugervejledning til BAAN Data Navigator

PHP 3 UGERS FORLØB PHP, MYSQL & SQL

AuthorizationCodeService

Intendantur Del 3 Guide til webapplikation til bestilling af mad

DPR Viderestilling. Grænseflade for klient applikation

IIS 8.0 & 8.5 & 10.0 SSL Administration

FairSSL Fair priser fair support

Bemærk! Et PHP script har kun brug for at forbinde én gang til databaseserveren. Det kan så sagtens udføre flere kommandoer vha. denne forbindelse.

Administration generelt

Manual til. MAS Mobile. Sidst opdateret den 24. oktober Morten Jørgensen Version Side 1 af 10

Vejledning til opsætning af mail

Webservice til upload af produktionstilladelser

Vejledning til Teknisk opsætning

Spil Master Mind. Indledning.

Grænseflade til afhentning og indberetning af prøvekarakterer i dansk og matematik på Optagelse.dk

The Boerboel Pedigree

Administrator v1.0 QUICK GUIDE. Green Glass Software V/ Dan Feld-Jakobsen Lojovej Aabenraa / dan@rekvi-skole.dk

OPRETTELSE AF SQL NODE

Indhold. Senest opdateret : 30. juli Side 1 af 5

Produktionsskolernes muligheder i Elevplan

GIS indlæsning af kreditorer og betalingsform. Brugervejledning 1.0

Teknisk Dokumentation

FairSSL Fair priser fair support

Indholdsfortegnelse. EasyIQ IDM 5.4 Brugermanual

Installation af Bilinfo på Windows

Pronestor Catering. Modul 5. Opsætning af Pronestor Catering Side

Indhold. Senest opdateret:03. september Side 1 af 8

OS2faktor. AD FS Connector Vejledning. Version: Date: Author: BSG

Tlf Fax

DOtAB. Teknisk rapport

Netkatalog upload. Forord: Formål:

Kom godt i gang vejledning til TDC IP Telefoni Scale

Mobil timeregistrering

Vejledning til e-conomic integration (v1.1) Via Skyhost

KMD Brugeradministration til Navision og LDV

UNI Login. UNI Login webservice. ws-04

SUP-specifikation, version 2.0. Bilag 9. SUP-Styregruppen. Sikkerhed og samtykke. Udkast af 12. juni Udarbejdet for

Vejledning om personidentifikation i IdM

PHP Snippets. De små korte. Skrevet af Daniel Pedersen

Brugerskabte data en national service (BSD) - produktbeskrivelse

DOtAB. Brugervejledning

Sikre apps på ios og Android. Mads Jensen & Søren

SelskabMasterKom. Per Kjærulf-Møller ApS 13. november KomTabel-layout. Art: 41 Sendes: Begge veje

Navision Stat 9.1. Installationsvejledning til NS CIS Invoker. Overblik. Side 1 af 8. ØSY/TJO/CPS Dato

FSFI s guide til DFR s elektronisk bevissystem

PRIVATLIVSPOLITIK. Sidst opdateret: d. 17/05/2018

Brugerhåndtering i WebUntis - 1

ITD ecmr WEB Services. Af Allan Wisborg, IT Udvikler

TimePlan version Installationsvejledning

Personalestamdata Sidst opdateret /version 2.1/Steen Eske Christensen

Vejledning og beskrivelse til kørselsappen Min Kørsel

Din brugermanual NOKIA

Brugervejledning til. Videreuddannelsessekretariatet

Interaktionsudvikling

Worflow plugin til Dynamics CRM

Netprøver.dk. Brugervejledning til Brugeradministratorer

Conventus og SFGIF Hvordan opretter jeg en ny træner?

e-konto manual e-konto manual Side 1

FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade København Ø

Opsætning af Outlook til Hosted Exchange 2007

Navision Stat 7.0. CVR Integration. Overblik. Side 1 af april 2015 ØS/ØSY/MAG

XML webservice for pensionsordninger. Version 1.0 Draft A

Version Dato Beskrivelse /11/2012 Initial version /03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.

Sundhedsdatastyrelsens Elektroniske Indberetningssystem (SEI)

SWC eksamens-spørgsmål. Oversigt

UC Syddanmark

Byggebasen Javascript

TÅRNBY FORENINGSPORTAL

WinDCCD Brugervejledning. Indhold. Adgangskontrol...2

PID2000 Archive Service

Vejledning til Klubadministratorer

Manual til Den Elektroniske Portefølje i Almen Medicin Tutorlægens udgave

Vejledning til Formandsportalen

Vejledning til registrering som bruger til EudraCT results

Vejledning til KLIAKT for kommuneadministratorer. Dette er en vejledning til brug for indberetning af kollektive tjenesteforseelser i kommunerne.

Specifikationsdokument for servicen PID-CPR

Vejledning til brug af Foreningsportalen

WEB Registrering - Manual

Call Recorder Apresa Brugermanual

ELEKTRONISK INDBERETNING BØRNEDATABASEN VIA DGWS 13/ VERSION 1.02

e-conomic modul til Magento

Vejledning til brugeradministrator. EDI systemet

Transkript:

VIA University College Udviklermanual til MetaDirectory webservice Vejledning og dokumentation i integration til VIA MetaDirectory Thomas Karlson November, 2008

Indholdsfortegnelse 1. MetaDirectory webservice... 9 2. Datatilgang... 9 3. Sikkerhed... 9 3.1 Forbindelsesaftale... 9 3.2 Sikkerheden i databasen... 10 3.3 Godkendelse af forbindelse... 10 3.4 Trafik mellem VIA MetaDirectory og dataaftager... 10 3.5 Datasikkerhed på klientniveau... 10 3.6 Understøttelse... 10 3.6.1 Brug af wrappere... 10 3.6.2 Single Signon (SSO)... 11 Metoder beskrivelser og syntaks... 12 AuthenticateConnection... 12... 12... 12... 12... 13... 13... 13 AuthenticatePerson... 13... 13... 13... 13... 13... 13... 13 Bind... 14 Bind(EmployeeRelation As EmployeeRelation, Location As Location)... 14 Bind (Person As Person, ACL As ACL, IsDenyItem As Boolean)... 14 Bind (Person As Person, Campus As Campus, SetAsPrimary As Boolean)... 15 Bind (Person As Person, Group as Group As Group)... 16 Bind (Person As Person, Organisation As Organisation, SetAsPrimary As Boolean)... 17

Bind (Person As Person, SystemGroup As SystemGroup)... 18 Bind (RelationRole As RelationRole, EmployeeRelation As EmployeeRelation)... 19 Bind (RelationRole As RelationRole, StudentRelation As StudentRelation)... 19 ChangePersonPassword... 20 CreateSSOCryptography... 21 DeleteEmployeeRelation... 21... 21... 21... 22... 22... 22... 22 DeleteGroup... 22... 22... 22... 22... 22... 22... 22 DeleteStudentRelation... 22... 22... 23... 23... 23... 23... 23 GetACL... 23... 23... 23... 23... 23... 23... 23

GetACLItems... 24 GetActions... 24 GetActions (AgentID As Integer)... 24 GetActions (ActionResponse As ActionResponse)... 24 GetActivities... 24... 24... 24... 24... 24... 24... 24 GetActivity... 24... 24... 24... 24... 24... 25... 25 GetCampus... 25 GetCampus (CampusID As Integer)... 25 GetCampus (Location As Location)... 25 GetEmployeeRelation... 26... 26... 26... 26... 26... 26... 26 GetEmployeeRelations... 26... 26... 26... 27... 27

... 27... 27 GetGroup... 27... 27... 27... 27... 27... 27... 27 GetLocation... 27... 27... 28... 28... 28... 28... 28 GetLog... 28... 28... 28... 28... 28... 28... 28 GetMembership... 29 GetMembership (personid as integer)... 29 GetMembership (Group as Group)... 29 GetMembership (Person as Person)... 29 GetOrganisation... 30 GetOrganisation (OrganisationID As Integer)... 30 GetOrganisation (Location As Location)... 31 GetPerson... 31 GetPerson (PersonID As Integer)... 31 GetPerson (UserName As String)... 31

GetPerson (StudentRelation As StudentRelation)... 31 GetPersonByUserName... 31 GetStudentRelations... 31 GetStudentRelations (Activity As Activity)... 32 GetStudentRelations(Person As Person)... 32 GetSystemGroup... 32 GetSystemGroups... 32 GetTicket... 32 IsAllowed... 32 IsAllowed (ACLUD As Integer, PersonID As Integer)... 32 IsAllowed (ACLshort As String, PersonID As Integer)... 32 PutEmployeeRelation... 32 PutEmployeeRelation (EmployeeRelation As EmployeeRelation)... 32 PutEmployeeRelation (EmployeeRelation As EmployeeRelation, Person As Person)... 32 PutGroup... 32 PutPerson... 32 PutStudentRelation... 32 PutStudentRelation (StudentRelation As StudentRelation)... 33 PutStudentRelation (StudentRelation As StudentRelation, Person As Person)... 33 SayHello... 33 Search... 33 Search(ACL As ACL)... 33 Search(Activity As Activity)... 33 Search(Agent As Agent)... 33 Search(AgentAction As AgentAction)... 33 Search(Action As AgentAction, AgentID As Integer)... 33 Search(Campus As Campus)... 33 Search(Group As Group)... 33 Search(Group As Group, HasMembers As Boolean)... 33 Search(Location As Location)... 33 Search(Organisation As Organisation)... 33 Search(Organisation As Organisation, Campus As Campus)... 33 Search(Person As Person)... 33

Search(RelationRole As RelationRole)... 33 Search(SystemGroup As SystemGroup)... 33 Search(Ticket As Ticket)... 33 SearchPerson... 33 Unbind... 34 Unbind (Person as Person, ACL as ACL)... 34 Unbind (Person as Person, Campus as Campus)... 34 Unbind (Person as person, Group as Group)... 34 Unbind (Person as Person, Organisation as Organisation)... 34 Unbind (Person as Person, SystemGroup as SystemGroup)... 34 ValidatePersonCPR... 34 Klasser og returtyper... 35 ACL... 35 ACLItem... 35 ActionResponse... 35 Activity... 35 Address... 35 Agent... 35 AgentAction... 35 Action... 35 Campus... 35 Country... 35 CPR... 35 CustomField... 35 Education... 35 Email... 35 EmployeeRelation... 35 Group... 35 GroupMembership... 35 Location... 35 Log... 35 Organisation... 35 Person... 35

Phone... 35 RelationRole... 35 ServiceMethod... 36 StudentRelation... 36 SystemGroup... 36 Ticket... 36 Enums og konstanter... 36 ActionType... 36 AgentActionStatus... 36 Method... 36

1. MetaDirectory webservice VIA MetaDirectory er en central database der læser, opsamler, behandler og formidler data om alt fra ansættelses forhold, personale, studerende, aktiviteter, uddannelser, lokationer og meget andet. VIA MetaDirectory betegnelsen dækker over en række projekter der hver især har til opgave at hente, behandle, formidle eller på anden måde gøre brug af data. Fælles for alle projekter der gør brug af data fra VIA MetaDirectory er data tilgangen. Al datatilgang sker gennem en enkelt webservice. Dette dokument beskriver denne webservice, netop VIA MetaDirectory Webservice. 2. Datatilgang Alle opslag til VIA MetaDirectory foretages gennem en webservice. Der er ikke mulighed for direkte tilgang til data i database serverne. Webservicen kan findes på adressen https://wsdl.supportcenter.dk/viametadirectory/service.asmx Bemærk at det er et krav at alle forespørgsler køres via SSL (https). Såfremt aftagersystemet ikke understøtter https eller de komplekse datatyper som webservicen anvender, kan en wrapper benyttes. Se mere under punktet 3.6. 3. Sikkerhed 3.1 Forbindelsesaftale En forbindelsesaftale er en skriftlig aftale der er indgået mellem VIA University College og dataaftageren. ene for oprettelse afviger fra aftale til aftale. De specifikke krav står på selve forbindelsesaftalen. En forbindelsesaftale giver rettigheder til et sæt udvalgte metoder. Omfanget af metoder afviger fra aftale til aftale. Det står på forbindelsesaftalen hvilke metoder aftalen har rettighed til. En forbindelsesaftale oprettes ved skriftlig henvendelse til VIA University College. Forbindelsesaftalen oprettes kun såfremt det skønnes data bliver behandlet forsvarligt og i overensstemmelse med lovgivning. En forbindelsesaftale tages op til genvurdering senest et år efter sidste vurdering. Det er op til administratoren af aftagersystemet at bevise om data behandles korrekt. Heriblandt: Bliver alle brugernavne og passwords krypteret Bliver data mellem evt. serversystem og klient krypteret (f.eks. webserver / webbrowser) Er RSA nøgler asynkront dynamiske Gemmes personfølsomme oplysninger på aftagersystemet (hvis ja hvordan) Benyttes wrappere og/eller SSO? (Hvis ja skal disse systemers dokumentation også accepteres) Hvis det vurderes sikkerheden ikke er tilstrækkelig eller data behandles uforsvarligt eller i strid mod dansk lovgivning forbeholder VIA sig retten til at afbryde aftalen med øjeblikkelig varsel. VIA forbeholder sig ret til uopfordret kontrol samt spørge efter dokumentation af implementeringen af MetaDirectory på aftagersystemet.

3.2 Sikkerheden i databasen I VIA MetaDirectory prioritere vi sikkerhed højt. Ikke nok med at VIA MetaDirectory kræver godkendelse af forbindelsen ved hjælp af en forbindelsesaftale (se 3.1 Forbindelsesaftale) men selve kommunikationen skal også ske over SSL. Yderligere er stærkt følsomme data igen krypteret i databasen. Et eksempel på dette er bl.a. password feltet på personer. Vi har således ikke mulighed for at udlæse brugernes password. 3.3 Godkendelse af forbindelse HER SKAL DER STÅ HVORDAN MAN VALIDERE EN FORBINDELSE. 3.4 Trafik mellem VIA MetaDirectory og dataaftager Forbindelsen til VIA MetaDirectory skal initieres via metoden AuthenticateConnection ved hjælp af RSA krypteret data og forbindelsesnavn. Forbindelsen til VIA MetaDirectory skal til enhver tid krypteres via SSL (både ved sende og modtage). 3.5 Datasikkerhed på klientniveau Data der hentes fra VIA MetaDirectory skal behandles fortroligt. Hvis aftagersystemet er en hjemmeside, webapplikation, webservice, service program eller på anden måde ikke er destinationen for den data der er hentet fra VIA MetaDirectory skal flg. oplysninger særbehandles: Brugernavn og password skal som minimum krypteres (MD5 med timestamp og statisk tekst). Password må aldrig sendes som klar tekst. Brugernavne, passwords og CPR nummerer må ikke gemmes på nogen lagermedier, hverken permanent eller kortvarigt. Det er tilladt at gemme brugernavn og CPR nummerer i midlertidig hukommelse (RAM) CPR nummerer skal som minimum sendes via SSL Hvis applikationen der forespørger samtidigt er destinationen for den data der hentes fra VIA MetaDirectory (f.eks. en eksekverbar Windows applikation) er sikkerheden for klienten allerede underlagt den sikkerhed der er på trafik mellem VIA og dataaftager. Se 3.4 Trafik mellem VIA MetaDirectory og dataaftager. VIA vil foretage en vurdering af sikkerheden i applikationen / applikationerne. Vurderes sikkerheden ikke at være tilstrækkeligt forbeholder VIA sig retten til at afbryde forbindelsesaftalen. 3.6 Understøttelse Vi har indset at nogle udviklingssprog ikke har direkte mulighed for integration med VIA MetaDirectory. De typiske faldgrupper er mangel på RSA kryptering, mangel på understøttelse af komplekse datatyper eller basal objektorientert tankegang. Understøttes MetaDirectory webservice ikke på aftagersystemet tillader vi brug af wrappere. Ligeledes understøtter vi også helt enkel validering af brugere ved hjælp af single signon systemet. Brug af single signon er dog kun muligt på websites. 3.6.1 Brug af wrappere Der kan i sjælende tilfælde være brug for brug af wrapper tjenester. En wrapper tjeneste er et hjælpeprogram der kan være tolk mellem VIA og aftagersystemet.

Følgende punkter skal være opfyldt for brug af wrapper service mod VIA Sikkerheden må ikke være ringere end forbindelser uden wrapper Hele forbindelsesledet mellem VIA og dataaftager(via Wrapper Aftager) skal køre via SSL Forbindelsesaftalen skal godkendes ved hjælp af RSA kryptering. (Se metoden AuthenticateConnection) Wrapper tjenesten skal være passiv. Dvs. intet data må gemmes i databaser, midlertidige lagre eller lign. Ligeledes må wrapper tjenesten ikke selv forespørge på data. Dvs. tjenesten må ikke kaldes via en job planlægger eller lign. VIA vil vurdere sikkerheden i wrapper tjenesten på lige fod med aftagersystemet. Hvis der benyttes wrapper tjeneste skal VIA orienteres herom Såfremt sikkerheden ikke er tilstrækkeligt forbeholder VIA sig retten til at afbryde forbindelsesaftalen. 3.6.2 Single Signon (SSO) Ved forbindelsesaftalens oprettelse skal det tages op til overvejelse om SSO skal benyttes. 3 specifikke parametre defineres. Henholdsvis ssoreturnsuccessurl, ssoreturnfailureurl og ssomd5cryptography. ssoreturnsuccessurl og ssoreturnfailureurl er to statiske URL er til aftagersystemet der videredirigeres til ved successfuld validering eller fejl. ssomd5cryptography er en skabelon for det md5 checksum der genereres. Læs nærmere i dokumentet Autentifikation med VIA Single Signon. Dokumentet udleveres ved henvendelse hos VIA University College, IT Udvikling.

Metoder beskrivelser og syntaks AuthenticateConnection Denne metode godkender og opretter forbindelse mellem dataaftageren og VIA. For at godkende en forbindelse sendes navnet på forbindelsesaftalen både som klar tekst samt RSA krypteret. Krypteringen er dynamisk i forhold til den udleverede offentlige nøgle. ConnectionProfile As String Navnet på forbindelsesaftalen. RSACrypto() As Byte Array af bytes der indeholder det krypterede data af navnet på forbindelsesaftalen. Ticket En forbindelse er først valideret når Returobjektets IsAuthenticated værdi er sand. Herefter vil de mulige metoder kunne findes i array i AvailableMethods property. Deklarationen Imports System.Security.Cryptography Imports System.Text Public Cookies As New System.Net.CookieContainer Public MetaDir As New VIA.MetaDirectory Public Const PublicKey As String = "<RSAKeyValue><Modulus>20z3glN6k+Z19TIsrtE2/HganJUeoZ8S2lsBf3JRXJWYTeigu0ZJoWpn5y4c1YWG2sv+XoudGZs9+ ikfwrgq0ejj1r8yo3pe4lw+fxbx1ul83ktff9cjlmzjeno7hcpzadczmxdfqfdvtrycmmpzgjfkhdt/4emnmxaiwdtab6u=</mod ulus><exponent>aqab</exponent></rsakeyvalue>" Public Const ConnectionIdent As String = "MyApplication" Kode I subroutine MetaDir.CookieContainer = Cookies 'Forbindelsen gemmes i en in-memory cookie så vi ikke skal validere ved hvert enkelt forespørgsel. Dim rsacsp As New RSACryptoServiceProvider 'Opret instans af kryptografi klassen rsacsp.fromxmlstring(publickey) 'Indlæs public nøgle 'Krypter forbindelsesnavnet på baggrund af den offentlige nøgle If MetaDir.AuthenticateConnection(ConnectionIdent, rsacsp.encrypt(encoding.unicode.getbytes(connectionident), False)).IsAuthenticated = False Then If MsgBox("Forbindelsen er ugyldig.", MsgBoxStyle.Critical Or MsgBoxStyle.Critical) = MsgBoxResult.Ok Then e.cancel = True Application.HideSplashScreen() Exit Sub End If End If

RSA kryptering skal altid indgå som en del af valideringen af forbindelsen til VIA. IT afdelingen forbeholder rettigheden til at ophæve forbindelsen hvis statiske krypterings nøgler benyttes. En forbindelsesaftale skal indgås med IT afdelingen før det er muligt at validere forbindelser. Aftagersystemet skal have mulighed for at kryptere data ved hjælp af RSA. Anonyme forbindelser kan altid kalde denne metode Klassen Ticket og metoden GetTicket AuthenticatePerson Denne metode bruges til at validere et password mod et brugernavn. Denne metode vil typisk blive brugt i forbindelse med login forme eller andre steder hvor login er påtvunget. Vær opmærksom på at det ikke er UserName As String Personens brugernavn. Password As String Personens password. Boolean Sand = Brugernavn og password stemmer overens. Falsk = Brugernavn og password stemmer ikke overens. LoginValid = MetaDir.AuthenticatePerson(frmLogin.txtUsername.Text, frmlogin.txtpassword.text) If Not LoginValid Then MsgBox("Kan ikke logge dig på. Forkert brugernavn eller password.") Application.Quit End If Brugernavnet er ikke case sensitiv. Der er ingen krav Metoden GetPerson.

Bind Bind er en overloaded metode. Metoden bruges til at binde objekter af en type sammen med objekter af en anden type. Det kan f.eks. være en studerende der skal tilknyttes en aktivitet (læs hold). Alternativt kan det være en rolle der bindes til et ansættelsesforhold. Bind(EmployeeRelation As EmployeeRelation, Location As Location) Binder en lokation til et ansættelsesforhold EmployeeRelation As EmployeeRelation Et ansættelsesforhold. Location As Location Lokationen der skal knyttes til ansættelsesforholdet. Denne metode returnerer intet da det er en sub rutine. Ingen kode. Der kan kun sættes én lokation på et ansættelsesforhold. Er der allerede en lokation bundet op mod ansættelsesforholdet overskrives det så snart denne metode kaldes. Hvis der sendes en tom lokation ind vil lokationsfeltet ryddes og ansættelsesforholdet vil således fremstå uden lokation. Der stilles ikke yderlige krav. Metoderne GetLocation og GetEmployeeRelation samt klasserne EmployeeRelation og Location Bind (Person As Person, ACL As ACL, IsDenyItem As Boolean) Binder en rettighed til en person. Person As Person Et person objekt på den person der skal have tildelt en rettighed. ACL As ACL Den specifikke rettighedspunkt der skal tildeles. IsDenyItem As Boolean Et ja/nej felt der angiver om rettigheden skal give adgang eller nægte adgang. Hvis IsDenyItem

sættes til sand vil personen blive nægtet adgang til dette menupunkt. I modsat fald vil brugeren have adgang til punktet. Denne metode returnerer intet da det er en sub rutine. Dim MetaDir As New VIA.MetaDirectory Dim MyPerson As VIA.Person Dim MyACL As VIA.ACL 'Webreference til MetaDir 'Definer person objekt 'Definer ACL objekt Dim personid As Integer Dim ACLid As Integer personid = 2121 ACLid = 57 'ID på en person 'ID på en ACL MyPerson = MetaDir.GetPerson(personId) 'Hent person MyACL = MetaDir.GetACL(ACLid) 'Hent rettighed MetaDir.Bind(MyPerson, MyACL, False) 'Bind personen til rettigheden Hvis en person allerede er bundet til en given rettighed opdateres denne rettighed. Det er således muligt at ændre feltet IsDenyItem ved at kalde denne metode igen. Der stilles ikke yderlige krav. Metoderne GetPerson og GetACLItems samt klasserne ACL og ACLItem Bind (Person As Person, Campus As Campus, SetAsPrimary As Boolean) Binder en person til et campus. Person As Person Et person objekt på den person der skal tilknyttes et campus. Campus As Campus Det specifikke campus personen skal tilknyttes. SetAsPrimary As Boolean Angiver om det angivende campus skal være personens primære campus Denne metode returnerer intet da det er en sub rutine.

Dim MetaDir As New VIA.MetaDirectory Dim MyPerson As VIA.Person Dim MyCampus As New VIA.Campus 'Webreference til MetaDir 'Definer person objekt 'Definer campus objekt Dim personid As Integer personid = 2121 'ID på en person MyCampus.Name = "Århus C" 'Definer søge kriterie MyCampus = MetaDir.Search(MyCampus)(0) 'Søg campus frem MyPerson = MetaDir.GetPerson(personId) 'Hent person MetaDir.Bind(MyPerson, MyCampus, False) 'Binder personen til campus Århus C Denne kode benytter sig af Search funktionen til at søge et specifik Campus frem. Hvis man kender Campus ID kan et campus hentes ved hjælp af GetCampus metoden. Hvis den pågældende person allerede har det angivende campus tilknyttet opdateres bindingen. Det er således muligt at benytte denne metode til at ændre en persons primære campus på et allerede tilknyttet campus. En person kan have mange campus tilknyttet, men det er kun muligt at have et primært campus. Der stilles ikke yderlige krav. Metoden GetCampus og klassen Campus. Bind (Person As Person, Group as Group As Group) Binder en person til en gruppe. Person As Person Den person der skal knyttes til Gruppen. Group as Group En Gruppe. Denne metode returnerer intet da det er en sub rutine.

Dim person As METADir.Person = MetaDir.GetPerson("dbv") 'hent person Dim gruppe As New METADir.Group gruppe.name = "Medarbejder_Alle_I_VIA" ' Sæt søgekriterie gruppe = MetaDir.Search(gruppe)(0) ' Henter gruppen MetaDir.Bind(person, gruppe) ' Binder personen til gruppen En person kan være knyttet til mange grupper på samme tid og hvis man ønsker at ophæve en tilknytning kan man anvende metoden Unbind. Personer og Grupper kan søges frem ved brug af metoden Search. Der stilles ikke yderlige krav. Metoderne Search, GetPerson og klassen Group. Bind (Person As Person, Organisation As Organisation, SetAsPrimary As Boolean) Binder en person til en organisation. Under normale forhold er det kun personer der er fast knyttet til en organisation man vil have interesse i at binde. Typisk kun ansatte. Person As Person Et person objekt på den person der skal tilknyttes et campus. Organisation As Organisation Den specifikke organisation personen skal tilknyttes. SetAsPrimary As Boolean Angiver om det angivende campus skal være personens primære campus Denne metode returnerer intet da det er en sub rutine.

Dim MetaDir As New VIA.MetaDirectory Dim MyPerson As VIA.Person Dim MyOrg As New VIA.Organisation 'Webreference til MetaDir 'Definer person objekt 'Definer organisation objekt Dim personid As Integer personid = 2121 MyOrg.DisplayName = "HR afdelingen" MyOrg = MetaDir.Search(MyOrg)(0) 'ID på en person 'Definer søge kriterie 'Søg organisation frem MyPerson = MetaDir.GetPerson(personId) 'Hent person MetaDir.Bind(MyPerson, MyOrg, False) 'Binder personen med personid 2121 til organisationen 'HR afdelingen Hvis den pågældende person allerede har det angivende organisation tilknyttet opdateres bindingen. Det er således muligt at benytte denne metode til at ændre en persons primære organisation på en allerede tilknyttet organisation. En person kan have mange organisationer tilknyttet, men det er kun muligt at have en primær organisation. Der stilles ikke yderlige krav. Metoden GetOrganisation og klasserne Organisation og Fejl! Henvisningskilde ikke fundet. Bind (Person As Person, SystemGroup As SystemGroup) Binder en person til en system gruppe. En system gruppe er en intern gruppe i MetaDirectory. System grupper er især anvendelige i forbindelse med rettighedsstyring. Person As Person Et person objekt på den person der skal tilknyttes en gruppe. SystemGroup As SystemGroup Den gruppe personen skal tilknyttes. Denne metode returnerer intet da det er en sub rutine. Der er intet eksempel kode. En person kan være tilknyttet flere system grupper på en gang. Man kan kun være tilknyttet den samme system gruppe en gang. Derfor vil en tilknytning til en gruppe som brugeren allerede er medlem af ikke have nogen effekt.

Der stilles ikke yderlige krav. Metoden GetSystemGroup og klassen SystemGroup. Bind (RelationRole As RelationRole, EmployeeRelation As EmployeeRelation) Binder en rolle til et ansættelsesforhold. RelationRole As RelationRole Den rolle der skal tilknyttes til forholdet. EmployeeRelation As EmployeeRelation Et ansættelsesforhold. Denne metode returnerer intet da det er en sub rutine. Der er intet eksempel kode. En persons ansættelsesforhold kan kun have en enkelt rolle tilknyttet. For at binde en anden rolle til forholdet kan denne metode kaldes igen med en anden RelationRole. Roller kan søges frem ved brug af metoden Search. Der stilles ikke yderlige krav. Metoden Search og klassen RelationRole. Bind (RelationRole As RelationRole, StudentRelation As StudentRelation) Binder en rolle til et studieforhold. RelationRole As RelationRole Den rolle der skal tilknyttes til forholdet. StudentRelation As StudentRelation Et studieforhold.

Denne metode returnerer intet da det er en sub rutine. Der er intet eksempel kode. En persons studieforhold kan kun have en enkelt rolle tilknyttet. For at binde en anden rolle til forholdet kan denne metode kaldes igen med en anden RelationRole. Roller kan søges frem ved brug af metoden Search. Der stilles ikke yderlige krav. Metoden Search og klassen RelationRole. ChangePersonPassword Skifter password på en person. PersonID As Integer Personen der skal have skiftet password. Password As String Personens nye password. Denne metode returnerer intet da det er en sub rutine. Dim strpassword As String strpassword = InputBox("Indtast det nye password (min. 8 tegn):", "Password skift") If strpassword.length >= 8 Then MetaDir.ChangePersonPassword(MyPerson, strpassword) Else MsgBox("Password ikke ændret. Det skal være over 8 tegn!") End If En persons studieforhold kan kun have en enkelt rolle tilknyttet. For at binde en anden rolle til forholdet kan denne metode kaldes igen med en anden RelationRole. Roller kan søges frem ved brug af metoden Search. Der stilles ikke yderlige krav.

Metoden Search og klassen RelationRole. CreateSSOCryptography Genererer en single signon (SSO) nøgle. Ticket As Ticket Objektet Ticket benyttes til at udlæse de egenskaber der knytter sig til SSO på forbindelsesaftalen. Person As Person Personen der skal valideres I SSO sammenhænget Timestamp As String Et tidsstempel eller anden variabel data. Hvis der anvendes dato og tid er der intet krav til hvilket format. String Dim MyTimestamp As String = Now.ToString("yyyyMMddHHmmss") Dim MyHash As String MyHash = MetaDir.CreateSSOCryptography( _ MetaDir.GetTicket(Session("TicketID")), _ MetaDir.GetPerson(CInt(txtPersonID.Text)), _ MyTimestamp) Det kan anbefales at læse dokumentet Autentifikation med VIA Single Signon Udviklervejledning og dokumentation i integration til VIA Single Signon. Dokumentet udleveres ved henvendelse til den integrationsansvarlige. Der stilles ikke yderlige krav. Metoderne GetPerson og GetTicket. DeleteEmployeeRelation Sletter et ansættelsesforhold Relation As EmployeeRelation Relationen der skal slettes Denne metode returnerer intet da det er en sub rutine.

#Sample code is missing Der stilles ikke yderlige krav. Ingen Udfyldes DeleteGroup Sletter en gruppe. Group As Group Gruppen der skal slettes Denne metode returnerer intet da det er en sub rutine. #Sample code is missing Kun manuelle grupper kan slettes. En undtagelse vil opstå hvis en automatisk gruppe forsøges slettet. Såfremt en automatisk gruppe ønskes slettet skal den først konverteres til en manuel. Dette sker ved at ændre Manual property på Group objektet til true og kalde PutGroup. Der stilles ikke yderlige krav. Udfyldes DeleteStudentRelation Sletter et studieforhold. Relation As StudentRelation Studieforholdet der skal slettes

Denne metode returnerer intet da det er en sub rutine. #Sample code is missing Ingen Der stilles ikke yderlige krav. Udfyldes GetACL Returnerer en rettighed af typen ACL. Rettigheden indeholder et navn, et kort navn, mulighed for at underarve rettigheder og en beskrivelse. Tilknyttet et ACL objekt er ACLItem som kan defineres som personers specifikke tilknytning til en ACL. ACLID As Integer ID på den ACL der ønskes returneret. ACL Der skal skrives noget. Det er komplet shit så der må gerne være masser af eksempel. Der stilles ikke yderlige krav.

GetACLItems GetActions GetActions (AgentID As Integer) GetActions (ActionResponse As ActionResponse) GetActivities Returnere alle aktiviteter der er knyttet op til et studieforhold. StudentRelation As StudentRelation Studieforholdet der ønskes oplyst tilknyttede aktiviteter på. Array af typen Activity #Sample code is missing Ingen Ingen Udfyldes GetActivity Returnere en enkelt aktivitet ActivityID As Integer Id på aktiviteten der ønskes returneret Activity #Sample code is missing Ingen

Ingen Udfyldes GetCampus GetCampus (CampusID As Integer) Returnerer et objekt af typen Campus. CampusID As Integer ID på det Campus der ønskes returneret. Campus Dim CampusID As Integer = 1 ' Sæt CampusID Dim MyCampus As METADir.Campus MyCampus = MetaDir.GetCampus(CampusID) ' Hent campusset MsgBox(MyCampus.Name) ' Brug det CampusID skal være ID et på et eksisterende Campus. I tvivlstilfælde kan man søge campusser frem vha. Search metoden. Der er ikke yderligere krav. Metoden Search og klassen Campus. GetCampus (Location As Location) Returnerer et objekt af typen Campus på baggrund af en lokation. Location As Location Lokationen hvortil det tilhørende campus objekt ønskes returneret Campus

Skriv kode CampusID skal være ID et på et eksisterende Campus. I tvivlstilfælde kan man søge campusser frem vha. Search metoden. Der er ikke yderligere krav. Metoden Search og klassen Campus. GetEmployeeRelation Returnere et ansættelsesforhold EmployeeRelationID As Integer Id på det ansættelsesforhold der skal returneres EmployRelation #Sample code is missing Ingen Ingen Udfyldes GetEmployeeRelations Henter en persons ansættelsesforhold Person As Person Person objekt på den person der skal returneres ansættelsesforhold på Array af typen EmployeeRelation

#Sample code is missing Ingen Ingen Udfyldes GetGroup Returnerer et objekt af typen Group. GroupID As Integer ID på den Gruppe der ønskes returneret. Group Dim GroupID As Integer = 1 ' Sæt Gruppe ID Dim MyGroup As METADir.Group MyGroup = MetaDir.GetGroup(GroupID) ' Hent gruppen MsgBox(MyGroup.Name) ' Brug den GroupID skal være ID et på en eksisterende Gruppe. I tvivlstilfælde kan man søge Gruppen frem vha. Search metoden. Der er ikke yderligere krav. Metoden Search og klassen Group. GetLocation Generel metode beskrivelse. LocationID As Integer Id på lokationen der ønskes returneret

Location #Sample code is missing Ingen Ingen Udfyldes GetLog Returnerer et Array af typen Log. Arrayet indeholder relevante Logningsposter for den person der er angivet ved parameteren PersonID Person As Person Den Person, som man ønsker at modtage en Log på. Array af typen Log Dim Person As New METADir.Person Person.UserName = "dbv" 'Angiver søgekriterie Person = MetaDir.Search(Person)(0) 'Søger personen frem Dim Log() As METADir.LogEntry = MetaDir.GetLog(Person) ' henter loggen For Each LogPost As METADir.LogEntry In Log ' viser alle poster MsgBox(LogPost.Text) Next Ingen bemærkninger Der er ikke yderligere krav. Metoden Search og klassen Log.

GetMembership GetMembership (personid as integer) GetMembership (Group as Group) Returnerer et Array af typen GroupMembership. Disse Groupmembership objekter repræsenterer knytningen mellem den Gruppe man angiver til metoden og de Personer, som denne Gruppe er knyttet til. Group As Group Den Gruppe, som man ønsker at modtage Gruppemedlemskaber for. Array af typen GroupMembership Dim MyGroup As New METADir.Group MyGroup.ID = 4949 MyGroup = MyMetaDir.Search(MyGroup)(0) 'søg en Gruppe frem Dim MyMemberships As METADir.GroupMembership() MyMemberships = MyMetaDir.GetMembership(MyGroup) 'hent medlemskaber For Each Membership As METADir.GroupMembership In MyMemberships MsgBox(Membership.Person.UserName & " er medlem af " & Membership.Group.Name) Next GroupMembership indeholder reference til både en Person og en Group. Ud over dette indeholder objektet en indikation af om netop det pågældende medlemskab er et resultat af en automatisk generering eller om det er et manuelt medlemskab. Der er ikke yderligere krav. Metoden Search og klasserne Person og en Group. GetMembership (Person as Person) Returnerer et Array af typen GroupMembership. Disse Groupmembership objekter repræsenterer knytningen mellem den Person man angiver til metoden og de Grupper, som denne Person er knyttet til. Person As Person Den Person, som man ønsker at modtage Gruppemedlemskaber for. Array af typen GroupMembership

Dim MyPerson As New METADir.Person MyPerson.UserName = "dbv" MyPerson = MyMetaDir.Search(MyPerson)(0) 'søg en person frem Dim MyMemberships As METADir.GroupMembership() MyMemberships = MyMetaDir.GetMembership(MyPerson) 'hent medlemskaber For Each Membership As METADir.GroupMembership In MyMemberships MsgBox(Membership.Person.UserName & " er medlem af " & Membership.Group.Name) Next GroupMembership indeholder reference til både en Person og en Group. Ud over dette indeholder objektet en indikation af om netop det pågældende medlemskab er et resultat af en automatisk generering eller om det er et manuelt medlemskab. Der er ikke yderligere krav. Metoden Search og klasserne Person og en Group. GetOrganisation GetOrganisation (OrganisationID As Integer) Returnerer et Objekt af Typen Organisation OrganisationID As Integer ID på det OrganisationsObjekt man ønske at få returneret. Organisation Dim MyorgID As Integer = 0 Dim MyOrg As METADir.Organisation MyOrg = MyMetaDir.GetOrganisation(MyOrgID) If MyOrg IsNot Nothing Then MsgBox(MyOrg.Name) End If Der kan være en fordel i at bruge Search metoden til at søge efter Organisationer såfremt man ikke kender ID på en eksisterende Organisation. Der er ikke yderligere krav. Metoden Search og klassen Organisation.

GetOrganisation (Location As Location) Returnerer et objekt af typen Organisation på baggrund af en lokation OrganisationID As Integer ID på det OrganisationsObjekt man ønske at få returneret. Organisation Relationsforholdet mellem lokationer og organisationer siger at en organisation kan have mange lokationer. Der er ikke yderligere krav. Metoden klassen Organisation. GetPerson GetPerson (PersonID As Integer) GetPerson (UserName As String) GetPerson (StudentRelation As StudentRelation) GetPersonByUserName GetStudentRelations Overloaded metode

GetStudentRelations (Activity As Activity) GetStudentRelations(Person As Person) GetSystemGroup GetSystemGroups GetTicket IsAllowed IsAllowed (ACLUD As Integer, PersonID As Integer) IsAllowed (ACLshort As String, PersonID As Integer) PutEmployeeRelation PutEmployeeRelation (EmployeeRelation As EmployeeRelation) PutEmployeeRelation (EmployeeRelation As EmployeeRelation, Person As Person) PutGroup PutPerson PutStudentRelation

PutStudentRelation (StudentRelation As StudentRelation) PutStudentRelation (StudentRelation As StudentRelation, Person As Person) SayHello Search Search(ACL As ACL) Search(Activity As Activity) Search(Agent As Agent) Search(AgentAction As AgentAction) Search(Action As AgentAction, AgentID As Integer) Search(Campus As Campus) Search(Group As Group) Search(Group As Group, HasMembers As Boolean) Search(Location As Location) Search(Organisation As Organisation) Search(Organisation As Organisation, Campus As Campus) Search(Person As Person) Search(RelationRole As RelationRole) Search(SystemGroup As SystemGroup) Search(Ticket As Ticket) SearchPerson

Unbind Unbind (Person as Person, ACL as ACL) Unbind (Person as Person, Campus as Campus) Unbind (Person as person, Group as Group) Unbind (Person as Person, Organisation as Organisation) Unbind (Person as Person, SystemGroup as SystemGroup) ValidatePersonCPR

Klasser og returtyper ACL ACLItem ActionResponse Activity Address Agent AgentAction Action Campus Country CPR CustomField Education Email EmployeeRelation Group GroupMembership Location Log Organisation Person Phone RelationRole

ServiceMethod StudentRelation SystemGroup Ticket Enums og konstanter ActionType AgentActionStatus Method