【发布时间】:2019-01-29 06:29:40
【问题描述】:
我需要从 UPN(通过声明检索)创建 Windows 令牌,以使用 kerberos 将用户模拟到后端系统。这是为了供多个内部应用程序(以及未来可能的其他外部应用程序)使用的 API。
到目前为止,我已经成功地完成了所有步骤以使其正常工作:
- 使用新的 WindowsIdentity(upn) 构造函数从 UPN 创建令牌
- 授予帐户“作为操作系统的一部分”的权限
- 为帐户设置约束委派到 Active Directory 中的后端服务
当我在 WindowsIdentity 上调用 Impersonate() 并调用后端服务时,这非常有用。
但是,从安全的角度来看,我现在有一个问题,我不希望我的 API 服务帐户拥有“作为操作系统的一部分”权限。
最初我找到了 c2WTS 服务,但自从 .NET 4.5 以来,它不再是 WIF 的一部分,所以如果可能的话,我不想使用它来获取令牌(因为它是一个单独的功能来安装和使用 .NET 3.5 运行)。
我看过它的实现,它几乎和我想做的一样
- 作为 Windows 服务作为系统帐户运行(因此默认情况下具有“作为操作系统的一部分”权限
- 使用 IPC 允许我的 api 服务帐户向该服务请求 Token
所以我的问题归结为两件事:
- 是否有理由将其删除并且不再是 .NET 4.5 和 WIF 4.5 的一部分?
- 我应该使用 .NET 4.5 来推出自己的 c2WTS 服务吗?
【问题讨论】:
-
不要自己动手。只需安装 Windows 功能。它们 100% 兼容并且可以一起使用。