cs:tech:edugain

Připojení do eduGAIN pro entity z eduID.cz

Co je eduGAIN?

eduGAIN je služba vyvíjená v rámci projektu GÉANT, která propojuje různé federace identit a umožňuje snadný přístup ke zdrojům a službám v rámci globální výzkumné a vzdělávací komunity. Poskytuje technické zázemí a definuje pravidla, která usnadňují interakci mezi entitami napříč různými federacemi.

K eduGAIN se připojují vždy pouze celé federace. Jednotlivé entity – poskytovatelé identit (Identity Provider, IdP) a služeb (Service Provider, SP) – se pak připojují k eduGAIN přes svou domovskou federaci. Tímto způsobem se již globální zdroje a aplikace, které poskytují své služby různým federacím, nemusí připojovat do každé federace zvlášť. Zároveň uživatelé poskytovatelů identit snadno získají přístup k aplikacím z jiných federací připojených do eduGAIN.

Výhody pro poskytovatele služeb:

  • větší počet uživatelů,
  • snížení nákladů na jednoho uživatele – není potřeba udržovat autentizační údaje a poskytovat příslušnou podporu.

Výhody pro poskytovatele identit:

  • více aplikací pro uživatele,
  • bez dalších nákladů – stačí, když je IdP členem federace, která je připojena do eguGAIN.

Výhody pro koncové uživatele:

  • přístup k většímu počtu aplikací,
  • jednotná identita a přihlašovací údaje pro všechny aplikace přístupné přes eduGAIN,
  • eduGAIN je pro uživatele transparentní – poskytuje přístup k službám, aniž by byl „vidět“.

Jak funguje?

eduGAIN definuje různé sady technických i organizačních pravidel – framework policy. Členské federace se zavazují, že tyto podmínky budou dodržovat. Samotné entity (IdP a SP) z jednotlivých federací pak už nemusí podepisovat žádné další dohody. Je čistě na domovské federaci, aby určila podmínky pro členství v eduGAINu a aby zajistila dodržování dohodnutých pravidel v rámci eduGAINu.

Na technické úrovni nepřidává eduGAIN žádné další mechanismy nad rámec SAML. Entity v eduGAINu mezi sebou komunikují jako v klasické SAML federaci. Teoreticky každá SAML kompatibilní entita může komunikovat v rámci eduGAINu. Metadata všech entit v eduGAINu se udržují v centrálním registru metadat eduGAIN (MDS). Publikaci a údržbu jednotlivých entit v registru mají na starost příslušné domovské federace. Zároveň je povinností každé členské federace, aby zpřístupnila metadata eduGAINu pro své entity.

Jak se připojit?

Entity eduID.cz se nestávají součástí eduGAINu automaticky. Je potřeba explicitně požádat o zařazení do metadat eduGAINu a samotná metadata entity musí obsahovat potřebné údaje.

Pro zařazení entity do eduGAINu je potřeba definovat speciální rozšíření na úrovni entity:

<EntityDescriptor entityID="http://example.com/shibboleth">
 
  <Extensions xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
    <eduidmd:RepublishRequest xmlns:eduidmd="http://eduid.cz/schema/metadata/1.0">
      <eduidmd:RepublishTarget>http://edugain.org/</eduidmd:RepublishTarget>
    </eduidmd:RepublishRequest>
  </Extensions>
 
    <!-- Metadata -->
 
</EntityDescriptor>

Zároveň je potřeba v metadatech doplnit některé údaje, které mají převážně informativní charakter. Jde o elementy z rozšíření MDUI.

Do dvou dnů po registraci metadat s uvedenou entitou v eduID.cz by Vaše metadata měla být registrována v eduGAIN a Vaši zahraniční partneři registrovaní v eduGAIN by Vaše metadata měli mít k dispozici.

Požadavky pro metadata

Certifikát

:!: Požadovaná délka klíče je 2048 bitů.

Organizace a kontakt

Je potřeba uvádět OrganizationName, OrganizationDisplayName a OrganizationURL v angličtině a češtině (xml:lang=„en“ a xml:lang=„cs“). Zároveň je nutné mít uveden alespoň jeden technický kontakt v elementu ContactPerson.

Příklad:

<EntityDescriptor entityID="https://login.feld.cvut.cz/idp/shibboleth">
 
  <!-- Metadata -->
 
  <Organization xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
    <OrganizationName xml:lang="en">Czech Technical University in Prague, Faculty of Electrical Engineering</OrganizationName>
    <OrganizationName xml:lang="cs">České vysoké učení technické v Praze, Fakulta elektrotechnická</OrganizationName>
    <OrganizationDisplayName xml:lang="en">Czech Technical University in Prague, Faculty of Electrical Engineering</OrganizationDisplayName>
    <OrganizationDisplayName xml:lang="cs">České vysoké učení technické v Praze, Fakulta elektrotechnická</OrganizationDisplayName>
    <OrganizationURL xml:lang="en">http://www.fel.cvut.cz/en/</OrganizationURL>
    <OrganizationURL xml:lang="cs">http://www.fel.cvut.cz/cz/</OrganizationURL>
  </Organization>
 
  <ContactPerson xmlns="urn:oasis:names:tc:SAML:2.0:metadata" contactType="technical">
    <GivenName>Ivan</GivenName>
    <SurName>Novakov</SurName>
    <EmailAddress>mailto:novakoi@fel.cvut.cz</EmailAddress>
  </ContactPerson>
 
