Puis-je emprunter l'identité d'un utilisateur sur un autre domaine Active Directory dans .NET?
J'ai deux domaines Active Directory, A et B. les Utilisateurs dans le domaine A besoin pour exécuter une application sur leur poste de travail, de visualiser et de manipuler une ressource située sur un serveur du domaine B. Chaque utilisateur dispose également d'un compte de domaine B. Est-il possible d'usurper l'identité de chaque utilisateur du domaine B de l'identité d'effectuer des opérations sur le domaine B de la ressource par programmation?
Exemple De Flux De Travail:
- Utilisateur se connecte à un domaine A.
- Utilisateur lance une application de bureau.
- Utilisateur spécifie des ressources dans le domaine B.
- Application invite l'utilisateur pour le domaine B informations d'identification.
- Application emprunte l'identité de l'utilisateur du domaine B de l'identité de l'accès de ressource spécifié.
- Utilisateur manipule le domaine B de la ressource à l'aide de l'application.
Vous devez vous connecter pour publier un commentaire.
Je vais parler en termes de Win32 Api, mais je suis sûr que vous pouvez p/invoke pour ces de .NET. Vérifier http://pinvoke.net.
Vous devez appeler la LogonUser API pour créer un jeton d'accès qui représente le domaine de l'utilisateur B informations d'identification.
Puis vous appelez ImpersonateLoggedOnUser, en passant dans ce jeton d'accès. Le thread d'usurper l'identité du domaine B informations d'identification jusqu'à ce que vous usurper l'identité d'un autre ensemble d'informations d'identification ou d'appeler l'API RevertToSelf.
Je suppose qu'il va sans dire que, pour le LogonUser appel à réussir, la machine que vous êtes en cours d'exécution sur l'aurez besoin de la confiance de domaine B.
Si votre ordinateur (celui faisant l'usurpation d'identité) est un membre d'un domaine qui n'a pas confiance dans le domaine du compte d'utilisateur que vous essayez d'usurper l'identité d', puis l'emprunt d'identité échoue. Quiconque dit le contraire, je serais ravi de voir la preuve.
Découvrez cette question, qui couvre l'usurpation de l'identité des questions dont vous avez besoin.