Esiste un programma da riga di comando che puoi usare?
Esiste un programma da riga di comando che puoi usare?
Risposte:
Penso che la domanda debba essere distorta. Active Directory supporta sia Kerberos che NTLM. Windows proverà innanzitutto Kerberos e se tutti i requisiti non saranno soddisfatti, tornerà a NTLM.
Ti faccio un esempio, accedendo alla condivisione di file per nome come \ server1 \ share invocherebbe Kerberos e dovrebbe avere successo con la giusta autorizzazione. Ma l'accesso alla stessa condivisione di file utilizzando l'indirizzo IP invocherebbe prima Kerberos e fallire (poiché non esiste un SPN per l'indirizzo IP) e quindi eseguire il failover su NTLM.
Quindi, determina in che modo il tuo programma sta tentando di autenticarsi con AD e dovrebbe dirti quale protocollo viene utilizzato.
Sarei curioso di sapere cosa ha spinto a farti questa domanda.
Dovresti davvero controllare gli eventi di accesso, sia che il computer sia un server o una workstation. È utile capire quali utenti accedono al sistema e risolvere i problemi relativi alla sicurezza.
È possibile modificare i criteri di controllo con Criteri di gruppo: Start ... Esegui ... gpedit.msc ... Configurazione computer, Impostazioni di Windows, Impostazioni di sicurezza, Criteri locali, Criteri di controllo, "Eventi di accesso di controllo". Seleziona le caselle di controllo "Successo" e "Errore". Prova a disconnetterti e accedi per vedere alcuni eventi tipici 540 nel registro eventi di sicurezza di Windows.
Netstat mostra tutte le connessioni TCP e UDP in ascolto. usando l'opzione -na è per tutte le connessioni e nessuna risoluzione di nomi o porte. L'opzione 'b' è di mostrare il programma associato ad esso. Se il DNS è in esecuzione, potrebbe mostrare molte altre connessioni, quindi potresti voler specificare anche TCP.
Kerberos è sicuramente in esecuzione se si tratta di un controller di dominio Active Directory di distribuzione.
netstat -nab
The requested operation requires elevation.
public string FindAllUsers()
{
string strReturn="";
try
{
DirectoryEntry directoryEntry = new DirectoryEntry("WinNT://" + Environment.UserDomainName);
string userNames = "";
string authenticationType = "";
foreach (DirectoryEntry child in directoryEntry.Children)
{
if (child.SchemaClassName == "User")
{
userNames += child.Name + Environment.NewLine; //Iterates and binds all user using a newline
authenticationType += child.Username + Environment.NewLine;
}
}
strReturn = userNames + "\n\n" + authenticationType;
//Console.WriteLine("************************Users************************");
//Console.WriteLine(userNames);
//Console.WriteLine("*****************Authentication Type*****************");
//Console.WriteLine(authenticationType);
}
catch (Exception)
{
Console.WriteLine("Network error occured.");
strReturn = "";
}
return strReturn;
}
Puoi provare questo strumento. http://blog.michelbarneveld.nl/media/p/33.aspx
Questo è uno strumento per testare l'autenticazione sui siti Web. Mostrerà quale tipo di autenticazione viene utilizzato: Kerberos, NTLM, base, nessuno. Ma mostra anche altre informazioni come: SPN utilizzato, intestazioni HTTP, intestazioni di autorizzazione NTLM decodificate e Kerberos. E può anche mostrare ed eliminare i tuoi biglietti Kerberos.
Dipende dal client / server interessato. Ad esempio, esiste una pagina Web (mi dispiace, non ho tempo di cercarla ora) che puoi inserire in un sito Web che ti dirà se è stato utilizzato Kerberos o NTLM. Tuttavia non conosco alcun modo per dire quale metodo di autenticazione ha utilizzato SQL Server. Anche se come è stato suggerito prima, il registro di sicurezza potrebbe dirti.
Perché stai cercando di scoprirlo?