Quanto sono sicuri dipende interamente da ciò che vuoi difendere e da ciò che vuoi difendere. Difendersi da un dipendente interno che vuole esaminare i dati delle vendite dei propri colleghi è diverso da un aggressore esterno che vuole sottrarre informazioni ai clienti, che è diverso dalla difesa contro un governo che vuole rubare i propri progetti proprietari.
In generale, questi provider non sono insicuri in quanto seguono le raccomandazioni di base come la salatura delle password, consentendo di modificare l'algoritmo hash, ecc. (incluse anche le informazioni non crittografiche). Tuttavia, si entra nei problemi di configurazione come assicurarsi che la connessione a SQL sia sicura, la pagina in cui POST le credenziali sono su SSL, o che i cookie di sessione siano protetti tramite SSL, l'accesso al database stesso sia sicuro, ecc.
In confronto, l'autenticazione di Windows ha problemi simili, quindi si entra in problemi di limiti di sicurezza, poiché diventa complicato utilizzare Windows Auth su Internet.
Nella teoria un archivio di Active Directory probabilmente sarà più sicuro di un database SQL Server medio, ma in realtà se tutto ciò che si sta utilizzando è l'autenticazione dell'utente su un sito Web pubblico, è probabile che MOLTO insicuro perché probabilmente non è trattato come l'AD aziendale. Poi di nuovo, corporate AD probabilmente non è trattato bene (in generale, non necessariamente nel tuo caso).
I database SQL sono soggetti agli attacchi di SQL injection, gli archivi di Active Directory sono soggetti a attacchi specifici di Windows. I database SQL tendono a causare l'espansione delle identità ... più account utente per più applicazioni distribuite su più database. Active Directory conduce account centralizzati. O potrebbe essere buono o cattivo, dipende da cosa stai cercando di realizzare.
La scrittura dei propri fornitori di solito non è raccomandata in quanto non sono stati sottoposti a scrutinio pubblico, mentre i provider integrati in .NET lo hanno. I fornitori di terze parti si imbattono nello stesso problema di base. Come sono stati testati?
E poi questo fa sorgere una domanda sul perché stai lasciando che l'applicazione gestisca l'autenticazione stessa? Forse è meglio lasciare che qualcun altro lo faccia tramite l'autenticazione basata sulle attestazioni. Ciò spinge il rischio su un altro sistema come Google, Facebook o Windows Live.