Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用amplify最佳实践使用aws cognito的Node js Microservices_Node.js_Angular_Microservices_Amazon Cognito_Aws Amplify - Fatal编程技术网

Node.js 使用amplify最佳实践使用aws cognito的Node js Microservices

Node.js 使用amplify最佳实践使用aws cognito的Node js Microservices,node.js,angular,microservices,amazon-cognito,aws-amplify,Node.js,Angular,Microservices,Amazon Cognito,Aws Amplify,我正在开发一个节点js api,我已经将它划分为几个小api(微服务),它们使用请求和响应相互通信,我使用angular作为前端,现在我想使用cognito和aws amplify保护我的api,所以我不知道我应该将aws amplify代码放在我的项目中的哪里?我应该放在前端还是应该有一个单独的节点JSAPI来处理安全性?如果有更好的方法,你能推荐一下吗?我是Node和angular的新手,我是java开发人员,所以任何帮助都将不胜感激 考虑到您希望保护您的API,将安全性置于前端会使您的AP

我正在开发一个节点js api,我已经将它划分为几个小api(微服务),它们使用请求和响应相互通信,我使用angular作为前端,现在我想使用cognito和aws amplify保护我的api,所以我不知道我应该将aws amplify代码放在我的项目中的哪里?我应该放在前端还是应该有一个单独的节点JSAPI来处理安全性?如果有更好的方法,你能推荐一下吗?我是Node和angular的新手,我是java开发人员,所以任何帮助都将不胜感激 考虑到您想要保护您的API,将安全性置于前端会使您的API容易受到不使用前端的任何人的攻击。因此,一般来说,有一个公共网关/安全后端服务是有意义的,它保护您的API服务

可能是这样的

前端网关微服务

而不是

前端微服务

同时,这将使您有机会在以后添加更复杂的服务体系结构编排,而无需调整前端

现在,关于身份验证,它为您提供了一个非常易于使用的接口,用于向传入请求添加身份验证。它支持多种身份验证方法,包括但不限于OpenID connect(OpenID connect可与AWS/cognito一起使用)。 与您一起,您应该能够使用几行代码实现一个简单的路由/安全服务,并可以根据需要使用更多功能/安全内容对其进行扩展(例如,您可能希望在某个时候添加会话处理,或者添加更多与安全相关的内容,如XSS保护等。有一些用于
express
的中间件涵盖了这些主题)


[编辑]更多关于安全性的旁注。一般来说,这可能值得一看,作为一个更具体的起点,它为您提供了一套在开发web应用程序时可能/应该遵循的关于应用程序安全性的指导原则。有大量的备忘单为常见主题提供了指导/最佳实践像会话处理、cookie处理、身份验证和其他安全相关的主题。

有一些要点要考虑。您没有给出关于您的服务如何通信的细节,我假设这里是http。< /p> 考虑到您希望保护您的API,将安全性置于前端会使您的API容易受到不使用前端的任何人的攻击。因此,一般来说,使用通用网关/安全后端服务来保护您的API服务是有意义的

可能是这样的

前端网关微服务

而不是

前端微服务

同时,这将使您有机会在以后添加更复杂的服务体系结构编排,而无需调整前端

现在,关于身份验证,它为您提供了一个非常易于使用的接口,用于向传入请求添加身份验证。它支持多种身份验证方法,包括但不限于OpenID connect(它反过来也适用于AWS/cognito)。 与您一起,您应该能够使用几行代码实现一个简单的路由/安全服务,并可以根据需要使用更多功能/安全内容对其进行扩展(例如,您可能希望在某个时候添加会话处理,或者添加更多与安全相关的内容,如XSS保护等。有一些用于
express
的中间件涵盖了这些主题)


[编辑]更多关于安全性的旁注。一般来说,这可能值得一看,作为一个更具体的起点,它为您提供了一套在开发web应用程序时可能/应该遵循的关于应用程序安全性的指导原则。有大量的备忘单为常见主题提供了指导/最佳实践例如会话处理、cookie处理、身份验证和其他与安全相关的主题。

我了解所有这些。感谢您的回答,我使用aws serverless api完成了一个POC,以下是我在serverless.yml:functions:create:handler:create.main事件:-http:path:orders-methodod:post cors:true authorizer:aws_iam,那么这是否会得到保护?如果没有,是否有任何框架可以处理应用程序的安全性,只需编写更少的配置?不幸的是,我不熟悉aws/无服务器api,因此我无法在此提供帮助。基本上,现在当我尝试访问我的任何api端点时,它都会返回身份验证tolen missing,那么这足够安全吗?尽管是无服务器的,我只是使用无服务器进行快速解聚和测试,我将开始使用ec2。如果你想知道你的应用程序是否安全,我想这里没有人能给你一个合理的答案,或者为你提供一个安全的“安全”-认证。使某物“安全”这不是一项简单的任务,就像在这里或那里添加一个标志或选项,它需要一个适当的整体应用程序概念/架构,以及在实现的所有部分中的注意事项。如果您想验证您的应用程序并确保没有明显的安全缺陷,我建议您在实现后进行一些渗透测试。请参阅OWASP f或者pentest指南/工具/指南。除此之外,OWASP ASV已经提供了3个级别的分类,其中级别1提供的安全性最低,但适用于大多数“正常”应用程序应用程序,并且可以/应该被用作实现应用程序时需要/应该考虑什么的粗略指南。您没有提供太多信息,但最终a)这取决于您的客户的曝光率(互联网/局域网)