JA T3 Framework

Fast. Flexible. Powerful

Kontakt

Scoping

Hvad er scoping?

Scoping giver en tjeneste mulighed for at vælge hvilken institution en bruger skal logge ind på. Dette kan fx bruges til at lave en tjenestespecifik liste over institutioner som tjenesten har aftaler med, så brugere fra andre institutioner ikke kan logge ind. Når scoping bruges, bliver brugeren usynligt transporteret forbi WAYF's liste over institutioner og direkte til den valgte institution.

For en generel gennemgang af SAML2-scoping henvises til SAML2-specifikationen [1].

Hvordan bruger jeg scoping?

For at kunne bruge scoping skal du bruge SAML2-software som understøtter scoping. Denne guide tager udgangspunkt i SimpleSAMLphp version 1.6.x [2], [3] eller senere som SAML2-forbindelsessoftware.

Først går man til listen [5] og finder entityID for de institutioner man gerne vil kunne logge ind på fra sin tjeneste. En komplet liste over institutioner [6] kan hentes her. Parameteren format kan angives med en af følgende værdier:

  • json (default værdi)
  • xml
  • csv

Feed'et indeholder entityID, navn (DK og EN) og schacHomeOrganization [7] for alle institutioner. BEMÆRK at strukturen ikke er ens på tværs af de enkelte formater.

Eksempel

De følgende eksempler viser hvordan scoping kan bruges i SimpleSAMLphp [4].

Brugen af scoping kan som udgangspunkt angives to forskellige steder: i authsourcen eller i metadata for institutionen (i dette tilfælde WAYF).

Brug af scoping i authsource

For at man kan bruge scoping i authsourcen, skal authsourcen være af typen saml:sp. Parameteren for brug af scoping hedder IDPList. Et eksempel på en authsource, der bruger scoping, ses her:

'saml2-sp' => array(
    'saml:SP',
    'entityID' => NULL,
    'idp' => 'https://wayf.wayf.dk', 
    'IDPList' => array(
        'https://sso.sdu.dk/wayf',
), ),

I eksemplet ovenfor vil brugeren automatisk bliver sendt til Syddansk Universitets loginside.

Brug af scoping i metadata

Ved brug af scoping i metadata skal parameteren IDPList sættes for den pågældende IdP i metadatafilen saml20-idp-remote.php. Et eksempel kan ses her nedenfor:

$metadata['https://wayf.wayf.dk'] = array(
'metadata-set' => 'saml20-idp-remote', 'entityid' => 'https://wayf.wayf.dk', 'SingleSignOnService' => 'https://wayf.wayf.dk/saml2/idp/SSOService.php', 'SingleLogoutService' => 'https://wayf.wayf.dk/saml2/idp/SingleLogoutService.php', 'certFingerprint' => '27f1b2fd01437812ba0d629f3d1e59cc2b56d1d6', 'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:transient', 'name' => array( 'en' => 'WAYF - Where are you from', 'da' => 'WAYF - Where are you from', ), 'description' => array( 'en' => 'Denmarks Identity Federation for Education and Research', 'da' => 'Danmarks Identitetsføderation for Uddannelse og Forskning.', ), 'url' => array( 'en' => 'http://wayf.dk/',
), 'IDPList' => array( 'https://wayf.ruc.dk/idp',
), );

Eksemplet ovenfor angiver at hvis brugeren sendes til WAYF, vil brugeren automatisk blive sendt videre til RUC's login-side.

OBS! Ovenstående metadata er ikke nødvendigvis korrekte metadata for WAYF. Korrekte metadata for WAYF [8] kan findes her.
Yderligere information omkring brug af scoping i SimpleSAMLphp findes på SimpleSAMLphp's dokumentationshjemmeside [4].

Virker også med en ADFSv2-løsning

Nogle tjenester har oplevet problemer med ADFSv2 ved brug af SAML2-authentication request-scoping-elementer (præ-valg af IdP'er på SP-siden). ADFSv2 understøtter ikke SAML2-scoping og fejler under behandlingen af authentication requests med scoping-elementer.

WAYF har ændret håndteringen af scoping-elementer således at scoping-elementer ikke længere sendes videre – omend authentication request'en sendes til IdP'en. Denne adfærd er ikke i overenstemmelse med SAML2-specifikationen, men må anses for en nødvendig, omend uønsket, tilpasning for at få ADFSv2-IdP'er til at fungere.

Så snart ADFSv2 understøtter SAML2-scopingelementer, vil WAYF igen overholde SAML2-spec'en.

Referencer

  1. Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0 – http://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf
  2. SimpleSAMLphp – http://code.google.com/p/simplesamlphp/
  3. SimpleSAMLphp-dokumentation – http://simplesamlphp.org
  4. SimpleSAMLphp-scoping-dokumentation – http://simplesamlphp.org/docs/1.6/simplesamlphp-scoping
  5. Liste over institutioner koblet til WAYF – https://wayf.wayf.dk/module.php/wayf/idp-metadata.php
  6. Liste (php) over institutioner inkl. entityID, navn og schacHomeOrganization: https://wayf.wayf.dk/module.php/wayf/idpTilTjeneste.php
  7. Liste (xml) over institutioner inkl. entityID, navn og schacHomeOrganization: https://wayf.wayf.dk/module.php/wayf/idpTilTjeneste.php?format=xml
  8. Beskrivelse af schacHomeOrganization-attribut – http://wayf.dk/index.php/da/tjenester/teknisk-tilslutning-af-tjeneste/133
  9. Metadata for WAYF – https://wayf.wayf.dk/saml2/idp/metadata.php

WAYF – Where Are You From
Asmussens Allé, bygning 305
2800 Kgs. Lyngby

www.wayf.dk
sekretariat@wayf.dk

line
You are here