Sådan får du din webtjeneste på WAYF

  1. Tag fat i WAYF-sekretariatet
  2. Pris
  3. Sponsorerklæring
  4. Formel optagelse
  5. Attributprofil
  6. Interne tjenester
  7. Teknisk integration
  8. Begrænset teknisk support
  9. Adgangskontrollen ligger hos tjenestenikke hos WAYF

1. Tag fat i WAYF-sekretariatet

Hvis du gerne vil give dine brugere mulighed for at logge ind via WAYF (altså via WAYFs brugerorganisationer og evt. eduGAINs) på en webtjeneste som du udbyder, så skal du henvende dig til WAYF-sekretariatet for at få tilslutningsprocessen sat i gang. Forinden bør du dog have læst alt hvad der står herunder:

2. Pris

Selve tilslutningen til WAYF er gratis for tjenesteudbydere; men der opkræves per tilsluttet tjeneste 100 kr. om året excl. moms i brugsafgift. Eventuelle udgifter ved den tekniske integration af WAYF-login på tjenesten afholdes ligeledes af tjenesteudbyderen.

3. Sponsorerklæring

Det er imidlertid en vigtig juridisk forudsætning for at kunne få en tjeneste tilsluttet at udbyderen over for WAYF-sekretariatet dokumenterer at mindst én af de institutioner som er tilsluttet WAYF, ønsker at lade deres brugere tilgå den kommercielle tjeneste via WAYF. Hvis tjenesteudbyderen allerede er tilsluttet WAYF som institution (fx er et universitet), så behøves ingen eksplicit dokumentation. Men ellers skal tjenesteudbyderen sørge for at der fremsendes en "sponsorerklæring" fra en tilsluttet institution. Der er ingen særlige formkrav; det kan bare være en kort e-mail.

4. Formel optagelse

For at kunne tilslutte en tjeneste skal en tjenesteudbyder være indforstået med føderationsvilkårene og oplyse følgende til WAYF-sekretariatet:

  • tjenestens officielle navn (på dansk og engelsk);
  • tjenesteudbyderens officielle navn (på dansk og engelsk);
  • tjenesteudbyderens logo (inkl. evt. særskilt engelsk udgave);
  • en kort beskrivelse af tjenesten (inkl. evt. særskilt engelsk udgave).

Ved tilslutningen skal tjenesteudbyderen derudover oplyse mindst én kontaktperson og fremsende: navn, e-mailadresse og telefonnummer på hver kontaktperson. Udbyderen har pligt til uden ugrundet ophold at meddele WAYF det hvis noget af det oplyste ændrer sig.

5. Attributprofil

Hver gang en bruger forsøger at logge ind på en webtjeneste via WAYF, overfører WAYF en række oplysninger om brugeren til webtjenesten. Det følger af databeskyttelsesretten at en tjeneste kun må modtage det minimum af brugeroplysninger fra WAYF som er nødvendigt for at kunne stille tjenesten til rådighed for tjenestens målbrugergruppe. Den strengt nødvendige mængde brugeroplysninger — tjenestens attributprofil — forhandles mellem tjenesteudbyderen og WAYF. De brugeroplysninger (attributter) som WAYF har mulighed for at udlevere til en tjeneste fra institutionerne, er opregnet her. Bemærk at WAYF kun kan garantere tilgængeligheden af attributter som er markeret med 'MUST'.

6. Interne tjenester

I de tilfælde hvor en institution udbyder en tjeneste kun til brug for sine egne brugere, har vi at gøre med en intern tjeneste; og sådan en kan tilsluttes uden videre. WAYF gennemtvinger teknisk at enhver intern tjeneste kun kan tilgås fra den institution som udbyder tjenesten (omend det forbliver institutionens ansvar at kun berettigede brugere får adgang). Hver institution kan få et ubegrænset antal interne tjenester tilsluttet WAYF — og på den måde bruge WAYF som internt single-sign-on-system.

7. Teknisk integration

Den tekniske integration består i: at implementere en SAML2-SP på webtjenesten og derpå: udveksle metadata (konfigurationsdata) med WAYF.

