myApp应用程序不能直接访问用户数据库,所有通信都只能通过用户认证微服务处理。
在过去的一周里,我广泛阅读了关于REST API中的授权/身份验证的内容,但仍然不知道如何为User->myApp和MyApp->User-Authentication微服务构建一个可靠的授权/身份验证系统。
这是我现在想出来的。
username | password | email | address | APIKEY
---------+----------+-------+---------+-----------
steve | n8Y5e... | ... | ... | D4ED43...
sessionID: 9w72tv3MHZD...
session_data: {
"cookie": {
"originalMaxAge": ...,
"expires": ...,
"httpOnly":true,
"path": ...
},
"user": {
"authenticated": true,
"username":"steve",
"apiKey": D4ED43C0...,
"created": ...
}
}
expire: ...
问题是:我做错了吗?我该改什么?我以前从未为API构建过身份验证,因此我将非常感谢任何建议。我想了解“大局”。
您应该使用基于令牌的身份验证。你的流程应该是这样的:
1-用户在您的身份验证微服务中注册。
2-用户向认证微服务发送用户名和密码,并接收承载令牌。
我正在开发应用程序使用微服务架构。需要实施安全保障。 所以我计划使用3个服务来实现这一点。 API网关 用户服务 订单服务 步骤1:客户端向API网关发送用户名和密码以获取令牌。API Gateway应该调用Users Service来验证CRED,如果CRED是有效的,API Gateway创建一个令牌并将其发送给客户端。 步骤2:客户端尝试使用令牌访问订单服务(API网关在步骤1中发送了令牌)
我最近开始使用Node.js,我必须构建一个应该使用多个Express.js服务的体系结构。其中一些服务必须位于一台服务器上,另一台则位于其他服务器上。我想构建一个基础服务(像API网关),但是我不知道在这个网关和微服务之间,或者在两个微服务之间进行通信的合适方式是什么。 目前我正在研究一个基于此的解决方案:
我最近读了不少关于微服务的文章,尤其是关于AuthN和Authz的文章。在很大程度上,这一切都很有意义,我可以看到这一切应该如何工作。 (注意--现在我只实现了客户端凭据授予和资源所有者密码凭据授予,因为我只是想看看它是如何工作的,而且用curl调用它们更容易。但我不知道这有什么不同)
总而言之,我们有: 产品类别: 产品ID、产品名称 订单类别: 订单ID、产品ID、用户ID、订单日期 这些方法中的任何一种可以被认为是最佳实践吗?还是有不同的解决方案?
我有一个微服务体系结构,它的日志必须发送到远程Kafka主题。在它旁边,本主题的使用者将把日志发送到麋鹿堆栈(另一个团队) 我想要一个专用的微服务(fwk proxy elasticsearch),其职责是收集其他人的日志,并将其发送到远程Kafka主题。 将从我的微服务聚合的所有日志分派到fwk-代理-弹性搜索微服务的最佳协议是什么? 我希望这个模式不会重复远程Kafka主题的安全配置。我想把它
我经常听说,在微服务架构中,对于每一个微服务,我们都必须创建单独的数据库。 但是,如果我必须在不同的数据库中维护外键约束,这是不可能的。就像我在身份验证微服务中有一个用户表,我想在我的目录服务中使用它(用户表中的用户 ID 列) 那么如何解决呢。 感谢提前