当前位置: 首页 > 知识库问答 >
问题:

如何正确使用Express网关进行Web应用程序的身份验证?

孟华晖
2023-03-14

一般来说,我对微服务和api网关的概念相当陌生。我试图理解api网关在使用许多微服务的现代web应用程序中所起的作用。我一直在阅读express gateway的文档和教程,但对于web应用程序如何使用像express gateway这样设置的api网关执行身份验证,我有点困惑。

我的网络应用程序将有多个微服务可以与之对话。我认为,在我所有的微服务前面放置一个API网关可以使每个微服务不必担心用户/请求是否经过身份验证,因为如果微服务正在与它对话,这意味着API网关已经验证了请求是有效的用户。我的理解正确吗?

假设我认为api网关充当其他微服务的看门人的想法是正确的,我接下来的问题是如何执行它的细节。

这是否意味着所有用户创建和身份验证都由api网关执行?这意味着我将没有自定义用户创建/登录微服务?或者我是否有一个可通过api网关公开访问的自定义用户创建微服务,该服务在创建时会在api网关中创建用户帐户?用户信息现在是否由我的微服务复制在某个数据库和Express网关自己的存储中?我想我的总体困惑是api网关将身份验证/用户创建的角色完全从Web应用程序自己的微服务中带走,还是您仍然需要这两个部分?

我以为我自己的身份验证微服务会首先验证用户,然后与api网关一起生成有效的短期令牌,但阅读有关在Express网关中创建用户或应用程序帐户以进行身份验证的内容让我对每个角色感到困惑。

共有1个答案

戈华茂
2023-03-14

为了全面了解API网关在基于微服务的解决方案中的作用,我建议大家看看我几个月前做的这个演示。这应该能澄清一些事情。

我对此的理解是否正确?

是的,你明白了。如果你看一下视频,你实际上也可以在实践中看到这个概念。

至于存储,这要看情况而定。

Express Gateway提供身份服务的子集,如用户、应用程序和凭据。对于大多数应用程序使用来说,它们已经足够好了,但是您可能会发现自己需要使用外部服务,比如Auth0。

现在,撇开功能不谈——数据存储在哪里取决于你。您可以将部分数据保存在Express Gateway中,将部分数据保存在自己的数据库中,或者完全保存在Express Gateway中。这里没有好的或坏的策略。

 类似资料:
  • 问题内容: 我已经通过使用nodejs + express制作了简单的nodejs应用程序。现在,我要进行用户身份验证。我想通过使用猫鼬来实现会话处理。你能举个例子吗? 问题答案: 一些有用的链接: 如何在node.js中实现登录身份验证 在node.js和mongodb中创建注册和登录表单 另外,会话管理不是由Mongoose完成,而是由connect-mongodb或connect- redi

  • 我试图建立一个新的服务器,作为网关(使用sping-Cloud-网关作为基础),我需要能够在实际转发任何后续请求之前通过远程LDAP服务器验证用户。我将如何实现这个(包,配置等)?

  • 我需要在我们的Web应用程序中使用LDAP/AD服务器实现SSO身份验证和验证用户。Web应用程序是使用Spring(Java)/Hibernate制作的,应用程序服务器是UAT中的Jboss和生产中的Webphere。 我正在寻找一些好的简单的解决方案,可以帮助我实现它,从几个朋友那里听说华夫饼是一个很好的解决方案,但是在网上搜索并尝试了几天之后,我不确定我是否朝着正确的方向前进。我在这方面很幼

  • 我正在尝试访问一个我在Azure上托管并用Azure AD保护的API应用程序。 对于API应用程序,我已经设置了App Service Authentication=Azure Active Directory“Express”管理模式。 在“Classic”门户中,我在AD下创建了几个应用程序。一个用于API应用程序,另一个用于Web应用程序。对于Web应用程序,我在API应用程序的“对其他应

  • 我正在使用Node JS和Express创建一个微服务架构。我知道微服务的主要特点之一是面向服务的体系结构,团队可以独立设计、开发和发布应用程序。因此,在我的设计中,我认为每个微服务都提供了自己的API,它们通过API相互通信,每个微服务都是独立的,有自己的生命在等待请求。 我写这个问题是因为我对微服务之间的身份验证和通信有几个疑问。 对于自动认证,我用JWT做了一些测试来认证微服务的应用编程接口

  • 我已经设置了一个广告2016安装。现在打算使用它对web应用程序(java)进行身份验证。我有一段用于测试身份验证的代码,并有一些观察。 现在我在以下场景中测试了用户/密码组合- //第一个组合,user1存在于AD中并且密码正确(测试经过身份验证的绑定)。字符串userid=“user1@domain.com”,password=“user1password”;预期:身份验证成功。实际:身份验证