我应该在 .NET 4.5 上推出自己的 c2WTS 替代品吗?
Should I roll my own replacement for c2WTS on .NET 4.5
我需要从 UPN(通过声明检索)创建 Windows 令牌,以使用 kerberos 模拟用户到后端系统。这是为了让多个内部应用程序(以及将来可能的其他外部应用程序)使用 API。
到目前为止,我已经成功地完成了所有步骤:
- 使用新的 WindowsIdentity(upn) 构造函数从 UPN 创建令牌
- 授予帐户 "Act as part of operating system" 权限
- 为活动目录中的后端服务设置帐户的约束委派
当我随后在 WindowsIdentity 上调用 Impersonate() 并调用后端服务时,这非常有用。
但是,从安全的角度来看,我现在有一个问题,我不希望我的 API 服务帐户拥有 "Act as part of operating system" 权限。
最初我找到了 c2WTS 服务,但自 .NET 4.5 以来它不再是 WIF 的一部分,所以我不想使用它来获取令牌(因为它是一个单独的功能使用 .NET 3.5 安装和运行)。
我看过它的实现,它与我想做的几乎相同
- 运行 作为 windows 服务作为系统帐户(因此默认情况下具有 "Act as part of operating system" 权限
- 使用 IPC 允许我的 api 服务帐户从此服务请求令牌
所以我的问题归结为两件事:
- 它被删除并且不再是 .NET 4.5 和 WIF 4.5 的一部分是否有原因?
- 我是否应该改用 .NET 4.5 推出我自己的 c2WTS 服务?
根据史蒂夫的评论,我已经安装了 Windows 功能,它按预期工作。
我需要从 UPN(通过声明检索)创建 Windows 令牌,以使用 kerberos 模拟用户到后端系统。这是为了让多个内部应用程序(以及将来可能的其他外部应用程序)使用 API。
到目前为止,我已经成功地完成了所有步骤:
- 使用新的 WindowsIdentity(upn) 构造函数从 UPN 创建令牌
- 授予帐户 "Act as part of operating system" 权限
- 为活动目录中的后端服务设置帐户的约束委派
当我随后在 WindowsIdentity 上调用 Impersonate() 并调用后端服务时,这非常有用。
但是,从安全的角度来看,我现在有一个问题,我不希望我的 API 服务帐户拥有 "Act as part of operating system" 权限。
最初我找到了 c2WTS 服务,但自 .NET 4.5 以来它不再是 WIF 的一部分,所以我不想使用它来获取令牌(因为它是一个单独的功能使用 .NET 3.5 安装和运行)。
我看过它的实现,它与我想做的几乎相同
- 运行 作为 windows 服务作为系统帐户(因此默认情况下具有 "Act as part of operating system" 权限
- 使用 IPC 允许我的 api 服务帐户从此服务请求令牌
所以我的问题归结为两件事:
- 它被删除并且不再是 .NET 4.5 和 WIF 4.5 的一部分是否有原因?
- 我是否应该改用 .NET 4.5 推出我自己的 c2WTS 服务?
根据史蒂夫的评论,我已经安装了 Windows 功能,它按预期工作。