gpt4 book ai didi

c# - .NET : Transmit user credentials over the transport layer

转载 作者:太空宇宙 更新时间:2023-11-03 11:44:24 27 4
gpt4 key购买 nike

通过传输层传输用户凭证 (Active Directory) 的最佳/最简单方法是什么。

我有两个系统 A 和 B,它们与第 3 方消息层 C 相连。

有没有什么方法(在 .NET 中更可取)以某种方式在 A 端存储/序列化经过身份验证的用户的凭据,通过 C 传输它,然后在 B 端反序列化它,然后进行调用使用反序列化凭证到下游系统 D?

最佳答案

要将凭据“骡子”到另一个可以由 AD 的身份验证前端之一进行身份验证的系统,您需要模拟友好协议(protocol)(例如 Kerberos)、原始凭据本身(有时称为“基本”或“用户名/密码”,但在某些情况下也可能类似于 RSA key 对)和可选的用于包装这些凭据的框架(例如 WS-Sec、SAML)。

access token由 Windows 的 LSA 生成的仅在生成 token 的系统上有效 - 如果您将 token 从一个系统序列化和反序列化到另一个系统,LSA 不会接受它作为进程已通过该目标系统身份验证的证据并有权访问系统上的任何安全资源。否则你会谈论一个系统受到重放攻击(从一个盒子中获取安全上下文并在另一个盒子上重放它 - 恶意或其他方式,安全威胁模型不会关心)。

因此,“最简单”的方法是让您的代码提示用户输入他们的用户名和密码。这也是最容易受到安全漏洞影响的场景,如果他们的应用程序做这种粗鲁的事情,任何有思想的组织都会窒息,但它是一个理论上的选择。

更好的方法是为系统间通信找到一种方法,以包括对身份验证协议(protocol)的嵌入式支持 - 请参阅 GSS-API 了解一个通常可在这些上下文中使用的跨平台 API。

关于c# - .NET : Transmit user credentials over the transport layer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3800582/

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