我对信息的溢出有点迷茫,我需要一些关于我可以支持仅向受信任的客户端提供 API 访问的最佳方式的指导。
当前环境:
我们目前有一个通过 Apache Shiro 处理用户身份验证/授权的集中式服务器。
我们有内部 API,可与中央服务器进行内部通信以验证和管理令牌。(从而启用 SSO)。
我们的客户端应用程序和 API 之间的通信通过 SSL 得到保护。
使用基于令牌的身份验证。
目标:
我们的目标是允许 3rd 方应用程序和 API 与我们的集中式身份验证服务器进行通信。但我们主要关注的是网络钓鱼,因为我们只希望“有效”方与我们通信,并且最好不允许在第 3 方公开身份验证信息。
问题:
1-实现这种架构的最佳方式是什么?我们应该继续使用 OAuth 吗?如果是的话,有没有很好的方法将它与 Shiro 集成?
2- OAuth 在移动应用程序上也能很好地发挥作用吗?(例如,除非应用程序受信任,否则限制对 REST API 的访问)
3- 是否有可以与 Java 一起使用的 OAuth 提供程序库,或者 OAuth 只是我必须自己实现的“标准”?(例如,实现 RESTful API)
4- OAuth 是否容易支持 SSO?
很抱歉有模糊的问题。我只需要一般的指导和建议。