集中式API提供商 - oAuth与否?

SiN*_*SiN 7 java openid oauth shiro oauth-2.0

我对信息的溢出有点迷茫,我需要一些指导,以最好的方式支持只向受信任的客户提供API访问.

目前的环境:

我们目前有一个集中服务器,通过Apache Shiro处理用户身份验证/授权.

我们拥有内部API,可与内部服务器进行内部通信,以验证和管理令牌.(从而启用SSO).

我们的客户端应用程序和API之间的通信通过SSL保护.
使用基于令牌的身份验证.

目标:

我们的目标是允许第三方应用程序和API与我们的集中身份验证服务器进行通信.但我们主要担心的是网络钓鱼,因为我们只希望"有效"方与我们沟通,最好不要在第三方方面公开身份验证信息.

问题:

1-实现这种架构的最佳方法是什么?我们应该继续使用OAuth吗?如果是的话,有没有一种很好的方法将它与Shiro整合?

2- OAuth也会在移动应用程序上做得很好吗?(例如,除非应用程序受信任,否则限制对REST API的访问)

3-我是否有可以与Java一起使用的OAuth提供程序库,或者OAuth只是我必须自己实现的"标准"?(例如,实现RESTful API)

4- SSO是否可以轻松支持OAuth?

抱歉模糊的问题.我只需要一般的指导和建议.

Sur*_*Att 2

以下是我按顺序回答的问题

  1. OAuth 2.0 最适合您。我想说你应该选择 OAuth。
  2. 绝对是的。
  3. 有图书馆。Apache OltuGoogle 客户端库。
  4. 构建在 OAuth 之上的 OpenID Connect 规范可用于实现 SSO。