我对什么策略可用于处理跨平台分布式系统中的用户认证和授权感兴趣。我希望能够将系统中的操作标记为属于某个用户,并且仅允许某些用户执行某些操作。处理跨平台用户认证和授权的策略
背景: 该系统目前在Windows下使用只,其中由用户发起的动作目前只标记为从用户的特定机器的到来。一个行动基本上涉及使用cpu进行一些计算并返回结果。
目前没有授权进行任何操作,也没有用户认证(或计算机之间)。系统作为低权限服务运行(使用NETWORK SERVICE帐户)。数据不敏感,并且允许本地网络上的所有用户使用系统来表达他们心中的内容。
该系统可以同时部署在Windows域设置中,也可以在没有域控制器的情况下部署,也可以与不属于该域的一群工作计算机混合使用。
问题
为了将功能添加到系统中,例如说收集使用统计每个用户或显示谁是利用有必要的计算机来跟踪个人用户。除此之外,如果只允许某些用户执行某些操作(例如更改系统的某些设置),则还需要某种形式的授权。
我对Windows的这种做法有很好的理解,并且在同构Windows域设置中添加这种类型的功能可以直接使用Windows中的内置身份验证和授权功能。这也消除了仅为该系统分配对系统有效的特殊账户的需要 - 一旦用户正常登录,所有认证和授权都可以在不需要任何额外的用户交互的情况下完成。
但是如果系统应该能够在Mac OSX上运行会怎样?还是Linux?如果它应该在一个Windows域中的某些用户,OSX上的其他用户以及一些运行Linux的工作站计算机的混合环境中运行? (实际的系统可以移植到所有这些系统并处理跨平台通信等等)。我对在这些平台上处理身份验证和授权的方式知之甚少,并且不了解在平台之间进行交互时如何实现身份验证和授权。
在像这样的分布式系统中,是否有任何好的策略用于跨平台用户认证和授权?注意这里“跨平台”的双重使用 - 既可以编译不同平台的程序,也可以在不同平台之间进行交互。
我将问题标记为C++,因为这是系统写入的语言,但我愿意接受任何可以使用C++进行交互的东西。任何想法(包括野生建筑变化)都是受欢迎的!
更新:
什么将是有趣的,能够达到一个例子:
用户A登录到机器1,这是一个Windows机器。
用户A打开系统的管理界面,选择机器2(Linux系统)并调整设置。系统验证用户A实际上是否有足够的权限可以执行此操作。
因为A在登录时已经验证了他的身份,所以希望允许他/她在不必提供额外凭证的情况下更改此设置。
是否已有一个中央用户数据库应该重用? – 2011-01-11 20:42:52
@free_easy:不,系统目前没有任何用户处理。如果可能的话,我想利用现有的用户帐户 - 即单点登录。 – villintehaspam 2011-01-11 21:01:45