AWS cognito 客户端身份验证安全吗
Is AWS cognito client side authentication secure
我在我的应用程序中使用 AWS Cognito 进行身份验证。 Cognito 提供完全的客户端身份验证。但是,我们需要将凭据存储在可从浏览器访问的 .env
文件中。
如果我正在构建企业应用程序并且安全性对我很重要,那么使用 AWS Cognito 进行身份验证是否安全?
Cognito 本身是一项服务,您可以在其上构建安全的身份基础 - 但不是以您提议的方式。
将第三方 API 的静态凭据存储在(未)身份验证用户可以轻松访问的内容中是一种糟糕的安全做法。
Cognito 的安全性不是您最大的问题,我的建议是首先为您的静态凭据找到更好的解决方案。有时无法避免像 API 密钥这样的静态凭据,但是 永远不要将它们暴露给最终用户 。将它们存储在 AWS Secrets Manager 或 Systems Manager Parameter Store 之类的东西中,并在需要时检索它们。尽可能只将它们存储在内存中,永远不要将它们发送给您的客户。
对于 AWS Cognito,身份验证发生在服务器端。不在客户端。在客户端,我们为用户创造了通过他的凭据登录的机会,然后凭据将被发送到 AWS Cognito 进行身份验证。结果是接受或拒绝。
我在我的应用程序中使用 AWS Cognito 进行身份验证。 Cognito 提供完全的客户端身份验证。但是,我们需要将凭据存储在可从浏览器访问的 .env
文件中。
如果我正在构建企业应用程序并且安全性对我很重要,那么使用 AWS Cognito 进行身份验证是否安全?
Cognito 本身是一项服务,您可以在其上构建安全的身份基础 - 但不是以您提议的方式。
将第三方 API 的静态凭据存储在(未)身份验证用户可以轻松访问的内容中是一种糟糕的安全做法。
Cognito 的安全性不是您最大的问题,我的建议是首先为您的静态凭据找到更好的解决方案。有时无法避免像 API 密钥这样的静态凭据,但是 永远不要将它们暴露给最终用户 。将它们存储在 AWS Secrets Manager 或 Systems Manager Parameter Store 之类的东西中,并在需要时检索它们。尽可能只将它们存储在内存中,永远不要将它们发送给您的客户。
对于 AWS Cognito,身份验证发生在服务器端。不在客户端。在客户端,我们为用户创造了通过他的凭据登录的机会,然后凭据将被发送到 AWS Cognito 进行身份验证。结果是接受或拒绝。