SAML-SP'en er en service som kan kommunikere med WAYFs server via login-protokollen SAML2 og overholde SAML 2.0 Interoperability Deployment Profile. Til implementering af en SAML2-SP findes flere produkter på markedet, både kommercielle (fx Microsofts ADFS) og open-source (fx SimpleSAMLphp, Shibboleth, OIOSAML). Der findes derudover særlige SAML2-moduler til en række CMS'er (fx WordPress, Drupal). En PHP-implementering af en minimal SAML2-SP kan studeres her. En samling af SAML2-værktøjer til forskellige programmeringssprog og CMS'er findes her. Et modul til Perl her.

Vær opmærksom på at din server skal overholde WAYFs tidspolitik og skal understøtte HTTPS. Din SAML2-SP skal endvidere kunne sende login­forespørgsler til WAYF i et 302-svar til brugerens browser og kunne modtage login­svar fra WAYF på en HTTP-POST fra browseren. Din SP kommunikerer aldrig direkte med WAYF — kun med brugerens browser.

Når webtjenesten har implementeret SAML2-interfacet, skal tjenesteudbyderen og WAYF udveksle metadata: væsentligt oplysninger til hinandens servere om hvor de kan finde hinanden på nettet, og hvordan de nærmere kan kommunikere indbyrdes. Metadata om WAYFs server findes her og skal indlæses i webtjenestens SAML2-SP. Metadata om webtjenestens SAML2-SP skal fremsendes til WAYF-sekretariatet og kan siden redigeres i WAYFs metadataregister, mEdit. Af metadata om din SP skal WAYF som minimum kende din SPs entityID (client-id) og den URL den kan modtage login­svar på; derudover kan andre indstillinger aftales efter behov.

I den almindelige udgave af WAYF fungerer det sådan at WAYF spørger brugeren som vil logge ind på en tjeneste, hvilken institution han vil logge ind fra. Men som tjenesteudbyder har man også mulighed for at lade brugeren vælge login-institution direkte på tjenestens eget site. Det kan fx være relevant hvis man ønsker at begrænse udvalget til kun at omfatte institutioner som er kunder ved tjenesten. En relevant teknologi er i så fald scoping – alternativt at tilslutte hver institution særskilt gennem WAYF, hvilket vi også understøtter. WAYFs egen institutionsliste ("discovery-liste") kan dog også tilpasses til kun at vise institutioner som er relevante for en bestemt tjeneste.

Bemærk at WAYF i et vist omfang nu også tilbyder at tilslutte tjenester gennem protokollerne WS Federation (kun Passive Requester) og OIDC (kun i varianten id_token med form_post). Tjenester som bruger Apache som webserver, kan opnå en enkel OIDC-integration til WAYF vha. modulet mod_auth_openidc.

8. Begrænset teknisk support

WAYF-sekretariatet holder ikke sin viden tilbage hvis vi tilfældigvis kan hjælpe, men yder principielt ingen support til den tekniske integration på tjenesteudbyderens side af forbindelsen til WAYF. Vi understøtter interfacet SAML2 (subsidiært WS Federation eller OIDC), men forholder os ikke til konkrete implementeringer af SAML2 hos tjenesteudbyderen — herunder ikke til opsætningen af SAML2-software som vi måtte omtale her på sitet. Hvis man ikke selv magter integrationsopgaven, kan man hyre en SAML2-kyndig konsulent.

9. Adgangskontrollen ligger hos tjenesten — ikke hos WAYF

Det er vigtigt at huske at al adgangskontrol foregår hos webtjenesten: Når WAYF-serveren sender et loginsvar til tjenesten, er dét ikke i sig selv udtryk for at den pågældende bruger skal have adgang til tjenesten. Men svaret indeholder de aftalte oplysninger (attributter) om brugeren; og det er tjenesteudbyderens ansvar at implementere et filter som kontrollerer om de medsendte attributværdier berettiger brugeren til adgang. Det er en alvorlig — og forretningskritisk — misforståelse hvis tjenesteudbyderen tror at enhver som forsøger at logge på tjenesten via WAYF, er forhåndsgodkendt til at få adgang. Tjenesteudbyderen skal selv afgøre om hver bruger må få adgang — på grundlag af de oplysninger om brugeren som WAYF leverer til tjenesten ved hvert loginforsøg. Tjenesteudbyderen har også ansvar for at kontrollere at login-svaret som tjenesten modtager, rent faktisk stammer fra WAYF — ved at verificere XML-signaturen på login-svarets assertion-element.