gpt4 book ai didi

active-directory - 保留 Windows 身份验证权限 token ,允许以后进行模拟

转载 作者:行者123 更新时间:2023-12-04 07:27:43 29 4
gpt4 key购买 nike

想想像 IfThisThenThat (IFTTT.com) 这样的服务。在那里,我对服务(twitter、evernote、gmail、dropbox 等)进行身份验证,并授权 IFTTT 代表我行事(大概是通过存储某种 token )。如果我不想再授权 IFTTT 冒充我,我可以随时撤销 token 。

如果我想对内部服务的 Windows 身份验证做同样的事情怎么办?

我想象用户会使用 Windows 身份验证访问网页 - 并批准创建某种 token ,我可以将其保存在数据库中。然后,当我需要在该用户的上下文中运行某些东西时(例如内部 Web 服务),我会获取 token 并运行某种模拟代码(至少在您知道密码时是微不足道的)。

哪些技术/概念是执行此操作的好方法?

最佳答案

好吧,Kerberos 用于登录到 Windows 机器,它实际上做的事情与您已经描述的非常相似。当您登录时,您会获得一张票证授予票证,然后可以使用该票证使用同一帐户登录其他服务。但是,Kerberos 票证会在很短的时间范围内过期,如果您想避免再次登录,则必须在到期前签发新的票证。您不能只将 Kerberos 票证存储在数据库中并在以后的 session 中再次使用它。它是专门为防止此类用例而设计的,因此如果票证最终被泄露,它将毫无用处。通常,超过 5 分钟的工单默认会被拒绝。以下是关于 Kerberos 的 MSDN 文档的链接,以获取有关其工作原理的更多详细信息:

MSDN: Microsoft Kerberos (Windows)

综上所述,Windows 确实已经允许系统服务模拟用户。如果您以 SYSTEM 身份或管理员身份运行,则可以调用 ZwCreateToken 为几乎所有帐户创建 token 。 This article对如何使用它进行了深入的描述(除其他外,还提供了一个示例程序)。请注意,这是一篇很长的文章,其中详细介绍了有关 Windows 登录的很多信息,而且它也有点过时了.不过,据我所知,它的原则应该仍然正确,代码应该仍然有效。

关于active-directory - 保留 Windows 身份验证权限 token ,允许以后进行模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22249668/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com