giovedì 21 giugno 2012

FileMaker Pro: Limitare l'accesso al record

In ufficio mi è arrivata una richiesta particolare e specifica. Dato un DB FileMaker Pro, fare in modo che gli utenti di dominio Active Directory (vedi Come configurare FileMaker Server per il SSO su Microsoft Active Directory) potessero accedervi via IWP (Istant Web Publishing), limitando la possibilità di modifica ad un solo record specifico dell'utente.

FileMaker ha una gestione degli account e privilegi molto potente e completa, ma nulla che possa far controllare l'accesso ai record. Probabilmente perché i record non sono elementi di definizione della base dati. Per realizzare tale caratteristica ho quindi proceduto nel seguente modo:

  1. Ho creato un nuovo set di privilegi (File|Gestisci|Account e Privilegi...|Set di privilegi|Nuovo...) chiamato IWP_DALR (IWP sta per Istant Web Publishing, mentre DALR sono le iniziali del nome del file fp7 di demo "Demo Accesso Limitato a un Record). Tale set è utilizzato esclusivamente per accesso tramite pubblicazione web immediata. In particolare questo set consente agli utenti di modificare il contenuto del database.
    Impostazioni per il set di privilegi IWP_DARL

  2. Passando sulla scheda Account ho fatto clic su Nuovo... ed ho creato un account autenticato su server esterno (Microsoft Active Directory) chiamandolo DALR_Tutti, dato che autentica tutti gli utenti di dominio e dandogli come set di privilegi IWP_DALR.
    Aggiungi didascalia

  3. Ho quindi implementato uno script chiamato "Script di Avvio" il cui codice è il seguente:
    Script di Avvio
    Questo script controlla se l'utente ha come set di privilegi IWP_DALR, nel qual caso passa al formato scheda dedicato al web. Esegue una ricerca sul campo username, utilizzando come valore di ricerca il nome account fornito dall'utente in fase di login. Se non trovo nessun record ne crea uno, ed assegna al campo username il nome account utilizzato dall'utente. Quindi nasconde la barra di stato e ne impedisce la riapertura. Per altri set di privilegi tutto questo non accade.
  4. In File|Opzioni File... ho selezionato il mio Script di Avvio di modo che sia eseguito automaticamente al momento dell'accesso al DB.
    Esecuzione automatica dello Script di Avvio
     
  5. Sono andato sul server di dominio in cui ho definito il gruppo DALR_Tutti nella OU dedicata al mio FileMaker Server. Ho reso membro del gruppo appena creato il gruppo Domain Users, di modo che tutti gli utenti di dominio possano accedere via web utilizzando come credenziali il proprio account di dominio.
    Modifiche al server Active Directory
  6. Infine ho caricato il mio DataBase di prova su FileMaker Server e l'ho aperto.

In tal modo chi accede tramite IWP visualizza e modifica solo il proprio record. L'account DALR_Tutti deve essere l'ultimo in ordine di autenticazione (nella scheda account vista prima). Ciò perchè limitando l'accesso ad un solo record, impone una restrizione che per utenti con privilegi più ambi andrebbe evitata. In tal senso autenticazioni specifiche vanno poste prima di questa che è un'autenticazione di massa.