我正在为一组 RESTful Web 应用程序的用户开发一个内部身份验证系统。我们的目的是,用户应该能够通过 Web 表单登录一次,并且可以适当地访问我们域中的所有这些 RESTful 应用程序,这些应用程序可能分布在许多服务器的私有云中。(我已经明白拥有一个经过身份验证的会话与纯 RESTful 方法不一致,但这是一个可用性要求。)
应用程序本身将使用多种编程语言编写,因此需要一种语言中立的方法。有人向我建议我们可以使用 OpenID 或 OAuth 或类似的框架来处理身份验证,但我的理解是这些是用于第三方服务,而不是用于在我们内部系统上共享数据的第一方服务。在这种情况下,我们可能有一个中央提供者服务,所有其他应用程序都被视为第三方(或依赖方)。
问题:
- OpenID/OAuth 是否适合第一方服务之间的身份验证?
- 如果是这样,如何建议为此用例设置身份验证?
- 用户是否不必向他们想要使用的每个第一方服务器授予单独的权限,就像他们需要向任何第三方服务器授予单独的权限一样?我认为这将违反单点登录以访问所有第一方服务的要求。
- 有支持这种第一方用例的网站的好例子吗?
- 对于这个第一方用例,什么是好的替代框架?