Authentication 超媒体(ReST)SOA:一致服务级别认证的良好设计?

Authentication 超媒体(ReST)SOA:一致服务级别认证的良好设计?,authentication,rest,soa,separation-of-concerns,hypermedia,Authentication,Rest,Soa,Separation Of Concerns,Hypermedia,我目前正在开发一个SOA解决方案,其中体系结构中的每个服务都是一个安全的、经过身份验证的超媒体资源(就像真正的超媒体,而不是带有漂亮URL的RPC) 面向客户、公司内部和客户构建的应用程序将在此架构之上构建(这里没有什么不寻常的)。我不能假设应用程序之间存在一种通用的身份验证模式,因为用户标识和凭证管理的需求可能会有很大的不同 因此,体系结构中的服务必须采用单独的身份验证方案。理想情况下,这将在服务(例如HMAC)之间完全一致,以允许尽可能多的客户端/服务器模块重用 我向您提出的问题是:对于跨解

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

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

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

我向您提出的问题是:对于跨解耦服务提供一致的身份验证和凭据管理,是否有一种通用模式?如果是,是什么

我提出了一些想法,但希望有更多经验的工程师提供意见:

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

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

3)有一个单一的共享身份验证服务,负责自身和所有其他服务的身份验证和凭据管理

我觉得idea2)最吸引人,但它需要一些改进。除非我完全走错了路

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

对于这篇文章,我深表歉意,感谢您的阅读。

LDAP是-->为了集中凭证而做的

Amazons AWS认证方案已启动并结束。每个应用程序都可以实现这一点,并参考LDAP获取凭据

如果您想集中整个套件,OAuth将处于启动状态


只是澄清一下,这不应该是一个思维实验。已经完成了,没有理由重做。四处寻找标准并实施它们。与LDAP对话的内容很多。AWS是一个特别的标准,但它做的工作和回答大多数人的问题,并已被审查,发现有缺陷和修复,并在野外使用的许多我们所说的。如果您想去那里,OAuth可以帮助您解决中心身份验证问题。

所有这些似乎都是实现,我提到过我不感兴趣。