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.
- Opprett applikasjonen
- Name: Kada (prod) eller Kada (test)
- Supported account types:?Accounts in this organizational directory only
- Redirect URI: La st? tom
- Under applikasjonen, naviger til Manage?→ Certificates and secrets
- Velg New client secret
- 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.
- Naviger til?Manage?→ API permissions
- Naviger videre til?Add a permission → Microsoft Graph → Application
permissions - Gi tilgangen?Calendar.ReadWrite med?Grant admin consent
- Naviger videre til?Add a permission → Microsoft Graph → Application
- Kun for testapplikasjonen:
- Se?Limiting application permissions to specific Exchange Online mailboxes
- Konfigurer en?ApplicationAccessPolicy?som kun tillater applikasjonen ? administrere den/de mailboksene som er satt opp for testing.
- Test ved hjelp av?Test-ApplicationAccessPolicy?at applikasjonen ikke f?r tilgang til andre mailbokser i katalogen.
- Videreformidle f?lgende til UiO p? en sikker m?te:
- Application/client ID
- Directory/tenant ID
- Client secret
Canvas
Om Kada skal skrive kalenderhendelser til Canvas, trengs riktige tilganger.
Tilganger til Canvas-API
- Lag en lokal administratorbruker i Canvas, kalt apigateway e.l.
- 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**/**