Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Ena IAM - Pilot

Sammanfattning

Denna Proof of Concept (POC) syftar till att praktiskt testa och demonstrera hur en federativ infrastruktur enligt OpenID Federation-modellen kan realiseras i Ena för digital samverkan mellan organisationer. Fokus ligger på att visa hur en användare i Organisation A genom sitt system kan anropa ett skyddat API i Organisation B, där säkerhets- och tillitsinformation förmedlas via federationsinfrastrukturen (FI-serien) och används i faktiska samverkansflöden (DS-serien).

...

Tillsammans visar dessa användningsfall hela kedjan: från att etablera federativ tillit via FI-serien till att praktiskt realisera digital samverkan mellan två organisationer via DS-serien.

Användningsfall

Översikt OIDF-struktur

draw.io Diagram
borderfalse
diagramNameEna IAM Pilot FedInfra
simpleViewerfalse
width
linksauto
tbstyleinline
lboxtrue
diagramWidth11911220
height716736
revision822

Federationsinfrastruktur

FI-serien (FI010–FI040) beskriver hur federationsinfrastrukturens centrala komponenter tillsammans etablerar den tekniska tilliten i en federation. I dessa användningsfall visas hur en Tillitsankartjänst publicerar och signerar metadata, hur en Anslutningstjänst kan agera mellanled och applicera lokala policies, hur en Uppslags- och verifieringstjänst bygger och validerar hela tillitskedjan, samt hur en Tillitsmärkestjänst utfärdar och verifierar tillitsmärken som styrker efterlevnad av tillitsskapande krav. Tillsammans utgör de grunden för att federationens parter ska kunna lita på varandra och möjliggör att den digitala samverkan i DS-serien kan realiseras på ett säkert och verifierbart sätt.

...

  1. Ett konkret förslag till struktur för en "initial" federationsträdOIDF-struktur! Dvs det realisaras realiseras i gemensamt sammankopplade sandbox-miljöer
  2. Verifiera användningsfallen

...

Användningsfall publicering och verifiering

AnvändningsfallBeskrivningPOC AcceptanskriterierIngående komponenter (ansvarig aktör)Lösningsmönster & SpecifikationerKommentar
FI010 – Metadatapublicering TillitsankartjänstEn Tillitsankartjänst (Trust Anchor) publicerar och signerar
sitt federation metadata statement.

Kriterier verksamhet

metadata (om sig själv och underordnade)

Verksamhetskriterier

1. Anslutningstjänst

 Anslutningstjänst

registrerad som entitet

  •  Tillitsmärkestjänst registrerad som entitet

Kriterier specifikationer

2. Policy

  2a. Tillitsmärke konfigurerat

  2b. Strict/loose policy 

      •  regler för entity_typ
      •  regler för algoritmer

Teknikkriterier

1. Tillitsankartjänst

 Tillitsankartjänst

publicerar Entity Configuration enligt specifikation

 

2. Tillitsankartjänst publicerar Entity Statement enligt specifikation

 

3. Tillitsankartjänst Subordinate listing enligt specifikation

4. Policyhantering enligt specifikation

    •  
Policyhantering
    • Behöver detaljeras
  • Tillitsankartjänst (Trust Anchor)
    • Digg
    • Internetstiftelsen

OpenID Federation Specification

Kommande: Ena Infrastructure OIDF Profile


Grund för teknisk tillit i federationen.
FI020 –Metadatapublicering AnslutningstjänstValidera att Anslutningstjänst
korrekt kan hämta metadata från Tillitsankartjänst, applicera policy och vidareförmedla metadata.

Kriterier verksamhet

(Intermediate Entity)  publicerar och signerar metadata (om sig själv och underordnade)

Verksamhetskriterier

1. Tjänst

 Tjänst

(Federationmedlem) registrerad som entitet

Kriterier specifikationer

Teknikkriterier

1. Anslutningstjänst

 Anslutningstjänst

publicerar Entity Configuration enligt specifikation

    •  Authority_hint enligt specifikation
 

2. Anslutningstjänst publicerar Entity Statement enligt specifikation

    •  Om underordnad tjänst

3. Anslutningstjänst Subordinate listing enligt specifikation

  • Anslutningstjänst (Intermediate Entity)
    • Digg
    • Internetstiftelsen

OpenID Federation Specification

Möjliggör skalbarhet och delegerad tillit.

FI030 – Metadatavalidering

Kontrollera att trust chain kan byggas korrekt (top-down
/bottom-up
), signaturer verifieras och metadata returneras komplett.
Kriterier verksamhet

