我正在设计我们如何处理微服务的授权和身份验证,一个想法是将端点验证(例如,
[Authorize(Roles = "que.users.read")]
)移动到 API 网关。这意味着我们的服务 API 将没有任何身份验证,端点将如下所示;例如,[Authorize, AllowAnonymous]
.
每个权限都链接到一个角色,每个角色都链接到一个用户等等。这样,考虑到服务的 API 将位于防火墙后面并且公众无法访问,就无需添加任何安全措施?
考虑到服务的 API 不向公众公开,这在安全性方面是一个好的设计吗?只有网关是。
同样从下面的草图中注意到,我们计划将 tenant_id 注入 HTTP 标头,而不是将其作为令牌声明的一部分注入。不确定这里哪个最好,声明或 HTTP 标头。