</EntityDescriptor>

MDUI - discovery info

Pro zadávání doplňujících informací o entitě se používá MDUI rozšíření (SAML V2.0 Metadata Extensions for Login and Discovery User Interface Version 1.0). Rozšíření MDUI definuje řadu elementů, které je potřeba umístit ve zvláštním UIInfo elementu v Extensions. Tento element Extensions musí být pod elementem IDPSSODescriptor (v případě IdP) nebo pod elementem SPSSODescriptor (v případě SP). Zjednodušeně:

  • IdP → IDPSSODescriptor/Extensions/UIInfo
  • SP → SPSSODescriptor/Extensions/UIInfo

Povinné elementy jsou:

  • DisplayName – název entity, který se má zobrazovat v různých WAYF/DS nástrojích,
  • Description – popis entity,
  • InformationURLURL, kde je možné získat další informace o entitě.

Všechny tyto elementy je potřeba uvádět dvojjazyčně, tj. v angličtině a češtině. Další informace o obsahu těchto elementů naleznete v profilu metadat eduID.cz.

Příklad:

<EntityDescriptor entityID="https://login.feld.cvut.cz/idp/shibboleth">
 
  <IDPSSODescriptor>
 
    <Extensions xmlns="urn:oasis:names:tc:SAML:2.0:metadata">
 
      <shibmd:Scope regexp="false">fel.cvut.cz</shibmd:Scope>
 
      <mdui:UIInfo xmlns:mdui="urn:oasis:names:tc:SAML:metadata:ui">
        <mdui:DisplayName xml:lang="en">Czech Technical University in Prague, Faculty of Electrical Engineering</mdui:DisplayName>
        <mdui:DisplayName xml:lang="cs">České vysoké učení technické v Praze, Fakulta elektrotechnická</mdui:DisplayName>
        <mdui:Description xml:lang="en">Identity Provider for Faculty of Electrical Engineering of Czech Technical University in Prague.</mdui:Description>
        <mdui:Description xml:lang="cs">Identity Provider pro Fakultu elektrotechnickou Českého vysokého učení technického v Praze.</mdui:Description>
        <mdui:InformationURL xml:lang="en">http://www.fel.cvut.cz/en/</mdui:InformationURL>
        <mdui:InformationURL xml:lang="cs">http://www.fel.cvut.cz/cz/</mdui:InformationURL>
      </mdui:UIInfo>
 
    </Extensions>
 
    <!-- Metadata -->
 
  </IDPSSODescriptor>
 
  <!-- Metadata -->
 
</EntityDescriptor>

Zdroje metadat

Aby bylo možné komunikovat s entitami z eduGAINu, je také potřeba získat jejich metadata. Metadata entit eduGAINu najdete na následujících adresách (jsou podepsaná standardním certifikátem pro publikaci metadat eduID.cz):

Stačí je přidat jako další zdroj metadat v konfiguraci IdP nebo SP.

Přidání metadat eduGAINu do Shibboleth IdP 3 za předpokladu, že veřejný klíč k ověření podpisu v metadatech je uložen v instalaci IdP v souboru credentials/metadata.eduid.cz.crt.pem. Následující kus kódu je třeba přidat do souboru metadata-providers.xml.

<!-- eduGAIN -->
<MetadataProvider
  id="edugain-metadata"
  xsi:type="FileBackedHTTPMetadataProvider"
  backingFile="%{idp.home}/metadata/edugain.xml"
  metadataURL="https://metadata.eduid.cz/entities/edugain+sp"
  maxRefreshDelay="PT1H">
  <MetadataFilter
    xsi:type="SignatureValidation"
    requireSignedMetadata="true"
    certificateFile="%{idp.home}/credentials/metadata.eduid.cz.crt.pem" />
</MetadataProvider>

Metadata určená pro entity registrované v eduID.cz jsou filtrovováná následujícím způsobem:

  • neobsahují entity registrované v eduID.cz (snahou je zamezit konfliktům mezi metadaty přicházejícími na SP/IdP z eduID.cz a eduGAINu současně),
  • neobsahují elementy RoleDescriptor s ohledem na problémy s validací vůči schématu (dočasně od 17. 11. 2014).

Atributy

Uvolňování atributů na straně IdP (Attribute Releace Policy, ARP)

Pokud chcete specifikovat, které atributy se mají uvolňovat pro SP z eduGAIN, je potřeba v attribute-filter.xml přidat nový element AttributeReleasePolicy, například:

<!-- eduGAIN interfederation -->
<AttributeFilterPolicy id="edugain">
 
  <!-- Restriction by group -->
  <PolicyRequirementRule xsi:type="InEntityGroup" 
    groupID="http://edugain.org/" />
 
    <AttributeRule attributeID="eduPersonPrincipalName">
      <PermitValueRule xsi:type="ANY" />
    </AttributeRule>
 
    <!-- Další definice -->
 
</AttributeFilterPolicy>

Odkazy

Poslední úprava: 2017/02/10 07:02