2010-06-21 4 views
5

Qualcuno sa se è possibile configurare MSSQL 2008 per utilizzare l'autenticazione di Windows ma gli utenti dovrebbero comunque inserire la password di Windows per accedere (ciò dovrebbe essere eseguito utilizzando Delphi 7 + ADO)?HowTo usa l'autenticazione di Windows con MSSQL 2008 + Delphi 7 + ADO ma gli utenti dovrebbero comunque inserire la loro password?

[Modifica]: per chiarire, il server SQL ei client si trovano tutti nello stesso dominio Windows.

[Modifica 2]: non desidero scrivere il mio nuovo LoginDialog ma piuttosto che SQL Server lo faccia per me o diciamo il controllo DBConn.

Cordiali saluti, Reinhard

+4

L'intera idea di Autenticazione di Windows non utilizza l'attuale sessione di accesso senza che gli utenti debbano immettere nuovamente le proprie credenziali? –

+0

@Jeroen: perché? Avrei immaginato che "l'autenticazione di Windows" avrebbe autenticato un utente, ma perché fornisce anche una sorta di single-sign on (so che questo è sempre stato il caso, ma questo non significa che devo capirlo però). Forse sono troppo paranoico, ma non mi piace l'idea di dare accesso a ppl basandomi solo su un clic del mouse :-) Perché non dare la scelta se si desidera anche l'accesso singolo? – pastacool

+0

@MarkRobinson: Non vedo perché una tale applicazione sarebbe insicura? Gli utenti non conoscono nemmeno la differenza tra l'auth di sql e l'autenticazione di windows e fino ad ora all'interno del nostro vecchio sistema dovevano sempre fornire username/password poiché era stato utilizzato solo l'auth di sql. – pastacool

risposta

2

Se si voleva davvero farlo, si potrebbe richiedere all'utente di (re) inserire le credenziali e quindi verificare e gestire correttamente in base al successo/fai adescare. Per fare ciò, stai cercando la funzione LogonUser. A questo punto, è possibile anche consentire a un utente di accedere al database utilizzando credenziali diverse da quelle utilizzate per accedere al computer utilizzando la funzione ImpersonateLoggedOnUser. Si prega di consultare this answer.

+0

Grazie per il link, forse posso usarlo in qualche modo – pastacool

+0

Poiché la risposta diretta alla mia domanda è "NO, non è possibile impostare SQL Server in questo modo "Andrò avanti con quello che suggerisci nel tuo perché in questo modo posso ricostruire un Linux come" SUDO "in cui non voglio impersonare qualcun altro ma costringere l'utente a reinserire la sua password. – pastacool

2

Sarebbe piuttosto insicuro e, probabilmente, di ridurre la fiducia nella vostra applicazione se hai fatto gli utenti inseriscono il loro utente di dominio e la password di nuovo, nella vostra applicazione. Come menzionato in precedenza da Jeroen, l'idea di utilizzare l'autenticazione di Windows è che viene utilizzata la sessione utente esistente!

@MarkRobinson: Non vedo perché un'applicazione del genere non sia sicura? Gli utenti non conoscono nemmeno la differenza tra sql auth e Windows auth e fino ad oggi all'interno del nostro vecchio sistema hanno sempre ha dovuto fornire username/password dal solo auth SQL è stato utilizzato

utenti don' Sappiamo la differenza, quindi mostra loro la strada - se hanno effettuato l'accesso al loro account di dominio, e con un qualche meccanismo del tuo software sono autorizzati a usare la tua applicazione, quindi lasciateli entrare con un clic - mostra una schermata iniziale questo li rende consapevoli del fatto che li stai "Autologging con le loro credenziali di dominio ..." o simili, in questo modo li hai resi consapevoli del fatto che stai risparmiando tempo.

Sarebbe insicuro per il semplice fatto che si sta aggiungendo un passaggio che non è necessario, in quanto il login di autenticazione di Windows rimuove proprio questo problema.

Edit1:

rileggendo la domanda iniziale, posso vedere che il PO vuole solo apparire il default login di Windows pronta per garantire la sicurezza.

mi sento di raccomandare uno:

  1. assicurarsi che ci sia uno screensaver, con un timeout pertinente che costringerà un nuovo login
  2. Usa LockWorkStation per forzare un evento nuovo login (forse mostrare un messaggio prima, lungo le linee di "per sicurezza, la tua workstation sarà bloccata per assicurarti di essere chi dici di essere"
+1

Sono d'accordo che sarebbe "conveniente" non dover inserire nuovamente la password, ma ancora una volta perché questo sarebbe insicuro. Se così fosse, allora perché SUDO è usato così tanto in Linux? Sebbene un utente abbia già effettuato l'accesso con le sue credenziali Windows, desidero comunque che inserisca nuovamente la sua password per AGGIUNGERE la sicurezza, nel caso in cui si muova per un breve periodo di tempo dalla sua scrivania (so che dovrebbero "bloccare" il loro schermo ma non è così che la realtà sembra) qualcun altro potrebbe eseguire questa applicazione con le credenziali di qualcun altro. – pastacool

+0

+1 per aver menzionato "insicuro". –

+0

@pastacool SUDO è un comando OS incorporato, come RUNAS in Windows, che presumerei sicuro (come sarebbe stato testato di più), inoltre sono sicuro che le persone che eseguono SUDO e RUNAS sanno che stanno andando accedere come qualcun altro e inserire le credenziali di Windows. Buone idee sul blocco dello screen saver, preferirei aggiungere un codice che farà scattare il salvaschermo dopo 5 minuti di inattività, quindi chiedere una password per il resume = più sicuro: D –

1

Dalla pagina Scott W collegata a, c'è un buon collegamento a How to validate user credentials on Microsoft operating systems.In particolare, vanno in un po 'di dettaglio circa l'aspetto della sicurezza:

Nota Raccolta credenziali utente da un'applicazione in modalità utente può essere fastidioso per gli utenti e in grado di fornire un possibile buco di sicurezza in azienda ambiente informatico. Il requisito di accesso unificato (requisito che all'utente deve essere richiesto di digitare le proprie credenziali una sola volta nella schermata CTRL + ALT + CANC), è stato aggiunto ai requisiti del logo Microsoft BackOffice proprio per questi motivi. È importante assicurarsi di aver davvero bisogno di raccogliere le credenziali e che qualche altro metodo di validazione client/server non sia più appropriato. Consultare la documentazione sulla sicurezza nel Platform SDK per ulteriori informazioni sulla rappresentazione e la programmazione dei server protetti.