cs:tech:idp:attributes

Tento návod je již zastaralý a zůstává zde spíše jen pro dokumentačí důvody. Přejděte na aktuální návod.


Shibboleth IdP 2 - nastavení atributů

Konfigurace atributů je umístěna do dvou souborů:

  • attribute-resolver.xml - definice atributů a datových zdrojů, kde jsou atributy uložené (LDAP, SQL databáaze, …)
  • attribute-filter.xml - definice pravidel pro uvolňování atributů

:!: Konfigurace persistentního ID (eduPersonTargetedID) s příslušným storedId data konektorem je popsána ve zvláštním návodě.

attribute-resolver.xml

Po instalaci jsou v tomto souboru k dispozici (zakomentované) definice všech běžně používaných atributů a také několik příkladů datových uložišť (data connectors). Obvykle stačí odkomentovat potřebné definice atributů a nastavit alespoň jeden DataConnector element.

Příklad:

    <resolver:DataConnector id="myLDAP" xsi:type="LDAPDirectory" xmlns="urn:mace:shibboleth:2.0:resolver:dc"
        ldapURL="ldaps://ldap.example.cz" 
        baseDN="dc=example,dc=cz" 
        principal="uid=shib,ou=Special Users,dc=example,dc=cz"
        principalCredential="***">
        <FilterTemplate>
            <![CDATA[
                (uid=$requestContext.principalName)
            ]]>
        </FilterTemplate>
    </resolver:DataConnector>

V tomto příkladě se atributy získávájí z LDAP, ke kterému se Shibboleth připojuje pod speciálním uživatelem shib. Speciální uživatel musí mít pravo čtení pro všechny atributy, které chceme získat. Pokud lze všechny potřebné atributy získat i anonymním připojením, neni nutné používat speciálního uživatele a je možné vypustit atributy principal a principalCredential.

:!: V případě použití SSL (ldaps) musíme importovat CA certifikát, kterým byl podepsán certifikát na straně serveru, do default java keystore, viz návod.

Podrobné informace o definicích atributů a datových uložišť najdete v oficiální dokumentaci.

attribute-filter.xml

V tomto konfiguračním souboru lze definovat které atributy uvolňovat na základě jednoduchých i komplexních podmínek. Výchozí konfigurace je nastavena tak, aby se neuvolňovaly žádné atributy. Proto je potřeba definovat pravidla pro uvolňování potřebných atributů. V běžném případě je vhodné definovat politiku pro danou federaci, čímž zajistíme, že atributy budou uvolňovány pouze pro členy této federace.

K tomuto účelu použijeme AttributePolicy element s podminkou (PolicyRequirementRule) typu AttributeRequesterInEntityGroup a přidáme atributy, které chceme sdílet:

<!-- Policy for the eduID.cz federation -->
<AttributeFilterPolicy id="eduid">
 
    <!-- Restriction by group -->
    <PolicyRequirementRule xsi:type="saml:AttributeRequesterInEntityGroup"  
        groupID="FEDERATION_ID" />
 
    <AttributeRule attributeID="eduPersonPrincipalName">
        <PermitValueRule xsi:type="basic:ANY" />  
    </AttributeRule>
 
    <AttributeRule attributeID="eduPersonScopedAffiliation">
        <PermitValueRule xsi:type="basic:ANY" />
    </AttributeRule>
 
    <!-- [..] -->
 
</AttributeFilterPolicy>

Hodnota atributu groupId musí odpovídat ID federace.

Syntaxe konfigurace umožňuje použití řady různých podmínek a jejich kombinace pomocí logických výrazů. Více informací najdete v oficiální dokumentaci.

Last modified:: 2017/02/10 07:02