Đặt lại mật khẩu người dùng trong Active Directory bằng tài khoản Quản trị viên tên miền hoặc tài khoản dịch vụ khác


8

Trong Active Directory, bạn có thể đặt và thực thi các quy tắc trong đó người dùng phải sử dụng mật khẩu mạnh, không thể sử dụng hơn 5 mật khẩu cuối cùng họ đã có, thực thi độ phức tạp của mật khẩu. Có cách nào để thực thi các cài đặt đó để nếu tài khoản dịch vụ (dịch vụ web đặt lại mật khẩu) cố gắng đặt mật khẩu mới cho người dùng, nó đã được kiểm tra theo chính sách và được chấp nhận hoặc từ chối không?

Có vẻ như vì tài khoản dịch vụ đang buộc thay đổi mật khẩu, người dùng có thể nhập cùng một mật khẩu qua giao diện web và tiếp tục sử dụng cùng một mật khẩu nhiều lần. Vì đó là tài khoản dịch vụ thay đổi mật khẩu cho anh ta nên nó không được kiểm tra đối với các mật khẩu đã biết trước đó do đó các quy tắc về mật khẩu không được thực thi

Mặc dù lập trình viên có thể mã hóa độ phức tạp kiểm tra các mật khẩu cuối cùng được sử dụng, kiểm tra không thể được kiểm tra trên giao diện web vì dịch vụ web không có kiến ​​thức về mật khẩu cuối cùng.

Có thể buộc nó thay đổi mật khẩu bằng tài khoản dịch vụ như vậy cũng bị hạn chế như thay đổi mật khẩu người dùng thông thường không?

Câu trả lời:


9

Trong AD có hai loại thao tác để thay đổi mật khẩu của người dùng - một thay đổi , có thể được thực hiện ẩn danh vì nó yêu cầu mật khẩu cũ như một phần của yêu cầu và thiết lập lại , không yêu cầu mật khẩu cũ và phải được thực hiện bởi người dùng có quyền truy cập để có thể đặt lại mật khẩu cho tài khoản đang được nhắm mục tiêu.

Trong trường hợp này, ứng dụng phần mềm đang thực hiện thao tác đặt lại, không biết về mật khẩu cũ của người dùng nhưng được xác thực là tài khoản dịch vụ với các quyền cần thiết.

Từ quan điểm của AD, mật khẩu đang được thiết lập lại về mặt hành chính; Lịch sử mật khẩu không bao giờ được thực thi trong trường hợp này, vì quản trị viên thực hiện thiết lập lại không nên biết mật khẩu cũ của người dùng - nếu họ có thói quen đặt pass mới, giả sử, Thursday1nếu không đáp ứng chính sách cho thao tác đặt lại sẽ khá khó hiểu.

Mặc dù trải nghiệm người dùng kém, cơ chế tốt nhất mà tôi có thể nghĩ ra để xử lý việc này là để ứng dụng web đặt lại mật khẩu (có thể là thứ gì đó họ không nhập, vừa tạo), sau đó đặt "phải thay đổi mật khẩu trong lần đăng nhập tiếp theo "Đánh dấu trên tài khoản để buộc người dùng thực hiện ngay thao tác thay đổi mật khẩu, điều này sẽ thực thi lịch sử.

Có một số thảo luận về việc sử dụng API LDAP trong .Net để đạt được mục tiêu thực thi lịch sử đối với loại thiết lập lại này tại đây , nhưng tôi không chắc liệu đây có phải là một tùy chọn cho bạn hay không tùy thuộc vào ứng dụng bạn đang sử dụng; nếu bạn kiểm soát mã và thư viện LDAP bạn đang sử dụng các điều khiển hỗ trợ thì có thể thực hiện được.


Có thể thực hiện thay đổi mật khẩu, như bạn mô tả, trong một ứng dụng web. OWA làm điều này và trường đại học của tôi có một ứng dụng tùy chỉnh cũng làm điều này. Nó yêu cầu người dùng nhập mật khẩu cũ và sau đó mật khẩu mới hai lần, như là tiêu chuẩn. Tôi không biết chương trình đằng sau nó, đó sẽ là một chủ đề phù hợp nhất với SO.
Thomas

Đây là một ứng dụng web chia sẻ thực hiện chức năng này. Tôi chưa thử nghiệm và KHÔNG xác nhận ứng dụng này, tôi chỉ chia sẻ nó để chứng minh rằng chức năng này tồn tại. softpedia.com/get/INET/Servers/Server-Tools/ từ
Thomas

@Thomas Tôi đoán là ứng dụng anh ấy đang sử dụng là để đặt lại mật khẩu tự phục vụ khi người dùng quên mật khẩu của họ (nhưng có một số loại xác thực được thực thi bởi dịch vụ web, như câu hỏi bảo mật), điều này sẽ khiến cơ chế "thay đổi" không thể . Nếu không, chắc chắn, chỉ cần sử dụng các hoạt động thay đổi!
Shane Madden

Tôi hiểu rồi - OP đã không giải thích nếu đó là trường hợp, nhưng bạn có thể đúng.
Thomas
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.