Grand Unified

Grand Unified er en facilitet fra DeiC som udfylder et bestemt tomrum mellem tjenester og brugere i en identitetsføderation.

Mange nettjenester indgår i en identitetsføderation som WAYF. Det har den fordel at brugere fra en række forskellige organisationer kan logge ind på tjenesten med den brugerkonto de har ved deres organisation – de skal ikke oprettes med særskilt login, men kan så at sige genbruge deres interne organisationskonto ved de her eksterne tjenester.

Som udbyder af sådan en fødereret tjeneste kan man være udsat for at en bruger man godt vil give adgang, ikke har nogen organisationskonto og derfor ikke umiddelbart kan logge ind på tjenesten. Det kan også ske at brugeren ganske vist har en organisationskonto, men at udbyderen ikke er tilfreds med autentifikationskvaliteten herfra og derfor godt vil supplere brugerens organisationslogin med en andenfaktor. Grand Unified er en løsning på begge problemer:

Via et webinterface opretter udbyderen brugeren i Grand Unified med relevante oplysninger (attributter) og giver herefter brugeren en invitationstoken, ad en kanal som udbyderen finder tilstrækkeligt sikker (fx e-mail, papirpost, kurér, face2face). På dette tidspunkt har tjenesteudbyderen – nu i rollen som identity manager – identificeret brugeren (identity proof'et ham) og har kontakt med ham. Brugeren indløser så tokenen i sin browser og tilknytter da de loginmidler som udbyderen har fastsat skal tilknyttes. Det kan fx være et password, en hardwarenøgle (u2f/fido) og/eller et enfaktor-login fra en organisation. Herefter kan brugeren tilgå udbyderens tjeneste med de loginmidler han registrerede – han skal blot vælge “Grand Unified” som sin “organisation” på listen over mulige loginsteder (ved siden af KU, AU osv.). Så får tjenesten et loginsvar med de oplysninger udbyderen har registreret for brugeren i Grand Unified – på samme måde som den ville få oplysninger fra brugerens organisation hvis han var logget ind med en organisationskonto. Udbyderen slipper altså for at implementere autentifikation lokalt – al autentifikation er outsourcet til Grand Unified. Og alle brugere får adgang til tjenesten ad samme tekniske kanal: SAML/OIDC – tjenesten skal på runtime ikke give brugere adgang på anden måde end ved at ekspedere SAML/OIDC-tokens.

Når en bruger først er blevet oprettet i Grand Unified på invitation fra én tjeneste, kan han faktisk genbruge sin “Grand Unified-konto” hvis han senere inviteres til en anden tjeneste. Hvis den anden tjeneste kræver andre loginmidler end brugeren har registreret efter den første invitation, kan han supplere sin eksisterende “Grand Unified-konto” med de ekstra loginmidler som den nye tjeneste kræver. Samme bruger kan også inviteres flere gange til samme tjeneste – så han får flere identiteter inde i tjenesten knyttet til samme sæt Grand Unified-loginmidler (samme “Grand Unified-konto”). Hvis en bruger på den måde har flere identiteter i en tjeneste, beder Grand Unified ham efter vellykket login om at vælge hvilken identitet han vil bruge i sessionen med tjenesten. Brugeren vil i øvrigt opleve single-sign-on på tværs af de tjenester eller tjenesteidentiteter hans “Grand Unified-konto” er knyttet sammen med: Efter én autentifikation kan han tilgå dem alle.

Ved brugeroprettelse i Grand Unified angiver tjenesteudbyderen hvilken identitet inde i tjenesten brugeren inviteres til. Hvis brugeren allerede er oprettet, men noget er gået galt, har udbyderen mulighed for at geninvitere ham til samme tjeneste-identitet. Det kan fx være hvis den opr. invitationstoken er udløbet, eller hvis det viser sig at der skal logges ind med andre midler end dem som den oprindelige token fastsatte. Når brugeren indløser en Grand Unified-invitation, knyttes identiteten inde i tjenesten sammen med en Grand Unified-identitet som brugeren enten opretter i samme moment eller allerede har.

Grand Unified er altså væsentligt en account linking engine – som afbilder mellem tjeneste-identiteter og “Grand Unified-identiteter”. Og internt i Grand Unified har begge slags identiteter et uforanderligt bruger-ID. Men derudover vil en brugers “Grand Unified-konto” altid have en af hans mailadresser tilknyttet som alias for det egentlige bruger-ID – så han nemt kan huske hvad der skal angives som bruger-ID ifm. login med password eller hardwarenøgle.

For hver tjeneste fører udbyderen gennem et webinterface et brugerregister i Grand Unified og vedligeholder relevante “organisations”oplysninger for hver bruger. På den måde fungerer Grand Unified som en tjenestespecifik “organisation”, med en slags mikro-AD eller mikro-LDAP-brugerbase som er specifik for tjenesten. Udbyderen kan vælge at bruge Grand Unified som register over samtlige brugere som skal have adgang til tjenesten – eller blot over brugere uden institutionskonto (“gæster”) og brugere som han ikke vil give adgang via en umodificeret institutionskonto. Hvis man ønsker at bruge den samme brugerdatabase ved flere tjenester end en enkelt, kan dét nemt faciliteres teknisk.

Med brugerregisteret i Grand Unified kan en tjenesteudbyder også nemt teste hvordan hans tjeneste fungerer med forskellige brugerprofiler – hvilket kan være relevant på det tidspunkt hvor tjenesten integreres i identitetsføderationen. Udbyderen kan i sin Grand Unified-database oprette vilkårligt mange testbrugere med diverse attributværdier.

Det er også muligt at udstille en Grand Unified-brugerdatabase som en egentlig brugerorganisation (en identity provider, “IdP”) i føderationen WAYF. Dét er faktisk teknologien bag DeiCs egen IdP. For at blive IdP i føderationen skal en Grand Unified-brugerbase naturligvis opfylde de forskellige krav som føderationen stiller til egentlige IdP'er. Men sådan en “Grand Unified-backed” IdP kan også begrænses til kun at måtte bruges af et udvalg af tjenester – og på den måde fungere som en virtuel organisation for dem. Dét kræver ikke overholdelse af andre vilkår end dem som tjenesternes udbydere aftaler indbyrdes.

Grand Unified er færdigudviklet og nu i pilotdrift. I praksis skal man henvende sig til sekretariat@wayf.dk for at få gjort Grand Unified tilgængelig for sin tjeneste som allerede er tilsluttet WAYF med sit SAML/OIDC-interface. Så vil man få tilkendt en brugerbase og blive oprettet som Grand Unified-administrator for tjenesten. Derefter kan man oprette og invitere brugere. Snart viser vi herunder hvordan det ser ud.