我已经编写了几个服务于RESTful API的Spring 4后端Web应用程序。我甚至设法通过Spring Web Security来保证这些安全。使用AWS IAM或Cognito的Spring Security
在一个案例中,我们已经安装了自己的OpenAm实例。转到客户端用户界面的用户可以登录OpenAM,并且客户端Web应用程序在cookie中获取令牌。我们将该令牌传递给头中的后端,然后Spring Security使用CustomeUserDetailsService来检查该令牌是否对OpenAM有效。如果是这样,我们在Spring安全上下文中创建一个用户,分配角色,然后我们看看这些角色是否对API有效。如果是这样,则API执行,否则用户将获得401安全错误。我相信这是OAuth2。
我们还设法与Okta完全相同的事情。我们有我们自己的客户端Web用户界面和我们自己的登录页面UI向Okta发出呼叫并获取两(2)个令牌。我们连接这些令牌并将其传递给后面的程序,这个程序与我们上面描述的程序相同。我也认为这是Oauth2。
我现在正在开发一个新项目,这次我想使用AWS IAM来保护我的Web应用程序,因为前端和后端将托管在AWS EC2实例上。
我一直在网上寻找如何做到这一点。有一个AWS IAM SDK,并且有AWS Cognito。我最初对IAM的看法并没有显示Oauth2,我看到了OpenID和SAML。我知道我对OpenID vs. Oauth2与SAML缺乏认识。
所以,我要寻找的任何环节的任何代码库,或示例代码,或文件,这将帮助我安全使用AWS IAM和/或Cognito我的后端API的使用Spring Security。顺便说一下,我不想使用Spring API Gateway,因为Spring Web Security已经为我做了这些。
在此先感谢您的帮助!
你可能想看看https://github.com/kdgregory/example-cognito-java和http://blog.kdgregory。 COM/2016/12 /服务器端认证与 - amazon.html。作者已经对Cognito进行了分析,以了解用Java编写的基本服务器端应用程序。 – sdbol
太棒了!我会看看这个文档。谢谢! – tjholmes66