Caution: You are browsing the legacy symfony 1.x part of this website.
SymfonyWorld Online 2020
100% online
30+ talks + workshops
Live + Replay watch talks later

Il file di configurazione security.yml

1.4
Symfony version
1.2
Language

Il file di configurazione security.yml descrive le regole di autenticazione e autorizzazione per un'applicazione symfony.

tip

Le informazioni di configurazione del file security.yml sono usate dalla classe factory user (predefinita sfBasicSecurityUser). L'esecuzione dell'autenticazione e dell'autorizzazione è fatta dal filtro security.

Quando un'applicazione è creata, symfony genera un file predefinito security.yml, nella cartella dell'applicazione config/, che descrive la sicurezza per l'intera applicazione (sotto la chiave default):

default:
  is_secure: false

Come discusso in sede di introduzione, il file security.yml trae benefici dal meccanismo di configurazione a cascata e può includere costanti.

La configurazione predefinita dell'applicazione può essere sovrascritta per un modulo, creando un file security.yml nella cartella config/ del modulo stesso. Le chiavi principali sono nomi di azioni senza il prefisso execute (ad esempio index per il metodo executeIndex).

Per determinare se una azione è sicura o no, symfony cerca le informazioni nel seguente ordine:

  • una configurazione per l'azione specifica nel file della configurazione del modulo, se esiste;

  • una configurazione per l'intero modulo nel file di configurazione del modulo, se esiste (sotto la chiave all);

  • la configurazione predefinita dell'applicazione (sotto la chiave default).

Le stesse regole di precedenza sono usate per determinare le credenziali necessarie per accedere a una azione.

note

Il file di configurazione security.yml è memorizzato nella cache come file PHP; il processo è gestito automaticamente dalla classe sfSecurityConfigHandler.

Autenticazione

La configurazione predefinita di security.yml, installato in modo predefinito per ogni applicazione, autorizza l'accesso a chiunque:

default:
  is_secure: false

Con l'impostazione della chiave is_secure su true nel file dell'applicazione security.yml, l'intera applicazione richiederà l'autenticazione per tutti gli utenti.

note

Quando un utente non autenticato prova ad accedere a una azione messa in sicurezza, symfony inoltra la richiesta all'azione login configurata in settings.yml.

Per modificare i requisiti di autenticazione di un modulo, creare un file security.yml nella cartella config/ del modulo e definire una chiave all:

all:
  is_secure: true

Per modificare i requisiti di autenticazione di una singola azione di un modulo, creare un file security.yml nella cartella config/ del modulo e definire una chiave dopo il nome dell'azione:

index:
  is_secure: false

tip

Non è possibile mettere in sicurezza l'azione di login. Questo per evitare una ricorsione infinita.

Autorizzazione

Quando un utente è autenticato, l'accesso ad alcune azioni può essere maggiormente limitato definendo delle credenziali. Quando le credenziali sono definite, un utente deve avere le credenziali richieste, per accedere all'azione:

all:
  is_secure:   true
  credentials: admin

Il sistema di credenziali di symfony è semplice e potente. Una credenziale è una stringa che può rappresentare tutto quello di cui si ha bisogno per descrivere il modello di sicurezza dell'applicazione (come gruppi e permessi).

La chiave credentials supporta operazioni booleane per descrivere complessi requisiti di credenziali, utilizzando la notazione array.

Se un utente deve avere la credenziale A e la credenziale B, inserire le credenziali con parentesi quadre:

index:
  credentials: [A, B]

Se un utente deve avere la credenziale A o la credenziale B, inserire le credenziali con due paia di parentesi quadre:

index:
  credentials: [[A, B]]

È possibile anche mischiare e combinare parentesi per descrivere ogni tipo di espressione booleana con qualunque numero di credenziali.