You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Inledning

Syfte

Testfallen i detta dokument ska verifiera att federationens infrastrukturtjänster fungerar korrekt, både var för sig och tillsammans, när de hanterar protokollentiteter. Med protokollentiteter avses de entiteter som deltar i federationen för att utföra ett protokoll, till exempel OAuth-klienter, auktorisationstjänster och resursservrar. I den svenska profilen motsvarar infrastrukturtjänster begreppet Federation Service Entity och protokollentiteter begreppet Federation Protocol Entity.

Infrastrukturtjänsterna och deras motsvarigheter är:

SIB-tjänstSvensk profilOpenID Federation 1.0Testfall
TillitsankartjänstTrust AnchorTrust Anchor

https://github.com/diggsweden/sib-federation-framework/test-specifications/trustanchor_test.md

https://github.com/diggsweden/sib-context-system-access/test-specifications/trustanchor_sa_test.md

AnslutningstjänstFederation Registration EntityIntermediate Entity
Uppslags- och verifieringstjänstFederation ResolverTrust Anchor eller Intermediate Entity med resolve-endpoint
Utfärdare av trust marksTrust Mark IssuerTrust Mark Issuer

Varje tjänst i SIB bygger på motsvarande roll i den svenska profilen [OIDC.Sweden.Federation], med ytterligare krav enligt [SIB]. Rollerna i den svenska profilen bygger i sin tur på OpenID Federation 1.0 [OpenID.Federation], med ytterligare krav enligt [OIDC.Sweden.Federation].

Testerna ska ge svar på följande frågor:

  • Ger federationen en korrekt och verifierbar bild av vilka protokollentiteter som ingår?
  • Är det tydligt vilka regler som gäller för dem och vilken metadata som ska användas?
  • Kan en protokollentitet lita på det som infrastrukturen levererar?

Resultatet ska ge underlag för att bedöma om infrastrukturen kan tas i drift, om förändringar i den kan driftsättas, och om den följer OpenID Federation 1.0, den svenska profilen och kraven i SIB.

Avgränsning

Fokus ligger på relationerna mellan infrastrukturtjänsterna och mellan infrastrukturtjänsterna och protokollentiteterna.

Från protokollentiteterna omfattas endast deras beskrivning av sin protokollmetadata, alltså den metadata de publicerar om sig själva och som infrastrukturtjänsterna hanterar. Testfallen omfattar inte hur protokollentiteterna fungerar i protokollet. De omfattar inte heller kommunikationen mellan två protokollentiteter, till exempel flöden mellan OAuth-klient och auktorisationstjänst eller anrop från OAuth-klient till resursserver.

Protokollentiteternas konfigurationer används som testdata, både korrekta och medvetet felaktiga. Det som bedöms är hur infrastrukturtjänsterna hanterar dem, inte konfigurationerna i sig. Undantaget är konfigurationer som anslutningstjänsten publicerar åt protokollentiteter. De är infrastrukturens produkt och testas fullt ut.

Protokollentiteter förekommer i testerna som testobjekt, vars beskrivning av protokollmetadata infrastrukturen ska hantera. Det sker till exempel vid anslutning via anslutningstjänsten, listning, tillämpning av metadata-policy eller tilldelning av trust marks.

Anrop mot infrastrukturtjänsterna görs med ett testverktyg som agerar konsument. Om en tjänst kräver klientautentisering registreras testverktyget som protokollentitet.

Det är infrastrukturtjänsternas beteende som bedöms.

Vad som bör testas

Infrastrukturtjänsternas egen konfiguration

  • Varje infrastrukturtjänst publicerar en korrekt signerad konfiguration som går att verifiera.
  • Konfigurationen innehåller rätt uppgifter om tjänsten, dess nycklar och dess överordnade.
  • Giltighetstiderna är rimliga.

Tillitsankartjänst och anslutningstjänst

  • Uttalanden om anslutna protokollentiteter och underordnade anslutningstjänster utfärdas med rätt nycklar, metadata-policy, begränsningar och eventuella trust marks.
  • Anslutningstjänsten utfärdar uttalanden endast för protokollentiteter som uppfyller registreringspolicyn, och fastställer de beskrivande uppgifter som kontrollerats vid registreringen.
  • Anslutningstjänsten publicerar korrekta och signerade konfigurationer åt de protokollentiteter som inte publicerar sin egen, med den protokollmetadata som entiteten angett vid registreringen.
  • Konfigurationer som anslutningstjänsten publicerar förnyas innan de går ut, och ändringar i entitetens protokollmetadata slår igenom inom förväntad tid.
  • Uttalanden om anslutna protokollentiteter anger var entitetens konfiguration finns, oavsett om den publiceras av anslutningstjänsten eller av entiteten själv.
  • Uttalandena hänger ihop så att en tillitskedja kan byggas från varje ansluten protokollentitet till tillitsankartjänsten, både direkt och via en eller flera anslutningstjänster.
  • Listningen av underordnade entiteter returnerar rätt entiteter, även när den filtreras.
  • Okända eller ogiltiga förfrågningar ger korrekta felsvar.

Uppslags- och verifieringstjänst

  • Bygger och validerar tillitskedjor för protokollentiteter, både direkt mot tillitsankartjänsten och via en eller flera anslutningstjänster.
  • Bygger och validerar tillitskedjor även för protokollentiteter vars konfiguration publiceras av anslutningstjänsten.
  • Kombinerar och tillämpar metadata-policy från alla nivåer korrekt och hanterar policykonflikter som specificerat.
  • Avvisar kedjor där policyn från anslutningstjänsten inte går att kombinera med policyn från tillitsankartjänsten.
  • Upprätthåller begränsningar, till exempel för kedjans längd, tillåtna namn och tillåtna entitetstyper.
  • Returnerar korrekt sammanställd metadata för protokollentiteter, med tillitskedja och verifierade trust marks.
  • Hanterar uppslag avgränsade till viss entitetstyp eller visst tillitsankare.
  • Avvisar ogiltiga kedjor, till exempel med utgångna uttalanden, felaktiga signaturer eller brutna hänvisningar till överordnade.
  • Svarets giltighetstid speglar kedjans kortaste giltighet.
  • Cachning ger inte inaktuella svar.

Utfärdare av trust marks

  • Trust marks utfärdas till protokollentiteter.
  • Statusfrågor ger rätt svar för aktiva, återkallade, utgångna och ogiltiga trust marks.
  • Listning av innehavare fungerar.
  • Delegering och tillitsankartjänstens angivelse av vilka utfärdare som är godkända fungerar.

Livscykel och förändring

  • När en protokollentitet ansluts, får ändrad metadata eller nycklar, stängs av eller tas bort ska förändringen slå igenom konsekvent i alla infrastrukturtjänster, inklusive trust mark-status, inom förväntad tid.

Nyckelhantering

  • Nyckelrotation hos infrastrukturtjänsterna sker utan att giltiga tillitskedjor bryts.
  • Historiska nycklar går att hämta.
  • Ersatta eller komprometterade nycklar slutar accepteras.

Robusthet och felhantering

  • Infrastrukturtjänsterna hanterar protokollentiteter som publicerar felaktiga, osignerade, utgångna eller motsägelsefulla konfigurationer.
  • De ska varken sprida felaktig information vidare eller fallera okontrollerat.

Referenser

  • No labels