2012-06-09 2 views
0

저는 Active Directory 도메인 관리자입니다. 특정 도메인 사용자의 액세스 토큰을 얻는 방법은 무엇입니까? 이 사용자의 액세스 토큰을 사용하여이 사용자에게만 열리는 공유 폴더에서 일부 데이터를 가져오고 싶습니다. 사용자가에 기록되고 당신이 그의 토큰을 사용하여 그를 사칭하려는 경우특정 도메인 사용자의 액세스 토큰을 얻는 방법은 무엇입니까?

답변

1

다음 프로세스는 다음과 같습니다

  1. 사용 WTSEnumerateSessions 루프에서 시스템의 모든 활성 사용자를 나열 할 수 있습니다.

  2. 사용자가 원하는 경우 PWTS_SESSION_INFO 정보를 사용하여 비교하십시오.

  3. 사용자가 일치하면 WTSQueryUserToken을 사용하여 사용자 토큰을 가져옵니다. 이 API는

  4. WTSEnumerateSessions를 호출하는 동안 1 단계에서 가지고 PWTS_SESSION_INFO 구조체에서 얻을하여 DuplicateTokenEx를 사용하여 토큰을 복제 한 후이 사용자를 가장 ImpersonateLoggedOnUser를 사용하는 세션 ID가 필요합니다.

  5. 파일을 복사 등 작업을

  6. 은 RevertToSelf을한다.

    1. 사용 LogonUser API를 토큰을 얻을 따르 : 사용자가 로그인하지 않은 당신이 가장하고 자신의 자격 증명을 사용하여 작업을 수행하려는 경우

    Example click here

    위의 옵션에서 4 단계로 이동하십시오.

+0

매우 어려운 문제에 대해 감사드립니다. 나는 그것을 시도 할 것이다 .. – hsluoyz

+0

나는 몇 가지 질문을 .. WTSEnumerateSessions는 활성 사용자 세션을 검색하는 데 사용되는 것 같습니다. 하지만 어떻게 도메인 사용자가이 공유 폴더에 액세스하고 있는지 확인할 수 있습니까? 또한이 방법은 내 도메인 관리자 권한을 사용하지 않고 도메인 사용자의 액세스 토큰을 얻을 수 있습니까? – hsluoyz

+0

관리자 작업을 수행하려면 시스템에서 admin이어야합니다. WTS 서비스 API는 컴퓨터에 로그온 한 사용자의 토큰을 제공합니다. 사용자가 기록되지 않은 경우 해당 관리자로 실행중인 프로세스 토큰을 얻을 수 있습니다. 그런 다음 토큰을 복제하여 사용하십시오. 사용자가 로그인되어 있지 않고 해당 사용자로 실행중인 프로세스가 없으면 그의 자격 증명을 알아야합니다. LogonUser API를 사용하여 자격 증명을 사용하면 토큰을 얻을 수 있습니다. 이것으로 새로운 토큰을 생성합니다. –

관련 문제