Oppsett av KADA

Kada trenger tilgang til undervisningsdata fra FS og TP for ? kunne sammenstille kalenderdata.

Innholdsfortegnelse

Kada: Test og produksjon

Det settes alltid opp to instanser av Kada per institusjon. En testinstans som integrerer med FS-demo og TP-test, samt en produksjonsinstans som integererer med FS-prod og TP-prod.

Meldingsk?er

Opprett to applikasjoner for Kada (test og prod) i?selvbetjeningsportalen for RabbitMQ. Gi disse navnet "kada", s? legger selvbetjeningsportalen p? "system-test" og "system-production". N?r man har gjort dette, skal man ha f?lgende k?er:

  • system-test-kada
    • skal abonnere p? notifikasjoner fra FS-demo (system-test-fs)?og TP-test (system-test-tp)
  • system-production-kada
    • skal abonnere p? notifikasjoner fra FS-prod (system-production-fs)?og TP-prod (system-production-tp)

Under fanen?Applikasjonsinfo?finner man knappen?Vis brukernavn og passord. Brukernavn og passord til disse to applikasjonene overleveres til IT-avdelingen p? UiO.

FS

KADA trenger lesetilgang til mange ulike endepunkter i FS-API, samt notifikasjoner om endringer i disse dataene.

Se?Sikt sin dokumentasjon om FS-API og notifikasjoner fra FS.

Her er man i m?l n?r:

  • FS-API for FS-prod og FS-test er tilgjengelig i API-katalogen i Gravitee
  • notifikasjoner fra FS-prod og FS-test er tilgjengelig i selvbetjeningsportalen for RabbitMQ
  • Kada-test og Kada-prod abonnerer p? notifikasjoner fra henholdsvis FS-prod og FS-test i RabbitMQ

IT-avdelingen p? UiO s?rger for ?:

  • opprette applikasjoner i Gravitee som representerer KADA-test og KADA-prod
  • s?ke om tilgang til en passende?plan?mot FS-API-ene i Gravitee

Tilganger i FS-API

Systembrukeren som opprettes i FS og brukes av Gravitee til ? autentisere mot FS-API b?r konfigureres til ? ha alle rettigheter, slik at den endelige tilgangskontrollen gj?res i Gravitee.

Kada trenger enten lesetilgang til alle data, eller en plan som ?pner opp for ? gj?re GET-requests mot f?lgende endepunkt, der context-path?er stien som er satt for det relevante API-et:

  • /context-path/studentundervisningsaktiviteter**/**
  • /context-path/studentundervisning**/**
  • /context-path/undervisningsaktiviteter**/**
  • /context-path/undervisning**/**
  • /context-path/emner**/**
  • /context-path/personer**/**
  • /context-path/studentvurderinger**/**
  • /context-path/vurderingstider**/**
  • /context-path/vurderingsenheter**/**
  • /context-path/evukurs**/**
  • /context-path/evukursinfoer**/**
  • /context-path/evukursdeltakelser**/**
  • /context-path/deltakere**/**
  • /context-path/studieretter**/**
  • /context-path/kullklassestudenter**/**
  • /context-path/studieprogrammer**/**
  • /context-path/kull**/**
  • /context-path/kullklasser**/**
  • /context-path/semesterregistreringer**/**
  • /context-path/semestre**/**

TP

Kada trenger lesetilgang til de fleste endepunktene i TP-API, samt notifikasjoner om endringer i disse dataene.

Se?veiledning for konfigurasjon av TP-API i Gravitee?og veiledning om oppsett av meldingsutsending i TP.?

Om de ikke finnes allerede, opprett to applikasjoner for TP (test og prod) i?selvbetjeningsportalen for RabbitMQ, slik at man har:

  • system-test-tp
  • system-production-tp

(Merk! Selvbetjeningsportalen legger selv p? "system-test-" og "system-production-". Man trenger kun ? fylle inn "tp" for navnet.)

