Konfigurace Shibboleth IdP 2 s LDAP autentizaci

relying-party.xml

RelyingParty

V conf/relying-party.xml definujeme zvláštní element RelyingParty (třeba hned za elementem DefaultRelyingParty):

    <RelyingParty id="urn:mace:cesnet.cz:cztestfed"
                  provider="https://idp2.cesnet.cz/idp/shibboleth"
                  defaultSigningCredentialRef="testshib"
                  defaultAuthenticationMethod="urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport">
 
        <ProfileConfiguration xsi:type="saml:ShibbolethSSOProfile" />
        <ProfileConfiguration xsi:type="saml:SAML1AttributeQueryProfile" />
        <ProfileConfiguration xsi:type="saml:SAML1ArtifactResolutionProfile" />
        <ProfileConfiguration xsi:type="saml:SAML2SSOProfile" />
        <ProfileConfiguration xsi:type="saml:SAML2AttributeQueryProfile" />
        <ProfileConfiguration xsi:type="saml:SAML2ArtifactResolutionProfile" />
 
    </RelyingParty>

Význam atributů:

  • id - identifikace federace, uvádí se v atributu Name v root elementu EntitiesDescriptor v metadatech
  • provider - provider ID
  • defaultSigningCredentialRef - odkaz na příslušný Credential element, kde jsou uvedeny cesty k certifikátům a klíčům (viz dále)
  • defaultAuthenticationMethod - typ autentizace, možné typy jsou definovány v conf/handler.xml (Login handlers)

Dostupné způsoby autentizace jsou popsány v dokumentaci.

MetadataProvider

V elementu MetadataProvider nastavíme způsob získávání metadat. Je několik možnosti, nejjednodušší z nich je lokálně uložený soubor:

  <MetadataProvider id="ShibbolethMetadata" xsi:type="ChainingMetadataProvider"   
      xmlns="urn:mace:shibboleth:2.0:metadata"> 
 
      <MetadataProvider id="cztestfed" xsi:type="FilesystemMetadataProvider" 
          xmlns="urn:mace:shibboleth:2.0:metadata"
          metadataFile="/opt/shibboleth-idp/metadata/cztestfed-metadata.xml" 
          maintainExpiredMetadata="true" />
 
  </MetadataProvider>

Další možnosti jsou podrobně popsány v dokumentaci.

Certifikáty

    <security:Credential id="testshib" xsi:type="security:X509Filesystem">
        <security:PrivateKey>/opt/shibboleth-idp/credentials/testshib.key</security:PrivateKey>
        <security:Certificate>/opt/shibboleth-idp/credentials/testshib.crt</security:Certificate>
    </security:Credential>

LDAP autentizace

Kompletní přehled možností nastavení najdete v dokumentaci.

Nastavení LDAP

Pro každou skupinu (relying party) lze definovat typ autentizace (viz výše). Pro LDAP autentizaci je potřeba použít typ UserPassword. Je definován v souboru conf/handler.xml. Definice je implicitně zakomentována, takže je potřeba ji odkomentovat:

    <!--  Username/password login handler -->
    <LoginHandler xsi:type="UsernamePassword" 
                  jaasConfigurationLocation="file:///opt/shibboleth-idp/conf/login.config">
        <AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</AuthenticationMe
    </LoginHandler>

Řetězec obsažený v elementu AuthenticationMethod se uvadi v atributu defaultAuthenticationMethod elementu RelyingParty (konfigurační soubor relying-party.xml, viz výše).

LDAP autentizace u Shibboleth IdP se provádí pomocí JAAS. Konfiguraci zapíšeme do souboru conf/login.config:

ShibUserPassAuth {
   edu.vt.middleware.ldap.jaas.LdapLoginModule required
      host="ldap1.example.org ldap2.example.org ldap3.example.org"
      base="ou=people,dc=example,dc=org"
      ssl="true"
      userField="uid";
};

Přihlašovací stránka

Tato sekce neni nezbytná pro funkci IdP. Pro testování stačí implicitní přihlašovací stránka, proto můžete tu část přeskočit a vrátit se k ní později.

Pro zadání přihlašovacích údajů Shibboleth IdP disponuje standardní přihlašovací stránkou s formulářem. Vzhled přihlašovací stránky lze upravit dvojím způsobem - přímou editací anebo nastavením alternativní stránky.

Pro přímou editaci změňte obsah souboru resources/webpages/login.jsp (a případně i další jako např. error.jsp apod.) v adresáři, kde máte rozbalenou distribuci Shibboleth IdP 2 (/opt/tmp/identityprovider).

Jiná možnost je v nastavení uvést alternativní soubory. Například, když umístíte svůj login.jsp do resources/webpages/myfed/login.jsp, v konfiguraci resources/WEB-INF/web.xml nastavte u příslušného handleru parametr loginPage:

    <servlet>
        <servlet-name>UsernamePasswordAuthHandler</servlet-name>
        <servlet-class>edu.internet2.middleware.shibboleth.idp.authn.provider.UsernamePasswordLoginServlet</servlet-class>
        <init-param>
            <param-name>loginPage</param-name>
            <param-value>myfed/login.jsp</param-value>
        </init-param>
    </servlet>

Podobným způsobem můžete změnit i cesty k chybovým stránkám error.jsp a error-404.jsp (viz stejný konfigurační soubor). U nich je ale potřeba uvést absolutní cestu, jinak aplikace zahlásí chybu.

Pravděpodobně bude potřeba nastavit jiné kodování stránky než standardní ISO-8859-1. Stačí když na začátku dané stránky připíšeme (viz Tomcat Wiki):

<%@ page 
 contentType="text/html; charset=UTF-8"
%> 

Pro uvedení změn do provozu je potřeba znovu spustit instalační skript ant.sh (na otázku odpověďte no, abyste si nepřepsali konfiguraci) a poté restartovat tomcat:

idp2:/opt/tmp/identityprovider# sh ./ant.sh 
Buildfile: build.xml

install:
Is this a new installation? Answering yes will overwrite your current configuration. [yes|no]
no
Copying 1 file to /opt/tmp/identityprovider/build/WEB-INF
JARs are never empty, they contain at least a manifest file
Building jar: /opt/shibboleth-idp/war/idp.war

BUILD SUCCESSFUL
Total time: 4 seconds
idp2:/opt/tmp/identityprovider# /etc/init.d/tomcat5.5 restart
Stopping Tomcat servlet engine: tomcat5.5 ..
Starting Tomcat servlet engine: tomcat5.5.

Atributy

Nastavení atributů u Shibboleth IdP 2.0 se podobá nastavení z verze 1.3. V konfiguračním souboru attribute-resolver.xml se nastavuje získávání atributů z různých datových zdrojů a v souboru attribute-map.xml se definuji pravidla pro jejich uvolňování.

Metadata

Na základě uvedených udajů během instalace jsou pro daný IdP vygenerovaná metadata, která jsou uložena v souboru metadata/idp-metadata.xml. Před použitím je potřeba pozměnit a případně doplnit v nich některé údaje, především entityID, scope a případně i certifikáty tak, aby odpovídaly aktuální konfiguraci.

cztestfed/howto/idp2/config/ldap_auth/index.txt · Poslední úprava: 2008-09-24 18:25 (upraveno mimo DokuWiki)
CESNET2 powered
CC Attribution-Noncommercial-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0