5

Tôi đang tạo ứng dụng ASP.NET Core 1.0 mới. Một trong những yêu cầu là sử dụng Active Directory để xác thực người dùng. Rất tiếc, tổ chức của chúng tôi chỉ sử dụng Thư mục hoạt động "cũ". Chúng tôi không sử dụng Azure Active Directory.Sử dụng Active Directory chuẩn trong ứng dụng ASP.NET Core?

Khi tôi tạo ra một dự án mới trong Visual Studio 2015, không có tùy chọn cho điều này trong phần "Thay đổi xác thực":

enter image description here

cách tốt nhất để làm điều này là gì?

+0

Bạn đang tìm kiếm xác thực NTLM (đó sẽ là Windows Authentication trong ảnh chụp màn hình) hay bạn muốn sử dụng AD với ví dụ ASP.NET Identity 3? Đối với NTLM, bạn có thể tìm thấy câu trả lời cũ ở đây có vẻ như hoạt động với beta8 và RC1. Đối với ASP.NET Identity, không có gì ngoài hộp và sẽ không còn xa như tôi biết, do những lo ngại về bảo mật (cho phép bruteforcing mật khẩu và không thể chặn người dùng sau khi n lần thử thất bại). Nếu bạn vẫn muốn thử nó, bạn cần phải triển khai 'IUserStore' /' IUserPasswordStore' tùy chỉnh, nhưng được cảnh báo về phương pháp này;) – Tseng

+1

"Đối với NTLM, bạn có thể tìm câu trả lời cũ hơn ở đây" - Ý của bạn là bao gồm đường dẫn? Điều đó sẽ có tác dụng, nếu tôi có thể tìm cách cấu hình vai trò người dùng và quản trị bằng cách sử dụng xác thực NLTM. – Derek

Trả lời

3

Hiện tại không thể thực hiện được.

ASP.NET Core chỉ hỗ trợ cho OpenID Connect OIDC. Các phiên bản ADFS hiện tại, đó là những gì bạn cần làm một tổ chức duy nhất trên cơ sở chỉ hỗ trợ WSFed, mà chưa được triển khai trong Core và không được triển khai trong lõi bởi RTM. ADFS cũng hỗ trợ OAuth, nhưng nhóm AAD, người viết mã cho phần đó đã tập trung vào OIDC.

+1

Không, không. AAD hỗ trợ OIDC. – blowdart

1

ASP.NET Core 1.0 RC2 có thể tận dụng Xác thực Windows. Đoạn mã sau sẽ giúp bạn truy cập đối tượng nhận dạng người dùng AD trong hàm Configure(). Tôi đã không phát hiện ra một cách thanh lịch để ánh xạ danh tính này cho Microsoft.AspNetCore.Identity ủy quyền trong ApplicationDbContext được nêu ra.

app.Use(async (context, next) => 
    { 
      var identity = (ClaimsIdentity) context.User.Identity; 
      await next.Invoke(); 
    }); 

Tôi đã đăng một câu hỏi tương tự mà bạn có thể muốn làm theo: Best practice for storing ASP.NET Core Authorization claims when authenticating users against Active Directory?

Các vấn đề liên quan