Это решение имеет большое предостережение, но вместо хранения токенов / билетов можно использовать функцию LsaLogonUser и ограниченное делегирование для получения токена для олицетворения без предоставления учетных данных, на данный момент работа готова к списанию.
Вот как осуществляется переход по протоколу, при котором учетные данные, отличные от Windows (например, на общедоступном веб-сайте), могут быть сопоставлены с пользователем домена, который выдал себя за доступ к внутренним ресурсам.
Предупреждение: очевидно, что это огромная потенциальная дыра в безопасности, и учетной записи, выполняющей процесс, который вызывает LsaLogonUser
, нужно предоставить SeTcbPrivilege
(«Действовать как часть операционной системы»).
Если есть способ хранения билета, это, очевидно, будет намного лучше, но первое, что я подумал, когда увидел вопрос, была проблема времени истечения, о которой упоминал @Ben.
Edit:
Пара из превосходных статей о передаче протокола и ограниченном делегировании с широким охватом связанных рисков.