Considerazioni sulla sicurezza per LightSwitch
La maggior parte delle applicazioni aziendali con requisiti di protezione. Ad esempio, è possibile limite quali dipendenti hanno accesso a un'applicazione o alle schermate in un'applicazione e che gli utenti possono visualizzare o aggiornare alcuni dati. LightSwitchfornisce un modello di autorizzazione che contribuisce di implementare la protezione dell'applicazione e di autenticazione incorporato.
Autenticazione e autorizzazione
L'autenticazione è un meccanismo per verificare l'identità utente. Ad esempio, quando si accede a Windows, il nome utente e la password l'autenticazione che sono realmente è. L'autorizzazione è un meccanismo per definire il possibile – o – non. Ad esempio, un dipendente potrebbe essere in grado di visualizzare le proprie informazioni sulla retribuzione, ma che molto probabilmente sarebbe non essere autorizzati a si sono generare una retribuzione.
In LightSwitch, l'autenticazione viene gestita da una schermata di accesso utilizzato per identificare l'utente. Una volta autenticato un utente, ruoli e autorizzazioni determinano cosa che l'utente è autorizzato a eseguire l'applicazione.
Attivazione dell'autenticazione
L'autenticazione in LightSwitchè disattivato per impostazione predefinita. abilitarlo nel Il controllo di accesso scheda della finestra di progettazione di applicazioni. L'autenticazione di Windows e autenticazione basata su form sono supportati. L'autenticazione di Windows utilizza le informazioni di accesso di Windows dell'utente per identificare l'utente. Autenticazione basata su form, un amministratore di applicazione crea l'identità dell'utente e password.
Quando si sceglie l'autenticazione di Windows, è possibile scegliere se specifici utenti o tutti gli utenti di Windows dispongono di accesso all'applicazione. Se si sceglie di tutti gli utenti, qualsiasi utente che dispone di un ID di accesso di Windows valido sarà in grado di accedere all'applicazione, ma verrà autorizzati solo per le autorizzazioni minime. È comunque possibile assegnare ruoli e autorizzazioni per singoli utenti secondo necessità.
Le autorizzazioni, gli utenti e ruoli
Autorizzazione in LightSwitchoperazione viene esguita definendo le autorizzazioni, gli utenti e ruoli. Le autorizzazioni vengono create dallo sviluppatore sul Il controllo di accesso scheda della finestra di progettazione di applicazioni e l'effetto di tali autorizzazioni è progettati per la scrittura di codice. Ad esempio, è possibile creare un'autorizzazione di ViewSales per autorizzare gli utenti di visualizzare una schermata di vendita. Nella CanViewmetodo per lo schermo, è necessario scrivere codice che consente solo lo schermo da visualizzare se l'utente corrente dispone delle autorizzazioni necessarie per visualizzare tale Oltre all'impostazione delle autorizzazioni per visualizzare schermate, è inoltre possibile creare le autorizzazioni per limitare l'accesso ai singoli controlli su schermo, per l'entità di dati o campi di un'entità per le query e così via.
I ruoli vengono creati dall'amministratore di applicazione dopo l'applicazione è stata distribuita. Un ruolo contiene uno o più autorizzazioni. Ad esempio, l'amministratore potrebbe definire un ruolo di vendita e assegnare l'autorizzazione di ViewSales a tale ruolo. Inoltre, l'amministratore dell'applicazione consente di aggiungere utenti e assegna i ruoli agli utenti. Ad esempio, se Bob è del reparto vendite, l'amministratore può aggiungere Bob come utente aggiungendo le informazioni di autenticazione e quindi assegnarlo al ruolo Sales. Quando si esegue l'applicazione, il codice dovrebbe valutare le informazioni relative all'utente di Luca, che egli sia un membro del ruolo Sales e visualizzare la voce di menu per visualizzare la schermata di vendita.
Ogni applicazione dispone di autorizzazioni predefinito, il SecurityAdministration autorizzazione. Questa autorizzazione concede l'accesso per il gli utenti e ruoli schermate di amministrazione utilizzati per l'amministratore dell'applicazione. Quando viene pubblicata un'applicazione per la prima volta, è possibile fornire informazioni di autenticazione per la persona che sarà l'amministratore dell'applicazione predefinito. Tale persona alla prima esecuzione dell'applicazione, saranno in grado di vedere il gli utenti e ruoli schermi e definire utenti e ruoli.
Verifica autorizzazione
Quando si verifica un'applicazione si desidera assicurarsi che tutte le autorizzazioni definite funzionino come previsto. A tale scopo l'attivazione delle autorizzazioni di debug sul Il controllo di accesso scheda della finestra di progettazione di applicazioni. Ad esempio, se è definito un ViewSales di autorizzazioni, è possibile verificare la concessa per il Debug casella di controllo per l'autorizzazione. Quando si esegue il debug dell'applicazione, è possibile verificare che è possibile visualizzare la schermata di vendita, in esecuzione come utente che dispone dell'autorizzazione ViewSales. È possibile impostare qualsiasi combinazione di autorizzazioni per emulare le autorizzazioni che possono essere assegnate a un determinato ruolo.
Nota
Se si attiva il SecurityAdministration autorizzazione per il debug, è possibile visualizzare l'amministrazione gli utenti e ruoli mentre esegue il debug delle schermate.In questi schermi, è possibile immettere gli utenti e ruoli, gli utenti e i ruoli non verranno distribuiti con l'applicazione e non possono essere utilizzati per il debug delle autorizzazioni.
Connessioni protette
Per le applicazioni client a tre livelli basati su LightSwitche ospitato in un server che esegue Internet Information Services (IIS), comunicazione tra l'applicazione e il server utilizza il protocollo HTTP anziché il protocollo HTTPS, che è più sicuro. Questo requisito, è possibile lasciare l'applicazione vulnerabile agli attacchi. La crittografia Secure Sockets Layer (SSL) contribuisce a proteggere le informazioni personali o riservate che viene inviate tra un'applicazione client e un server. Quando è abilitato SSL, applicazioni client remoti di accedono al server utilizzando gli URL che iniziano con https://. È consigliabile configurare SSL per qualsiasi sito che ospita un'applicazione basata su LightSwitch. Per ulteriori informazioni, vedere Configuring Secure Sockets Layer in IIS 7.
Per attivare SSL
Sulla barra dei menu, scegliere Build, pubblica.
Nella Pubblicazione guidata applicazione, scegliere il Le impostazioni di protezione scheda.
Nella Richiedi connessione protetta (HTTPS) sezione, scegliere il in pulsante di opzione.
Nota
Quando questa impostazione è attivata, il sito Web deve essere correttamente configurato per utilizzare HTTPS.
Per le applicazioni a tre livelli che utilizzano SQL Server per il livello dati, la comunicazione tra IIS e il database è anche potenzialmente vulnerabile. È consigliabile configurare SSL per tutti i database che è possibile accedere da un'applicazione basata su LightSwitch. Per ulteriori informazioni, vedere Crittografia connessioni a SQL Server.
Protezione e controllo della versione
Quando si lavora con un LightSwitchprogetto è incluso nel controllo della versione, una stringa di connessione nel file Web. config può contenere il nome utente e la password per gli sviluppatori più recenti del progetto. Queste informazioni saranno rese disponibili per gli sviluppatori successivo estrae il progetto.
Questo problema non si applica a un'applicazione pubblicata; informazioni sulla stringa di connessione dalla pubblicazione guidata non viene salvate nel controllo della versione. Utilizzando un database di test invece di un database di produzione in fase di progettazione, è possibile impedire agli utenti non autorizzati di accedere ai dati di produzione.
Ulteriori considerazioni sulla protezione
Oltre all'autenticazione, esistono altri aspetti di sicurezza da prendere in considerazione. Anche se l'applicazione non gestire i dati aziendali riservati, altre informazioni come le password potrebbero essere a rischio di esposizione.
Protezione è anche un fattore importante quando si scrive codice che accede a un server. Ad esempio, il codice di query per filtrare i dati dipendenti in modo dipendenti possono visualizzare solo i propri dati:
Private Partial Sub Employees_All_PreprocessQuery(ByRef query As IQueryable(Of Application43.Employee))
query = From item In query Where item.EmpName = Me.Application.User.Nameitem
End Sub
partial void Employees_All_PreprocessQuery(ref IQueryable<Application43.Employee> query)
{
query = from item in query where item.EmpName == this.Application.User.Name select item;
}
Tale soluzione funziona per visualizzare i dati, se l'utente tenta di aggiornare o eliminare i dati e si verifica un'eccezione di concorrenza, dati di altri dipendenti vengano esposte le informazioni di errore restituito dal server. Per evitare ciò, si desidera scrivere codice aggiuntivo nei metodi di aggiornamento ed eliminazione per assicurarsi che il dipendente può visualizzare solo i propri dati:
Dim user As String = Me.Application.User.Name
If Me.DataWorkspace.ApplicationData.Employees.Where(Function(e) e.Id = entity.Id AndAlso e.EmpName = user).Execute().Count() = 0 Then
Throw New DataServiceOperationException("Permission error: Cannot modify a record you don't have access to.")
End If
string user = this.Application.User.Name;
if (this.DataWorkspace.ApplicationData.Employees.Where(e => e.Id == entity.Id && e.EmpName == user).Execute().Count() == 0)
{
throw new DataServiceOperationException("Permission error: Cannot modify a record you don't have access to.");
}
Per ulteriori informazioni sulla protezione procedure di codifica in generale, vedere Creazione di applicazioni protette.
Vedere anche
Attività
Procedura: abilitare l'autenticazione in un'app client Silverlight