我已经编写了几个Spring 4后端Web应用程序,为RESTful API提供服务。 我甚至设法用Spring Web Security保护了这些。
在一种情况下,我们安装了自己的OpenAm实例。 转到客户端 UI 的用户可以登录 OpenAM,客户端 Web 应用程序会在 cookie 中获取令牌。 我们将该令牌传递给标头中的后端,然后Spring Security使用CustomeUserDetailsService根据OpenAM检查该令牌以查看其是否有效。 如果是这样,我们在 Spring 安全上下文中创建一个用户,分配角色,然后查看这些角色是否对 API 有效。 如果是这样,API 将执行,否则,用户会收到 401 安全错误。 我相信这是OAuth2。
我们也设法用Okta做了完全相同的事情。 我们有自己的客户端 Web UI,带有我们自己的登录页面。 UI 调用 Okta 并取回两 (2( 个令牌。 我们将这些令牌连接起来,并将其传递给后端,后端执行我们上面描述的相同过程。 我也认为这是Oauth2。
我现在正在处理一个新项目,这次我想使用 AWS IAM 保护我的 Web 应用程序,因为前端和后端将托管在 AWS EC2 实例上。
我一直在搜索网络以准确了解如何做到这一点。 有一个 AWS IAM SDK,还有 AWS Cognito。 我对IAM的初步观察并没有完全显示Oauth2,我看到了OpenID和SAML。 我知道我对OpenID与Oauth2和SAML缺乏了解。
因此,我正在寻找指向任何代码库、示例代码或文档的任何链接,这些链接将帮助我使用 AWS IAM 和/或 Cognito 使用 Spring 安全性保护我的后端 API。 顺便说一句,我不想使用Spring API Gateway,因为Spring Web Security已经在为我这样做了。
提前感谢任何帮助!
好的,我对此进行了一些自己的研究,并从 AWS 站点得到了这个:
AWS Identity and Access Management (IAM( 使您能够安全地 控制用户对 AWS 服务和资源的访问。用 IAM,您可以创建和管理 AWS 用户和组,并使用 允许和拒绝其访问 AWS 资源的权限
但是,我不是在寻找这个。 我有一个网络应用程序,我也可能有一个移动方面。 我只是不想编写用户管理,或处理自己的登录会话和授权等。 所以,我认为在这种情况下:
Amazon Cognito 可让您轻松地将用户注册和登录添加到您的 移动和网络应用程序。使用亚马逊认知,您还可以选择: 通过社交身份提供商(如 Facebook(对用户进行身份验证, Twitter 或 Amazon,使用 SAML 身份解决方案,或使用您自己的身份解决方案 身份系统。此外,Amazon Cognito 使您能够保存数据 在用户设备上本地运行,即使应用程序即使在 设备处于脱机状态。然后,您可以在用户之间同步数据 设备,以便其应用体验保持一致,无论 他们使用的设备。
借助 Amazon Cognito,您可以专注于打造出色的应用体验 无需担心构建、保护和扩展解决方案 处理用户管理、身份验证和跨设备同步。
所以,AWS认知它是...