c++ - 在另一台计算机上验证 Windows 访问令牌
问题描述
我正在开发一个客户端/服务器应用程序(客户端和服务器都用 C++ 编写并在 Windows 计算机上运行)。我需要在服务器计算机上授权客户端计算机的当前用户,但无需用户输入密码。
在 Windows 中,您拥有当前运行进程的访问令牌。您还可以检查为该令牌分配了哪个用户以及它在哪个组中,等等。我想将该令牌发送到我的服务器应用程序并在那里针对域控制器进行验证。在 Windows 中这样的事情可能吗?
我想象这样一个场景:客户端应用程序生成一个令牌,可以根据域控制器验证该令牌是由该用户生成的并且在几分钟内有效。然后令牌将被序列化并发送到我的服务器应用程序(即通过 REST API)。然后我的服务器反序列化该令牌并使用 Windows API 针对域控制器验证生成的令牌。域控制器还提供附加信息,例如该令牌中包含的用户名。
那可能吗?我找到了类似“Windows Identity Foundation”和“AuthZ”API 的东西,但它似乎不适合?
解决方案
你可以做到,ADFS 和 NTLM 支持这一点,但请查看这篇文章,了解如何做到这一点。
推荐阅读
- mysql - MySQL 在一个查询中同时选择 SUM 和同一列的一个特定行 - 最佳方式?
- node.js - 如何将每个用户输入传递给 Bing 拼写检查,然后将其发送到 LUIS 进行处理。(Nodejs SDK v3)?
- matplotlib - 多行地块和地块子行
- java - 使用 pdfbox 2.0.X jar 提取文本
- java - Java 数字格式异常
- android - 为什么 CardView 剪辑在 API 级别低于 21 时不起作用?
- parsing - 为什么左递归、非确定性或二义性文法不能是 LL(1)?
- php - 我应该在哪里放置用于从 Wordpress 站点将数据插入 MySql Server 的 php 代码
- css - css动画重复之间的延迟
- python - 在 requests.get 之后从 GitHub url 中逐批流式传输数据