2013-09-07 3 views
2

Active Directory에서만 암호 변경 사항을 폴링하는 데 권장되는 방법은 무엇입니까? 업데이트 된 암호를 얻고 다른 곳에서 업데이트 하시겠습니까?Active Directory에서 암호 만 변경하기위한 설문 조사

'DirectoryNotificationControl'클래스와 같은 System.DirectoryServices.Protocols 네임 스페이스의 클래스를 살펴 보았습니다. 그러나이 속성이 폴링하고 나중에 우리가 관심있는 속성 (암호)이 실제로 변경되었는지 확인해야 할 것처럼 보입니다. .

활성 디렉토리에서 비밀번호 값을 얻는 방법은 무엇입니까? 매우 복잡하지만 LSA를 사용할 수 있습니다.

+0

매우 복잡하지만 LSA를 사용하는 것이 가능합니다. – user1576882

답변

0

기본적으로 암호 (암호화 된 방식으로 저장 됨)는 Active Directory에서 읽을 수 없습니다. 가역적으로 저장할 수있는 정책을 변경할 수는 있지만 실제로는 좋지 않습니다.

제가 아는 유일한 방법은 각 클라이언트 컴퓨터에 componant를 설치하는 것입니다. 구성 요소가 암호 변경을 포착하고 원하는 작업을 수행 할 수 있습니다.

NT에서 XP로이 구성 요소는 GINA (DLL)라고 불렀습니다. Vista 시작시이 컴패니언은 Credential Provider API를 사용하여 작성해야합니다.

3

도메인 컨트롤러에 호스팅 된 Password Filter Dll을 작성하는 것만으로 "단순한"방식 ("단순한"주위에는 큰 따옴표가 있습니다)을 작성하는 것입니다.

PasswordChangeNotify 인터페이스를 구현하고 암호 변경을 알리는 데 필요한 외부 요소를 코드가 업데이트하도록 할 수 있습니다.

그러나 네이티브 코드로 수행해야하므로 C#을 사용할 수 없습니다.


나는 원래 그러나 내가 길을 따라 발견 않은 한 가지가 될 수 있음을 오픈 소스 프로젝트가 passwdhk라고했다,이 길을 가서 그것을 포기 결국 변경된 암호를 추적하는 다른 방법을 사용 당신에게 도움이됩니다.

passwdhk는 암호 필터 DLL을 구현하지만 모든 필터는 암호 변경 알림 기능으로 전달되는 명령 줄 인수를 사용하여 다른 실행 파일을 시작합니다 ("변경 후 프로그램"은 전달 중임). 인수는 PasswordChangeNotify에서 "변경 전 프로그램"은 PasswordFilter의 인수를 전달합니다. 이렇게하면 C#에서 다른 서비스를 업데이트하는 코드를 작성할 수 있으며 암호 자체를 가로 채는 대신 명령 줄에서 암호를 가져옵니다.

+0

+1 오른쪽, 이것을 잊어 버렸습니다. 그러나 각 도메인 컨트롤러 또는 특정 역할이있는 도메인 컨트롤러에서만 구현해야합니까? – JPBlanc

+0

@JPBlanc [이 MSDN 페이지] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms721884%28v=vs.85%29.aspx) "* 모든 도메인 컨트롤러는 쓰기 가능하지만, 그러므로 도메인 필터에 암호 필터 패키지가 있어야합니다. ** Windows NT 4.0 도메인 : ** 도메인 계정에 대한 알림은 주 도메인 컨트롤러에서만 발생하며 주 도메인 컨트롤러 외에도 암호 필터 패키지는 모든 백업 도메인 컨트롤러에 설치되어 서버 역할이 변경 될 때 알림을 계속받을 수 있습니다. * " –