Có một chương trình dòng lệnh bạn có thể sử dụng?
Có một chương trình dòng lệnh bạn có thể sử dụng?
Câu trả lời:
Tôi nghĩ rằng câu hỏi nên được xoắn trên đầu của nó. Active Directory hỗ trợ cả Kerberos và NTLM. Trước tiên, Windows sẽ thử Kerberos và nếu tất cả các yêu cầu không được đáp ứng, nó sẽ chuyển sang NTLM.
Tôi sẽ cho bạn ví dụ, truy cập chia sẻ tệp theo tên như \ server1 \ share sẽ gọi Kerberos và sẽ thành công khi được phép. Nhưng việc truy cập cùng một tệp chia sẻ bằng địa chỉ IP sẽ gọi Kerberos trước và không thành công (vì không có SPN cho Địa chỉ IP) và sau đó không chuyển sang NTLM.
Vì vậy, hãy xác định cách chương trình của bạn đang cố xác thực với AD và sẽ cho bạn biết giao thức nào đang được sử dụng.
Tôi sẽ tò mò muốn biết, điều gì đã nhắc bạn hỏi câu hỏi này.
Bạn thực sự nên kiểm tra các sự kiện đăng nhập, cho dù máy tính là máy chủ hay máy trạm. Thật hữu ích khi tìm ra người dùng nào đang truy cập hệ thống của bạn và khắc phục sự cố liên quan đến bảo mật.
Bạn có thể sửa đổi Chính sách kiểm toán của mình bằng Chính sách nhóm: Bắt đầu ... Chạy ... gpedit.msc ... Cấu hình máy tính, Cài đặt Windows, Cài đặt bảo mật, Chính sách cục bộ, Chính sách kiểm toán, "Sự kiện đăng nhập kiểm toán". Chọn hộp kiểm "Thành công" và "Thất bại". Hãy thử đăng xuất và đăng nhập để xem một số sự kiện tiêu biểu trong Nhật ký sự kiện bảo mật Windows của bạn.
Netstat hiển thị tất cả các kết nối TCP và UDP nghe. sử dụng tùy chọn -na dành cho tất cả các kết nối và không phân giải tên hoặc cổng. Tùy chọn 'b' là hiển thị chương trình được xác định với nó. Nếu DNS đang chạy, nó có thể hiển thị rất nhiều kết nối khác, do đó bạn có thể muốn chỉ định TCP.
Kerberos chắc chắn đang chạy nếu nó là Bộ điều khiển miền Active Directory triển khai.
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;
}
Bạn có thể thử công cụ này. http://blog.michelbarneveld.nl/media/p/33.aspx
Đây là một công cụ để kiểm tra Xác thực trên các trang web. Nó sẽ hiển thị loại xác thực được sử dụng: Kerberos, NTLM, cơ bản, không có. Nhưng nó cũng hiển thị các thông tin khác như: SPN được sử dụng, tiêu đề HTTP, tiêu đề ủy quyền NTLM và Kerberos được giải mã. Và nó cũng có thể hiển thị và xóa Vé Kerberos của bạn.
Phụ thuộc vào máy khách / máy chủ có liên quan. Ví dụ: có một trang web (xin lỗi, không có thời gian để tìm kiếm nó ngay bây giờ) bạn có thể đặt một trang web sẽ cho bạn biết nếu kerberos hoặc NTLM đã được sử dụng. Tuy nhiên tôi biết không có cách nào để biết máy chủ SQL đã sử dụng phương thức xác thực nào. Mặc dù như đã được sugegsted trước đó, nhật ký bảo mật có thể cho bạn biết.
Tại sao bạn đang cố gắng tìm hiểu?