Registrer disse to applikasjonene som notifikasjonskilder under fanen?Publisering?i selvbetjeningsportalen for RabbitMQ. Under?Tilkoblingsdetaljer?finner man det man trenger for ? konfigurere TP:

  • La?port?v?re 5671 og huk av for?SSL.
  • Routing key?b?r settes til?TPtest?eller TPprod.
  • I Gateway entrypoint skriver man base-URL til sin egen institusjons TP-API, f.eks. https://gw-inst.intark-uh-it.no/tp-test/.
  • Virtual host vil typisk v?re system-test-tp?eller system-production-tp.
  • Aktiver meldingsutsending for?alle?endringstyper.
  • S?rg for at meldingsutsending er aktivert for innev?rende semester.

Her er man i m?l n?r:

  • TP-API for produksjon og test er tilgjengelig i API-katalogen i Gravitee
  • notifikasjoner fra TP-prod og TP-test er tilgjengelig i selvbetjeningsportalen for RabbitMQ
  • Kada-test og Kada-prod abonnerer p? notifikasjoner fra henholdsvis TP-prod og TP-test i RabbitMQ

IT-avdelingen p? UiO s?rger for ?:

  • opprette applikasjoner i Gravitee som representerer Kada-test og Kada-prod
  • s?ke om tilgang til en passende?plan?mot TP-API-ene i Gravitee

Exchange

Kada trenger tilgang til?Microsoft Graph?for ? vedlikeholde kalenderhendelser i personlige mailbokser.

Opprette applikasjoner i Azure

Kada trenger vanligvis to applikasjoner i Azure, hvor den ene benyttes til testing og den andre har tilgang til produksjonsmilj?et. Om det ikke er behov for ? ha test-mailbokser, kan test-applikasjonen droppes.

Se?Microsofts veiledning til registrering av applikasjoner.

  1. Opprett applikasjonen
    1. Name: Kada (prod) eller Kada (test)
    2. Supported account types:?Accounts in this organizational directory only
    3. Redirect URI: La st? tom
  2. Under applikasjonen, naviger til Manage?→ Certificates and secrets
    1. Velg New client secret
    2. Velg varighet for n?kkelen. Om den skal ha utl?psdato, b?r UiO og institusjonen sammen bli enige om en rutine som unng?r at den l?per ut uventet.
  3. Naviger til?Manage?→ API permissions
    1. Naviger videre til?Add a permission Microsoft Graph Application
      permissions
    2. Gi tilgangen?Calendar.ReadWrite med?Grant admin consent
  4. Kun for testapplikasjonen:
    1. Se?Limiting application permissions to specific Exchange Online mailboxes
    2. Konfigurer en?ApplicationAccessPolicy?som kun tillater applikasjonen ? administrere den/de mailboksene som er satt opp for testing.
    3. Test ved hjelp av?Test-ApplicationAccessPolicy?at applikasjonen ikke f?r tilgang til andre mailbokser i katalogen.
  5. Videreformidle f?lgende til UiO p? en sikker m?te:
    1. Application/client ID
    2. Directory/tenant ID
    3. Client secret

Canvas

Om Kada skal skrive kalenderhendelser til Canvas, trengs riktige tilganger.

Tilganger til Canvas-API

  1. Lag en lokal administratorbruker i Canvas, kalt apigateway e.l.
  2. Opprett en API-n?kkel uten utl?psdato, som skal brukes av Gravitee.
Forslag til oppsett i Gravitee:

Context path: /canvas
Backend: https://inst.instructure.com/api

Under API-ets policies trengs f?lgende to regler:

I request-flyten:
Transform headers
Scope: REQUEST
Remove headers: X-Forwarded-Host (Canvas leser denne og lager forvirrende URL-er) Add / update headers:
  - Name: Authorization
  - Value: Bearer 12345~Wj...Z

I respons-flyten:
URL Rewriting
Rewrite HTTP response headers -> P?
Rewrite HTTP response body -> P?
URL pattern expression: https://inst.instructure.com/api/ Replacement value: https://gw-inst.intark.uh-it.no/canvas/ (samme context path som over)

Det b?r lages en egen plan som begrenser Kadas tilganger i Canvas. Om man hvitlister disse stiene mener jeg vi skal ha alt vi trenger:

GET /users**/**
GET /sections**/**
GET /accounts**/**
GET /courses**/**
GET/POST/PUT/DELETE /calendar_events**/**
Publisert 12. okt. 2023 14:12 - Sist endret 5. des. 2025 13:01