2

我目前正在开发一个 SOA 解决方案,其中架构中的每个服务都是安全的、可验证的超媒体资源(就像在真正的超媒体中一样,而不是带有漂亮 URL 的 RPC)。

面向客户的、公司内部的和客户构建的应用程序将建立在此架构之上(这里没有什么不寻常的)。我不能假设应用程序之间存在共同的身份验证模式,因为用户识别和凭证管理的要求可能会有很大差异。

因此,架构中的服务必须采用单独的身份验证方案。理想情况下,这将在服务(例如 HMAC)之间完全一致,以允许尽可能多的客户端/服务器模块重用。

我的问题是:是否有一种通用模式可以跨解耦服务提供一致的身份验证和凭据管理?如果是这样,它是什么?

我提出了一些想法,但如果有经验更丰富的工程师提供意见,我将不胜感激:

1)每个服务都公开一个离散但机械相同的身份验证接口,并负责自己的凭证管理。

2)1),但具有共享凭证管理。架构中的每个服务仍然公开一个离散的身份验证接口,如1)所示,但底层数据介质是共享的。

3)有一个单一的共享认证服务,负责对自己和所有其他服务进行认证和凭证管理。

我发现想法2)是最吸引人的,但它需要一些改进。除非我在这里完全走错了路。

请尽可能多地批评/建议。当然要记住,这是关于设计而不是实现;目前我对框架/中间件/协议 XYZ 不感兴趣。

为散文道歉,感谢阅读。

4

1 回答 1

1

LDAP 是 --> 用来集中凭证的地方。

亚马逊的 AWS 身份验证方案已经过时了。每个应用程序都可以实现它并参考 LDAP 获取凭据。

如果您想集中整个套件,OAuth 就在这里。

澄清一下,这不应该是一个思想实验。已经完成了,没有理由重做。寻找标准并实施它们。与 LDAP 对话的东西很多。AWS 是一个临时标准,但它可以完成工作并回答大多数人的问题,并且已经过审查,发现存在缺陷和修复,并且在我们所说的时候被许多人广泛使用。如果您想去那里,OAuth 有助于解决中央身份验证问题。

于 2011-09-08T23:57:12.127 回答