我对信息的溢出感到有些迷茫,我需要一些指导,以支持只向受信任的客户提供API访问的最佳方式。
当前环境:
我们目前有一个集中服务器,通过Apache Shiro处理用户身份验证/授权。
我们拥有内部API,可与内部服务器进行内部通信,以验证和管理令牌。 (从而启用SSO)。
我们的客户端应用程序和API之间的通信通过SSL保护。
使用基于令牌的身份验证。
:定位:
我们的目标是允许第三方应用程序和API与我们的集中身份验证服务器进行通信。但我们主要担心的是网络钓鱼,因为我们只希望“有效”方与我们沟通,最好不要在第三方旁边公开身份验证信息。
问题:
1-实施此类架构的最佳方式是什么?我们应该继续使用OAuth吗?如果是的话,有没有一种很好的方法将它与Shiro整合?
2- OAuth也会在移动应用程序上做得好吗? (例如,除非应用程序受信任,否则限制对REST API的访问)
3-是否有可以与Java一起使用的OAuth提供程序库,或者OAuth只是我必须自己实现的“标准”? (例如,实现RESTful API)
4- SSO是否可以轻松支持OAuth?
对于模糊的问题,我们深表歉意。我只需要一般的指导和建议。
答案 0 :(得分:2)
有关如何设置OAuth服务器/提供商的一些信息 - How would an efficient OAuth2.0 server / provider work?
正如您所说,您需要让用户授权应用程序(接受/拒绝该应用程序要求的权限) - OAuth 2.0的完美用例。
如果您需要更深入了解OAuth如何运作,请随时跟进。
PS - 不知道与Shiro的整合。
答案 1 :(得分:2)
以下是我的答案,