Verksamhetskriterier

  

1. Uppslags- och verifieringstjänst (Resolver)

registrerad som entitet

Kriterier specifikationer

  har konfigurerat betrodda Tillitsankartjänster

2. Ett Resolve-anrop kan göras för vald Tillitsankartjänst och valda Tillitsmärken

Teknikkriterier

Implementerar Resolve-entity enligt
1. OpenID Federation Specification

    •  Validerar digitala signaturer och certifikatkedjor enligt specifikationen
 

2. Tillämpning av definierad federation-policy vid verifiering

    •  Endast verifierad metadata returneras till förlitande parter
  • Uppslags- och verifieringstjänst (Resolver)
     Digg
      • Digg
      • Internetstiftelsen

    OpenID Federation Specification

    Avlastar digitala tjänster från komplex verifieringslogik.
    FI040 – TillitsmärkeshanteringSäkerställa att tillitsmärken är signerade, giltiga och verifierbara enligt policy.

    Kriterier verksamhet

    •  Tillitsmärkestjänst registrerad som entitet

    Kriterier specifikationer

    Verksamhetskriterier

    1. Tillitsmärke utfärdat till:

      •  Klient
      •  Auktorisationstjänst(er)
      •  API

    Teknikkriterier

    2. Tillitsmärkestjänst implementerad enligt OpenID Federation Specifikationen

     Implementerar Trust Mark Issuer enligt OpenID Federation Specification

      •  

        Publicerar signerade tillitsmärken

    via definierad endpoint 
      •  

        Följer federation-policy för tillitsmärkets typ, innehåll och giltighet

    • Uppslags- och verifieringstjänst (Resolver)
       Digg
        • Digg
        • Internetstiftelsen

      OpenID Federation Specification

      Möjliggör automatiserad kontroll av regelefterlevnad.
      FI050 - MetadatapubliceringValidera att anslutna komponenter publicerar och signerar sitt metadata

      Verksamhetskriterier

      1. Komponent (för Federationmedlem) registrerad som entitet

      Teknikkriterier

      2. Komponent publicerar Entity Configuration enligt specifikation

        •  Authority_hint enligt specifikation
        •  Trust_marks enligt specifikation
      • Klient
        • Appva
      • Auktorisationstjänster(er)
        • Digg
        • Internetstiftelsen
      • Resource Server (API)

      OpenID Federation Specification



      Testfall publicering och verifiering

      Testfall 1 - Uppslag & verifiering av entitet - omfattar FI030 men fungerar enbart om FI010, FI020 och FI050 är gjort

      Förutsättningar

      • EHM AS-B finns inte i metadata (eller ta ned servern)
      • Registrera Uppslags- och verifieringstjänst (Resolver) med Tillitsankartjänst (Trust Anchor) "Sweden Trust",
      • Registrera Anslutningstjänst Internetstiftelsen hos Tillitsankartjänst ST

      Teststeg

      StegBeskrivningFörväntat resultatUtfallStatus
      1Uppslag av Entitet EHM AS-BEntitet kan inte verifieras

      2Registrera Entitet EHM AS-B för till Anslutningstjänst hos Internetstiftelsen (AT-IIS)AT-IIS ger ut Subordinate Statement om EHM AS-B



      TA-ST ger ut Subordinate Statement om AT-ISS



      3Uppslag av Entitet EHM AS-BEntitet kan verifieras


      Testfall 2 - Uppslag & verifiering av entitet med tillitsmärke - omfattar FI040

      Förutsättningar

      • Pilotmärket är definierat i TMI hos IIS
      • EHM AS-B finns i metadata men har inte tillitsmärket "Pilotmärke"

      Teststeg

      StegBeskrivningFörväntat resultatUtfallStatus
      1Uppslag av Entitet EHM AS-BPilotmärket saknas i uppslags-svaret

      2

      Registrera Pilotmärke för EHM AS-B i TMI hos Internetstiftelsen




      3Uppslag av Entitet EHM AS-BPilotmärket finns i uppslags-svaret

      Användningsfall registering

      AnvändningsfallBeskrivningPOC AcceptanskriterierIngående komponenter (ansvarig aktör)Lösningsmönster & SpecifikationerKommentar
      RA10 – Konfiguration av TillitsankartjänstEn Tillitsankartjänst (Trust Anchor) konfigurerad för att etablera ett federationskontext

      Verksamhetskriterier

      1. Ans...

      Teknikkriterier

      1. Reg...

        • Tillitsankartjänst (Trust Anchor)
        • Digg

      OpenID Federation Specification

      Kommande: Ena Infrastructure OIDF Profile


      Grund för teknisk tillit i federationen.

      RA20 - Konfiguration av Anslutningstjänst






      RA30 - Konfiguration av Tillitsmärkestjänst






      RA40 - Anslutning till överordnad (Anslutningstjänst/Tillitsankartjänst)






      RA50 - Konfiguration av Uppslags och verifieringstjänst 






      Testfall registrering

      Digital samverkan

      DS-serien (DS001–DS004) demonstrerar den praktiska digitala samverkan över organisationsgränser, där federationsinfrastrukturen används i faktiska åtkomstflöden. Användningsfallen visar hur en användare loggar in i ett system och etablerar en session, hur lokala auktorisationstjänster tillämpar policies och återanvänder inloggningar via SSO, hur åtkomstbegäran kan riktas mot en annan organisation och besvaras med intyg, samt hur metadata för legitimering och auktorisation hanteras och verifieras via federationsinfrastrukturen. Tillsammans visar dessa flöden hur federativ tillit omsätts i säker åtkomst och informationsutbyte mellan organisationer

      ...

      Kort-namnBeskrivning
      authn-authz-patterns"Mönster för autentisering och auktorisation"
      Övergripande beskrivning av mönster för autentisering och auktorisation. Konceptuell,  ej normativ.
      inter-domain-calls"API-anrop över organisationsgränser"
      Övergripande beskrivning av mönster för anrop över organisationsgränser. Konceptuell, ej normativ.
      ena-oauth2-authn-bp

      "Ena OAuth 2.0 User Authentication Best Practises"

      Best practises för integration av befintlig inloggningslösning med OAuth 2.0. Konceptuell, ej normativ. 

      ena-oauth2-profile"Ena OAuth 2.0 Interoperability Profile"
      Ena Basprofil för användning av OAuth 2.0 i Ena-sammanhang. Grundläggande specifikation för all tillämpning av OAuth där den förekommer. Normativ. 
      ena-oauth2-chaining

      "Ena OAuth 2.0 Token Exchange Profile for Chaining Identity and Authorization"

      Enaprofil för token exchange och auktorisation över organisationsgränser.

      oidf-spec

      "OpenID Federation 1.0 - draft 43"

      poc-attributspec

      "POC attributspecifikation vård/hälsa"

      En specifikation som beskriver claims för att bära behörighetsgrundande information för användning i POC/Pilot. 

      OBS - Behöver tas fram!

      Användningsfall

      AnvändningsfallBeskrivningPOC Acceptanskriterier
      Batch-lösningen är ett pilotval; i full drift används realtidsupplösning via Resolver.


      Ingående komponenter (ansvarig aktör)Lösningsmönster & SpecifikationerKommentar
      DS010 – Inloggning i systemEn användare loggar in i System A via en legitimeringstjänst (SAML IdP). Resultatet är en aktiv inloggningssession i System A

      Verksamhetskriterier

      1. Användare

      Kriterier verksamhet

       Användare

      är inloggad i systemetKriterier specifikation

       Kandidat:

      2. Inloggning av användare sker enligt / mha Sambi

       

      och Sambis tekniska ramverk


      Teknikkriterier

      Övrigt

      3. Kandidat: De delar i inloggningslösning som använder OAuth följer ena-oauth2-profile.

      • Legitimeringstjänst (IdP – Org A)
      • System A (System A– Org A)

      SAML 2.0, Single Sign-On

      ena-oauth2-profile

      ena-oauth2-authn-bp

      Grundförutsättning för federativ åtkomst.
      DS020 – Lokal auktorisationKlient interagerar med en lokal auktorisationstjänst för att fastställa användarens behörigheter. SSO återanvänder sessionen mot IdP för andra system.

      Verifiera att lokal auktorisation fungerar och att SSO-sessionen kan återanvändas.

      Kriterier verksamhet

       

      Verksamhetskriterier

      1. AS

      AS

      i Domän A ("AS-A") har en säkerställd uppfattning om användaren

       

      2. MCSS har ett underlag i form av en signerad JWT med rätt innehåll som underlag för åtkomstbegäran mot org BKriterier specifikation

        MCSS


      Teknikkriterier

      3. MCSS initierar Auth grant w. code enligt ena-oauth2-authn-bp, kap 2.2 eller 2.3.
        3a. basprofil enligt 5.1

      4. MSCC utför token exchange mot AS-A enligt ena-oauth2-chaining, kap 3.3

        4a. basprofil enligt kap x

      5. Claims i JWT för auth grant följer specifikation poc-attributspec

      •  MSCC som klient följer oauth-oauth2-profile i relevanta delar
      •  AS domän A följer oauth-oauth2-profile i relevanta delar

      , enligt 3.3.4

      • Auktorisationstjänst (Org A) Legitimeringstjänst (IdP – Org A) System A

      OIDC/OAuth2 (Access Token, ID Token), SAML SSO

      ena-oauth2-profile

      ena-oauth2-chaining

      Möjliggör lokal policytillämpning och SSO-flöde.
      DS030 – Åtkomstbegäran till annan organisationSystem A begär åtkomstintyg från Organisation B:s auktorisationstjänst för att få åtkomst till resurs i B:s miljö.

      Kontrollera att Organisation B:s auktorisationstjänst kan utfärda och returnera giltigt intyg som System A kan validera.

      Kriterier verksamhet

       AS


      Verksamhetskriterier

      1. AS-B kan ta emot och tolka anrop om auth grant


      Kriterier specifikationTeknikkriterier

       

      2. MCSS utför authorization grant mot AS i domän B ("AS-B") enligt ena-oauth2-chaining, kap 3.4

        2a. profil 5.3 (client credentials grant)

      •  MSCC som klient följer oauth-oauth2-profile i relevanta delar 

      3. AS domän

      B följer

      följer chaining xx

        3b. oauth-oauth2-profile i relevanta delar 3.4.2

      • Auktorisationstjänst (Org B) Resursserver (Org B) System A (Org A)

      OIDC/OAuth2 Token Exchange, JWT Grants

      ena-oauth2-profile

      ena-oauth2-chaining

      poc-attributspec

      Möjliggör system-till-system-samverkan över organisationsgränser.
      DS040 – Metadatahantering via federationsinfrastrukturMetadata för IdP, RP och auktorisationstjänster hanteras via OIDF-federationskomponenter.

      Säkerställa att metadata kan hämtas, verifieras och cache:as via Resolver, och att trust chain kan valideras till Tillitsankaren.


      Verksamhetskriterier

      1. MCSS har access token att använda


      Teknikkriterier

      2. AS domän A som klient till AS-B följer oauth-oauth2-profile i relevanta delar

        2a. profil xx

      3. AS-B kan verifiera klient (MCSS) mot metadata genom client_assertion

        3a. chaining 3.4.1

        3b. basprofil 5.3 (client credentials)

        3c. oidf-spec entity type client 5.1.5

      4. AS-B kan verifiera AS-

      B

      A mot metadata genom "user assertion"

        4a. chaining 3.4.1

        4b. profil xx

        4c. oidf entity type OIDF 5.1.4

      5. AS-B kan verifiera att entitet AS-

      B

      A i metadata även har "Pilotsmärke"

        5a. oidf TM 7

      6. AS-B kan tolka claims för behörighetsgrundande

      attribut 
      •  AS-B kan utfärda accesstoken 

      Kriterier specifikation

      •  AS domän B som klient följer oauth-oauth2-profile i relevanta delar
      •  Resolver följer oauth-oauth2-profile i relevanta delar

      attribut

        6a. "handbok"

      • Se tabell ovan 

      oidf-spec OpenID Federation 1.0, Entity Statements, Trust Chains, Trust Marks

      ena-oauth2-profile

      DS050 - API-anrop Cross Domain

      Verksamhetskriterier

       

      1. MCSS kan göra lyckat API-anrop mot

      NLL med accesstoken
      •  NLL kan verifiera accesstoken
      •  NLL kan utvärdera behörighetsroll
      •  MCSS får svar på API-fråga från NLL

      Kriterier specifikation

      •  MSCC som klient följer oauth-oauth2-profile i relevanta delar
      •  NLL som Resursserver/API följer oauth-oauth2-profile i relevanta delar
      ena-oauth2-profile

      NLL 


      ena-oauth2-profile


      Testfall

      Testfall 1: Användare loggar in i MCSS och hämtar NLL-data

      Förutsättningar

      • EHM AS-B, Appva MCSS, Appva AS-A finns registrerade i metadatat
      • Appva AS-A har Pilotmärket i TMI hos IIS

      Teststeg

      StegBeskrivningFörväntat resultat / verifieringUtfallStatus
      DS010


      1Användare loggar in i MCSS
      1. DS010-1 Okulärbesiktning av inloggningsflöde. Titta i MSCC-loggar? 
      2. DS010-2 Kolla MCSS
      Användaren loggar in i MSCC mha test-IDP i Sambi-trial. Loggar bekräftar inloggning. 

      1.

      Status
      colourGreen
      titleOK

      DS020

      1Användaren utför något som initiera hämtning av information från NLL
      1. Okulärt
      Användaren öppnar "NLL-flik" i MSCC

      1. 

      Status
      colourGreen
      titleOK

      2MCSS startar code flow mot AS-A
      1. DS020-1 Kan vi verifiera detta? 
      2. DS020-3 & 3a: kolla MCSS & AS-A loggar request/response
      Request mot authorize-endpoint syns i ASA-logg. 

      1.

      Status
      colourGreen
      titleOK

      2.

      Status
      colourGreen
      titleOK

      3MCSS intygsväxlar mot AS-A
      1. DS020-4 & 4a kolla MCSS-loggar & AS-A-loggar req/resp
      2. DS020-2 & DS020-5 kolla token (user jwt)
      Ej med i implementation. Code-flow resulterar i underlag for DS030.

      Status
      titlen/a

      DS030

      1MSCC anropar AS-B
      1. DS030-2 & 2a och DS030-1 kolla MCSS-loggar och AS-B-loggar req/res.
      2. DS030-3 & 3b kolla AS-B-loggar
      Kollat loggar på både appva-sidan och ehm-sidan.

      1. 

      Status
      colourGreen
      titleOK

      2.

      Status
      colourGreen
      titleOK

      2Negativa testfall av AS-B avseende expiry, granttype, client assertion type, client_id etc testas inte här - ehm kvalitetsäkring av AS-B


      DS040

      1

      AS-B verifierar MCSS som klient

      1. DS040-2: anrop accepterat, kolla loggar AS-B
      2. DS040-3: kolla loggar + kolla metadata
      3. DS040-3: ta bort metadata-entitet för MCSS
        (Natalie)
      4. DS040-3: fel nyckel i entitet för MCSS
        (EHM)
      5. DS040-3: fel entitetstyp (ej client) för MCSS


      1+2. Kollat loggar på både appva-sidan och ehm-sidan.

      3. MCSS som entitet borta ur metadata. Cache tömd + kör om batch. AS-B returnerar invalid client. 

      4. Metadata från batch manipulerad. verifieringsnyckel gjord invalid genom att tillföra skräptecken i nyckel. Felmeddelande invalid client / invalid signature


      1.

      Status
      colourGreen
      titleOK

      2.

      Status
      colourGreen
      titleOK

      3.

      Status
      colourGreen
      titleOK

      4.

      Status
      colourGreen
      titleOK

      2

      AS-B verifierar AS-A

      1. DS040-4: kollar logger + kolla metadata
      2. DS040-4: ta bort metadata-entitet för AS-A
        (Stefan)
      3. DS040-4: fel nyckel i entitet för AS-A
        (EHM)

      DS040-4: fel entitetstyp (ej authorization_server) för AS-A

      1. Kollat logar

      2. ASA som entitet borta ur metadata. Cache tömd + kör om batch. AS B returnerar. Felmeddelande invalid grant / no metadata found

      3. Metadata manipulerat för AS-B på Appvas sida. verifieringsnyckel gjord invalid. Felmeddelande Invalid grant / invalid signature

      1.

      Status
      colourGreen
      titleOK

      2.

      Status
      colourGreen
      titleOK

      3.

      Status
      colourGreen
      titleOK

      3

      AS-B verifierar tillitsmärke

      1. DS040-5 kollar logger + kolla metadata
      2. DS040-5 ta bort tillitsmärke
        (Natalie)
      3. DS040-5 byt tillitsmärke (ej längre det "pilotmärke" vi förväntar oss)
        (EHM)

      1. Kollat logar

      2. Tillitsmärke bortplockat ur ASA-metadata. Invalid grant / Trustmark not found or not trusted.

      3. Manipulerar AS-Bs "whitelist" för vilka märken vi valider mot. Ändra identifierare på "pilotmärket". Felmeddelande Invalid grant / invalid signature

      1.

      Status
      colourGreen
      titleOK

      2.

      Status
      colourGreen
      titleOK

      3.

      Status
      colourGreen
      titleOK

      4

      AS-B access token

      DS040-6 & 6a & DS040-1 claims finns i accesstoken1. 

      1.

      Status
      colourGreen
      titleOK

      DS050

      1

      MCSS för API-anrop mot NLL

      1. DS050-1 lyckat anrop med positivt svar
      1. okulärt 

      1.

      Status
      colourGreen
      titleOK