VerificareRilascioAttributiAACLI

Da WIKI IDEM GARR.
Versione del 16 apr 2024 alle 13:09 di Monticini@garr.it (discussione | contributi)
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Jump to navigation Jump to search

Shibboleth Identity Provider (IdP) include uno strumento incredibilmente utile e potente per determinare, senza eseguire una sequenza di autenticazione effettiva, quali attributi verranno rilasciati per un determinato utente (principal) e fornitore di servizi (service provider - sp).

Tale strumento ha il nome di Attribute Authority Command Line Interface ( AACLI ) .

Si può richiamare lo strumento AACLI eseguendo uno script nel terminale, ad esempio {idp.home}/bin/aacli.sh(o {idp.home}/bin/aacli.batper installazioni Windows):

[user @ /opt/shibboleth-idp/]$ ./bin/aacli.sh -n <user-id> -r <entityID-ufficiale-SP>

Affinché il comando produca un risultato sensato è necessario almeno indicare:

  • <user-id> - deve essere un'identità esistente
  • <entityID-ufficiale-SP> - deve essere l'entityID di un Service Provider esistente i cui metadata siano stati configurati nel file metadata-provider.xml

Per conoscere l'entityID di uno specifico Service Provider utilizzare lo strumento IDEM Registry (è necessario fare login con il proprio IdP) o il database di eduGAIN.

All'interno della Federazione IDEM-test è presente il seguente Service Provider di test: https://sp.aai-test.garr.it/shibboleth

All'interno della Federazione IDEM è presente il seguente Service Provider di test: https://sp-demo.idem.garr.it/shibboleth

Parametri per la query
Command Line Description
--acsIndex, -i Identifies the index of an <md:AttributeConsumingService> element in the SP's metadata, which allows certain uncommonly used filtering rules to be run
--requester, -r Required, identifies the relying party (SP) to simulate a resolution for
--principal, -n Required, names the subject/user to simulate a resolution for
--saml1 Value is ignored, if present causes the output to be encoded into a SAML 1.1 assertion
--saml2 Value is ignored, if present causes the output to be encoded into a SAML 2.0 assertion
--unfiltered (only from 5.1) Value is ignored, if present causes the non-SAML output to include all attributes, not just filtered results

Per formattare l'output è consigliabile installare jq e seguire quanto indicato qui sotto:

... | jq 'walk( if type == "array" then sort else . end )'

Esempio:

./bin/aacli.sh -n <existing-username> -r https://sp.aai-test.garr.it/shibboleth | jq 'walk( if type == "array" then sort else . end )'