gpt4 book ai didi

c++ - 处理跨平台用户认证和授权的策略

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:41:47 24 4
gpt4 key购买 nike

我感兴趣的是在跨平台分布式系统中可以使用哪些策略来处理用户身份验证和授权。我希望能够将系统中的操作标记为属于特定用户,并且只允许特定用户执行特定操作。

背景:该系统目前仅在 Windows 下使用,其中用户发起的操作目前仅被标记为来自用户的特定机器。一个 Action 基本上涉及使用 cpu 进行一些计算并返回结果。

目前没有进行任何授权,也没有对用户(或计算机之间)进行身份验证。系统作为低权限服务运行(使用 NETWORK SERVICE 帐户)。数据不敏感,本地网络上的所有用户都可以随意使用该系统。

该系统既可以部署在同类 Windows 域设置中,也可以部署在没有域 Controller 的工作组中,或者部署在一个域和一组不属于该域的工作计算机的混合环境中。

问题

为了向系统添加功能,例如收集每个用户的使用统计信息或显示谁在使用计算机,有必要跟踪单个用户。除此之外,如果某些操作只允许某些用户执行(例如更改系统的某些设置),则还需要某种形式的授权。

我非常了解 Windows 执行此操作的方式,并且使用 Windows 中的内置身份验证和授权功能可以直接在同类 Windows 域设置中添加此类功能。这也消除了将仅对该特定系统有效的特殊帐户分配给系统的需要 - 一旦用户正常登录,所有身份验证和授权都可以完成,无需任何额外的用户交互。

但是如果系统应该能够在 Mac OSX 上运行呢?还是Linux?如果它应该在混合环境中运行,一些用户在 Windows 域中,其他用户在 OSX 上,一些工作机器运行 Linux 怎么办? (实际系统可以移植到所有这些系统并处理跨平台通信等)。我对在这些平台上处理身份验证和授权的方式知之甚少,也不知道在平台之间交互时如何实现这一点。

在这样的分布式系统中,有什么好的策略可以用于跨平台的用户身份验证和授权吗?请注意此处“跨平台”的双重用途 - 既可以为不同平台编译程序,也可以在平台之间进行交互。

我已将问题标记为 C++,因为这是编写系统的语言,但我愿意接受任何可以使用 C++ 进行交互的内容。欢迎任何想法(包括疯狂的架构更改)!

更新:

能够实现的有趣示例:

用户 A 登录到机器 1,这是一台 Windows 机器。

用户 A 打开系统的管理界面,选择机器 2(Linux 系统)并调整设置。系统验证用户 A 实际上有足够的权限来执行此操作。

由于 A 在他/她登录时已经验证了他的身份,因此最好允许他/她更改此设置而无需提供额外的凭据。

最佳答案

您可以将基于声明的身份验证与跨平台工作的 SAML token 结合使用。

在 Windows 端有一个库:Windows Identity Foundation。

参见:http://msdn.microsoft.com/en-us/security/aa570351

关于c++ - 处理跨平台用户认证和授权的策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4657141/

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